A theory of fault-based testing
- 1 August 1990
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 16 (8) , 844-857
- https://doi.org/10.1109/32.57623
Abstract
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.Keywords
This publication has 23 references indexed in Scilit:
- The coupling effect: fact or fictionPublished by Association for Computing Machinery (ACM) ,1989
- A Theory of Error-Based Testing.Published by Defense Technical Information Center (DTIC) ,1984
- Testing for Perturbations of Program StatementsIEEE Transactions on Software Engineering, 1983
- Software Reliability—Status and PerspectivesIEEE Transactions on Software Engineering, 1982
- Weak Mutation Testing and Completeness of Test SetsIEEE Transactions on Software Engineering, 1982
- Experience with Path Analysis and Testing of ProgramsIEEE Transactions on Software Engineering, 1980
- Theoretical and empirical studies on using program mutation to test the functional correctness of programsPublished by Association for Computing Machinery (ACM) ,1980
- Algebraic program testingActa Informatica, 1978
- Symbolic Testing and the DISSECT Symbolic Evaluation SystemIEEE Transactions on Software Engineering, 1977
- A System to Generate Test Data and Symbolically Execute ProgramsIEEE Transactions on Software Engineering, 1976