written 5.2 years ago by |
Test Suite Prioritization:
The reduction process can be best understood if the cases in a test suite are prioritized in some order. The purpose of prioritization is to reduce the set of test cases based on some rational, non-arbitrary criteria, while aiming to select the most appropriate tests. For example, the following priority categories can be determined for the test cases:
Priority 1: The test cases must be executed, otherwise there may be worse consequences after the release of the product. For example, if the test cases for this category are not executed, then critical bugs may appear.
Priority 2: The test cases may be executed, if time permits.
Priority 3: The test case is not important prior to the current release. It may be tested shortly after the release of the current version of the software.
Priority 4: The test case is never important, as its impact is nearly negligible.
In the prioritization scheme, the main guideline is to ensure that low-priority test cases do not cause any severe impact on the software. There may be several goals of prioritization. These goals can be come the basis for prioritizing the test cases. Some of them are discussed here:
- Testers or customers may want to get some critical features tested and presented in the first version of the software. Thus, the important features become the criteria for prioritizing the test cases. However, the consequences of not testing some low priority features must be checked. Therefore, risk factor should be analysed for every feature in consideration.
- Prioritization can be on the basis of the functionality advertised in the market. It becomes important to test those functionalities on a priority basis, which the company has promised to its customers.
- The rate of fault detection of a test suite can reveal the likelihood of faults earlier.
- Increase the coverage of coverable code in the system under test at a faster rate, allowing a code coverage criterion to be met earlier in the test process.
- Increase the rate at which high-risk faults are, detected by a test suite, thus locating such faults earlier in the testing process.
- Increase the likelihood of revealing faults related to specific code changes, earlier in the regression testing process.
Type of Test Case Prioritization:
The types of the test cast case prioritization are given here.
General Test Case Prioritization
In this prioritization, we prioritize the test cases that will be useful over a succession of subsequent modified versions of P, without any knowledge of the modified versions. Thus, a general test case prioritization can be performed following the release of a program version during off-peak hours, and the cost of performing the prioritization is amortized over the subsequent releases.
Version-specific Test Case Prioritization
Here, we prioritize the test cases such that they will be useful on a specific version $P^{\prime}$ of $P.$ Version specific prioritization is performed after a set of changes have been made to P and prior to regression testing of $P^{\prime},$ with the knowledge of the changes that have been made.