An empirical, path-oriented approach to software analysis and testing

Error flow analysis and testing techniques focus on the introduction of errors through code faults into data states of an executing program, and their subsequent cancellation or propagation to output. The goals and limitations of several error flow techniques are discussed, including mutation analysis, fault-based testing, PIE analysis, and dynamic impact analysis. The attributes desired of a good error flow technique are proposed, and a model called dynamic error flow analysis (DEFA) is described that embodies many of these attributes. A testing strategy is proposed that uses DEFA information to select an optimal set of test paths and to quantify the results of successful testing. An experiment is presented that illustrates this testing strategy. In this experiment, the proposed testing strategy outperforms mutation testing in catching arbitrary data state errors.

[1]  Tarak Goradia Dynamic impact analysis: a cost-effective technique to enforce error-propagation , 1993, ISSTA '93.

[2]  Branson W. Murrill,et al.  Semantic metrics through error flow analysis , 1993, J. Syst. Softw..

[3]  Branson W. Murrill,et al.  Using perturbation analysis to measure variation in the information content of test sets , 1996, ISSTA '96.

[4]  J. Voas,et al.  Software Testability: The New Verification , 1995, IEEE Softw..

[5]  Larry Joe Morell A theory of error-based testing , 1983 .

[6]  A. Jefferson Offutt,et al.  A semantic model of program faults , 1996, ISSTA '96.

[7]  Larry J Morell,et al.  A Theory of Fault-Based Testing , 1990, IEEE Trans. Software Eng..

[8]  Debra J. Richardson,et al.  The RELAY model of error detection and its application , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[9]  Richard G. Hamlet,et al.  Error Propagation and Elimination in Computer Programs. , 1981 .

[10]  A. Jefferson Offutt The Coupling Effect: Fact or Fiction , 1989, Symposium on Testing, Analysis, and Verification.

[11]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[12]  K. S. How Tai Wah,et al.  Fault coupling in finite bijective functions , 1995, Softw. Test. Verification Reliab..

[13]  Branson W. Murrill,et al.  A perturbation-based testing strategy , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[14]  L. J. Morell Theoretical insights into fault-based testing , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[15]  Branson W. Murrill,et al.  An experimental approach to analyzing software semantics using error flow information , 1994, ISSTA '94.

[16]  Branson W. Murrill,et al.  Error flow in computer programs , 1991 .

[17]  Pascale Thévenod-Fosse,et al.  Software error analysis: a real case study involving real faults and mutations , 1996, ISSTA '96.

[18]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[19]  Jeffrey M. Voas,et al.  The revealing power of a test case , 1992, Softw. Test. Verification Reliab..