Combining weak and strong mutation for a noninterpretive Java mutation system

Because of the computationally expensive cost of mutation testing, automated system support is indispensable for conducting mutation testing. Mutation systems can be classified into interpretive and noninterpretive, but recent systems are noninterpretive. Weak mutation is a well‐known cost reduction method of mutation testing, but it is not directly applicable to noninterpretive mutation systems. To address the problem and take advantage of the efficiency of weak mutation, this paper presents a combined weak and strong mutation for noninterpretive Java mutation systems. The new term ‘serialmutant’ is defined as a specialized program to conduct weak mutation against all mutants in an execution and report only weakly killed mutants as strong mutation candidates. Then strong mutation is conducted only for those reported mutants. The paper also describes an implementation based on a previous Java mutation tool, MuJava. Method‐level mutation operators for Java are also redesigned. Experimental results show that the proposed approach efficiently improves the mutation cost in a noninterpretive mutation system. Copyright © 2012 John Wiley & Sons, Ltd.

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

[2]  J. Zobel,et al.  Mutation Testing for the New Century , 2001, The Springer International Series on Advances in Database Systems.

[3]  Vladimir N. Fleyshgakker,et al.  Improved serial algorithms for mutation analysis , 1993, ISSTA '93.

[4]  Brian Marick,et al.  The weak mutation hypothesis , 1991, TAV4.

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

[6]  A. Jefferson Offutt,et al.  Mutation 2000: uniting the orthogonal , 2001 .

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

[8]  M. R. Woodward,et al.  From weak to strong, dead or alive? an analysis of some mutation testing issues , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

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

[10]  Richard A. DeMillo,et al.  Compiler-integrated program mutation , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[11]  Philippe Chevalley,et al.  Applying mutation analysis for object-oriented programs using a reflective approach , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[12]  A. Jefferson Offutt,et al.  An Experimental Evaluation of Data Flow and Mutation Testing , 1996, Softw. Pract. Exp..

[13]  J. A. Acree On mutation , 1980 .

[14]  Roland H. Untch,et al.  Schema-based mutation analysis: a new test data adequacy assessment method , 1995 .

[15]  Auri Marcelo Rizzo Vincenzi,et al.  Proteum: a family of tools to support specification and program testing based on mutation , 2001 .

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

[17]  Phyllis G. Frankl,et al.  All-uses vs mutation testing: An experimental comparison of effectiveness , 1997, J. Syst. Softw..

[18]  A. Jefferson Offutt,et al.  Inter-class mutation operators for Java , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[19]  Andreas Zeller,et al.  Javalanche: efficient mutation testing for Java , 2009, ESEC/SIGSOFT FSE.

[20]  Lech Madeyski,et al.  Judy - a mutation testing tool for Java , 2010, IET Softw..

[21]  A. Jefferson Offutt,et al.  MuJava: a mutation system for java , 2006, ICSE.

[22]  Christian Norbert Zapf,et al.  MedusaMothra { A Distributed Interpreter for the Mothra Mutation Testing System , 1993 .

[23]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

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

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

[26]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[27]  Vladimir N. Fleyshgakker,et al.  Efficient mutation analysis: a new approach , 1994, ISSTA '94.

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

[29]  A. Jefferson Offutt,et al.  Mutation analysis using mutant schemata , 1993, ISSTA '93.

[30]  Gregg Rothermel,et al.  An experimental determination of sufficient mutant operators , 1996, TSEM.