The goal for white box testing is to ensure that the internal components of a program are working properly. A common focus is on structural elements such as statements and branches. The tester develops test cases that exercise these structural elements to determine if defects exist in the program structure. The term exercise is used in this context to indicate that the target structural elements are executed when the test cases are run. By exercising all of the selected structural elements the tester hopes to improve the chances for detecting defects.
Testers need a framework for deciding which structural elements to select as the focus of testing, for choosing the appropriate test data, and for deciding when the testing efforts are adequate enough to terminate the process with confidence that the software is working properly. Such a framework exists in the form of test adequacy criteria. Formally a test data adequacy criterion is a stopping rule [1,2]. Rules of this type can be used to determine whether or not sufficient testing has been carried out.
The criteria can be viewed as representing minimal standards for testing a program. The application scope of adequacy criteria also includes:
(i) helping testers to select properties of a program to focus on during test;
(ii) helping testers to select a test data set for a program based on the selected properties;
(iii) supporting testers with the development of quantitative objectives for testing;
(iv) indicating to testers whether or not testing can be stopped for that program.