Issue No. 08 - August (1990 vol. 16)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.57623
<p>A theory of fault-based program testing is defined and explained. Testing is fault-based when it seeks to demonstrate that prescribed faults are not in a program. It is assumed that a program can only be incorrect in a limited fashion specified by associating alternate expressions with program expressions. Classes of alternate expressions can be infinite. Substituting an alternate expression for a program expression yields an alternate program that is potentially correct. The goal of fault-based testing is to produce a test set that differentiates the program from each of its alternates. A particular form of fault-based testing based on symbolic execution is presented. In symbolic testing, the output from the system is an expression in terms of the input and the symbolic alternative. Equating this with the output from the original program yields a propagation equation whose solutions determine those alternatives which are not differentiated by this test. Since an alternative set can be infinite, it is possible that no finite test differentiates the program from all its alternates. Circumstances are described as to when this can be decided.</p>
fault-based program testing; prescribed faults; alternate expressions; program expressions; test set; symbolic execution; symbolic alternative; propagation equation; alternative set; finite test; computational complexity; program verification; symbol manipulation.
L. Morell, "A Theory of Fault-Based Testing," in IEEE Transactions on Software Engineering, vol. 16, no. , pp. 844-857, 1990.