An Experimental Determination of Suucient Mutant Operators

Mutation testing is a technique for unit testing software that, although powerful, is computationally expensive. The principal expense of mutation is that many variants of the test program, called mutants, must be repeatedly executed. This paper quantiies the expense of mutation in terms of the number of mutants that are created, then proposes and evaluates a technique that reduces the number of mutants by an order of magnitude. Selective mutation reduces the cost of mutation testing by reducing the number of mutants. This paper reports experimental results that compare selective mutation testing with standard, or non-selective, mutation testing, and results that quantify the savings achieved by selective mutation testing. The results support the hypothesis that selective mutation is almost as strong as non-selective mutation; in experimental trials selective mutation provides almost the same coverage as non-selective mutation, with a four-fold or more reduction in the number of mutants.

[1]  Richard G. Hamlet,et al.  Testing Programs with the Aid of a Compiler , 1977, IEEE Transactions on Software Engineering.

[2]  R. Lyman Ott.,et al.  An introduction to statistical methods and data analysis , 1977 .

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

[4]  Timothy Alan Budd,et al.  Mutation analysis of program test data , 1980 .

[5]  Richard J. Lipton,et al.  Theoretical and empirical studies on using program mutation to test the functional correctness of programs , 1980, POPL '80.

[6]  R. Freund,et al.  SAS for linear models : a guide to the ANOVA and GLM procedures , 1981 .

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

[8]  R.A. DeMillo,et al.  An extended overview of the Mothra software testing environment , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[9]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[10]  A.P. Mathur Performance, effectiveness, and reliability issues in software testing , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[11]  Elaine J. Weyuker,et al.  Comparison of program testing strategies , 1991, TAV4.

[12]  A. Jefferson Offutt,et al.  An integrated automatic test data generation system , 1991, J. Syst. Integr..

[13]  K. N. King,et al.  A fortran language system for mutation‐based software testing , 1991, Softw. Pract. Exp..

[14]  A. Jefferson Offutt,et al.  Investigations of the software testing coupling effect , 1992, TSEM.

[15]  Byoungju Choi,et al.  High-performance mutation testing , 1993, J. Syst. Softw..

[16]  Weichen Eric Wong On mutation and data flow , 1993 .

[17]  Gregg Rothermel,et al.  An experimental evaluation of selective mutation , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[18]  A. Jefferson Offutt,et al.  Experimental results from an automatic test case generator , 1993, TSEM.

[19]  A. Jefferson Offutt,et al.  An Empirical Evaluation of Weak Mutation , 1994, IEEE Trans. Software Eng..

[20]  W. Eric Wong,et al.  An empirical comparison of data flow and mutation‐based test adequacy criteria , 1994, Softw. Test. Verification Reliab..

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

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

[23]  S. N. Weiss,et al.  All-Uses versus Mutation Testing : An ExperimentalComparison of E ectiveness , 1996 .

[24]  Subsumption of Condition Coverage Techniques by Mutation Testing , 1996 .

[25]  R. Lipton,et al.  Mutation analysis , 1998 .