Appendix B: Glossary
J. C. Huang · 2008
Assertion checkingWhen a program is being executed, its variables should assume values in a certain range, or satisfy a certain assertion, at various points in its control flow.Any violation constitutes a symptom of programming error.Such violations can be detected by inserting appropriate instruments (additional statements) into the program and then executing the instrumented program with an appropriate set of inputs.This dynamic technique for software fault detection is called assertion checking (Section 7.3).Backward substitution The process of computing the weakest precondition of an assignment statement: The result is to be obtained by substituting the right-hand side of the assignment statement for every occurrence of the left-hand-side variable in the postcondition (Section 5.1). Boundary-interior testingAn abbreviated version of path testing.Path testing is impractical because any program with loop constructs has a prohibitively large number of execution paths.One way to make it practical is to allow the tester to sample the execution paths to be traversed.This is one such method (Section 2.4).Boundary-value analysis A specification-based test-case selection method: For each input and output variable defined in the range between the lower bound LB and the upper bound UB, choose LB, UB, LB -␦, and UP + ␦ as the test cases, where ␦ is the smallest value assumable by the variables (Section 3.3).Branch testing A test-case selection criterion: requires the use of a set of test cases that causes every branch in the control-flow diagram to be traversed at least once during the test (Section 2.3).Code inspection Also known as walkthrough; refers to a process in which a program is scrutinized systematically by the peers of its creator in a meeting for the purpose of fault discovery (Section 6.4).Component (to be tested) When a program is executed, not every component is involved.If a program component is not involved in a test execution and if the component is faulty, the fault will not be revealed by the test.That is why it is essential that all components be exercised at least once during a test.Different choices of component lead to the development of different test-case selection methods, such as statement and branch tests (Section 1.2).