Provable improvements on branch testing
- 1 October 1993
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 19 (10) , 962-975
- https://doi.org/10.1109/32.245738
Abstract
This paper compares the fault-detecting ability of several software test data adequacy criteria. It has previously been shown that if C/sub 1/ properly covers C/sub 2/, then C/sub 1/ is guaranteed to be better at detecting faults than C/sub 2/, in the following sense: a test suite selected by independent random selection of one test case from each subdomain induced by C/sub 1/ is at least as likely to detect a fault as a test suite similarly selected using C/sub 2/. In contrast, if C/sub 1/ subsumes but does not properly cover C/sub 2/, this is not necessarily the case. These results are used to compare a number of criteria, including several that have been proposed as stronger alternatives to branch testing. We compare the relative fault-detecting ability of data flow testing, mutation testing, and the condition-coverage techniques, to branch testing, showing that most of the criteria examined are guaranteed to be better than branch testing according to two probabilistic measures. We also show that there are criteria that can sometimes be poorer at detecting faults than substantially less expensive criteria.<>Keywords
This publication has 20 references indexed in Scilit:
- Experimental results from an automatic test case generatorACM Transactions on Software Engineering and Methodology, 1993
- A formal analysis of the fault-detecting ability of testing methodsIEEE Transactions on Software Engineering, 1993
- Partition testing does not inspire confidence (program testing)IEEE Transactions on Software Engineering, 1990
- Theoretical comparison of testing methodsPublished by Association for Computing Machinery (ACM) ,1989
- On Required Element TestingIEEE Transactions on Software Engineering, 1984
- A Mathematical Framework for the Investigation of TestingIEEE Transactions on Software Engineering, 1983
- A Data Flow Oriented Program Testing StrategyIEEE Transactions on Software Engineering, 1983
- Data Abstraction, Implementation, Specification, and TestingACM Transactions on Programming Languages and Systems, 1981
- Hints on Test Data Selection: Help for the Practicing ProgrammerComputer, 1978
- Data Flow Analysis in Software ReliabilityACM Computing Surveys, 1976