Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Software Fault Interactions and Implications for Software Testing
 IEEE Transactions on Software Engineering30 (6):418-421,2004.Type:Article
Date Reviewed: Sep 9 2005

By analyzing the error reports and the code changes required to fix faults in a number of development-stage and released software systems, ranging in size from one thousand to one million lines of code, the authors have discovered that the overwhelming majority of failures are triggered by the interaction of a relatively small number of input parameters. This is contrary to our intuitive ideas that faults in released systems should be far more difficult to expose since they are most likely caused by complex interactions of input data. The reported study found that the failure-triggering fault interaction (FTFI) number was no more than six, and was generally around four.

Assuming that this is true for all faults in the software being tested, it should be possible (given the FTFI number, n) to perform effectively exhaustive testing by generating all sets of n-tuples of parameters where n << k, the total number of input parameters, provided that each parameter takes only a small set of discrete values. Pseudoexhaustive testing could be attained by partition testing all n-way combinations of equivalence classes.

The authors provide a simple example to show how the number of test cases required for pseudoexhaustive testing is practical for small FTFI numbers, and a naive lower bound is obtained for the number of test data sets required. The automatic test-case generation tools currently available are capable of providing the required data sets, although the actual number of test cases produced by these tools will be a small multiple of the naive bound. An analysis is also provided that shows how this testing strategy should be implemented based on available testing resources.

This is an exciting new strategy for test design, but more empirical testing is necessary to provide reliable data on fault interaction across a range of application areas. More practical studies of the use of automatic test-case generation tools in this manner are also required. This is an interesting, well-written, and easy-to-follow paper that is well worth reading by anyone interested in improving the quality of software testing.

Reviewer:  T. Hopkins Review #: CR131762 (0603-0286)
Bookmark and Share
  Reviewer Selected
Editor Recommended
Featured Reviewer
 
 
Program Verification (I.2.2 ... )
 
 
Software Process Models (D.2.9 ... )
 
 
Software Quality Assurance (SQA) (D.2.9 ... )
 
 
Testing Tools (D.2.5 ... )
 
 
Testing And Debugging (D.2.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Program Verification": Date
Extraction of redundancy-free programs from constructive natural deduction proofs
Takayama Y. Journal of Symbolic Computation 12(1): 29-69, 1991. Type: Article
Oct 1 1992
PROUST: an automatic debugger for PASCAL programs
Johnson W., Soloway E. BYTE 10(4): 179-190, 1985. Type: Article
Aug 1 1985
Breeding software test cases with genetic algorithms
Berndt D., Fisher J., Johnson L., Pinglikar J., Watkins A.  Conference on System Sciences (Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS’03) - Track 9, Big Island, HI, Jan 6-9, 2003)338.12003. Type: Proceedings
Jun 3 2004
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy