On the number and nature of faults found by random testing
- 21 February 2011
- journal article
- research article
- Published by Wiley in Software Testing, Verification and Reliability
- Vol. 21 (1) , 3-28
Abstract
Intuition suggests that random testing should exhibit a considerable difference in the number of faults detected by two different runs of equal duration. As a consequence, random testing would be rather unpredictable. This article first evaluates the variance over time of the number of faults detected by randomly testing object‐oriented software that is equipped with contracts. It presents the results of an empirical study based on 1215 h of randomly testing 27 Eiffel classes, each with 30 seeds of the random number generator. The analysis of over 6 million failures triggered during the experiments shows that therelative numberof faults detected by random testing over time is predictable, but that different runs of the random test case generator detectdifferent faults. The experiment also suggests that the random testing quickly finds faults: the first failure is likely to be triggered within 30 s. The second part of this article evaluates thenatureof the faults found by random testing. To this end, it first explains a fault classification scheme, which is also used to compare the faults found through random testing with those found through manual testing and with those found in field use of the software and recorded in user incident reports. The results of the comparisons show that each technique is good at uncovering different kinds of faults. None of the techniques subsumes any of the others; each brings distinct contributions. This supports a more general conclusion on comparisons between testing strategies: thenumberof detected faults is too coarse a criterion for such comparisons—thenatureof faults must also be considered. Copyright © 2009 John Wiley & Sons, Ltd.Keywords
This publication has 42 references indexed in Scilit:
- Research issues in software fault categorizationACM SIGSOFT Software Engineering Notes, 2007
- KoratACM SIGSOFT Software Engineering Notes, 2002
- QuickCheckACM SIGPLAN Notices, 2000
- On random and partition testingACM SIGSOFT Software Engineering Notes, 1998
- Software unit test coverage and adequacyACM Computing Surveys, 1997
- Comparing and combining software defect detection techniquesACM SIGSOFT Software Engineering Notes, 1997
- All-uses vs mutation testing: An experimental comparison of effectivenessJournal of Systems and Software, 1997
- Targeting safety-related errors during software requirements analysisACM SIGSOFT Software Engineering Notes, 1993
- An experimental comparison of the effectiveness of branch testing and data flow testingIEEE Transactions on Software Engineering, 1993
- Partition testing does not inspire confidence (program testing)IEEE Transactions on Software Engineering, 1990