The majority of the traditional software testing methods and testing sub-stages use several types of coverage info as the stopping criteria, with the unspoken postulate that higher coverage means higher quality or lower levels of errors.
For instance, checklists are usually used to assure that main functions and usage scenarios are tested before product release.
Each statement or unit in a component should be covered before posterior integration testing can proceed.
Formal software testing methods comprise:
- control flow testing (attempts to cover execution paths)
- domain testing (attempts to cover boundaries between various input sub-domains).
Such formal coverage info can only be received by using costly coverage analysis and testing tools.
Nevertheless, rough coverage dimension may be received easily by examining the proportion of tested items in different checklists.
Product reliability purposes may be used as a more unbiased reason to stop software testing. The use of it requires the testing to be conducted under an environment that resembles actual usage by real clients so that realistic reliability assessment can be received, resulting in the usage-based statistical testing.
The coverage criterion guarantees that certain types of software bugs are identified and removed, in that way diminishing some of errors to a lower level; nevertheless quality is not actually assessed.
The usage-based testing and the related reliability criterion guarantee that the defects that are most likely to cause troubles for clients are more likely to be identified and removed, and the reliability of the software reaches certain goals before testing stops.