Monday, 25 June 2012

What is Risk-Based Testing?


Risk-based testing (RBT) is a type of software testing that prioritizes the tests of features and functions based on the risk of their failure - a function of their importance and likelihood or impact of failure. In theory, since there is an infinite number of possible tests, any set of tests must be a subset of all possible tests. Test techniques such as boundary value analysis and state transition testing aim to find the areas most likely to be defective.

Assessing risks:

The changes between two releases or versions is key in order to asses risk. Evaluating critical business modules is a first step in prioritizing tests, but it does not include the notion of evolutionary risk. This is then expanded using two methods: change-based testing and regression testing.
  • Change-based testing allows test teams to assess changes made in a release and then prioritize tests towards modified modules.
  • Regression testing ensures that a change, such as a bug fix, did not introduce new faults into the software under test. One of the main reasons for regression testing is to determine whether a change in one part of the software affects other parts of the software.
These two methods permit test teams to prioritize tests based on risk, change and criticality of business modules. Certain technologies can make this kind of test strategy very easy to set-up and to maintain with software changes.


Types of Risks
Risk can be identified as the probability that an undetected software bug may have a negative impact on the user of a system.
The methods assess risks along a variety of dimensions:

Business or Operational
  • High use of a subsystem, function or feature
  • Criticality of a subsystem, function or feature, including the cost of failure
Technical
  • Geographic distribution of development team
  • Complexity of a subsystem or function
External
  • Sponsor or executive preference
  • Regulatory requirements
E-Business Failure-Mode Related
  • Static content defects
  • Web page integration defects
  • Functional behavior-related failure
  • Service (Availability and Performance) related failure
  • Usability and Accessibility-related failure
  • Security vulnerability
  • Large Scale Integration failure 



No comments:

Post a Comment