Possibility of cost reduction by mutant clustering according to the clustering scope

Mutation testing offers developers a good way to improve the quality of a test set. However, the high cost of executing a large number of mutants remains an issue. This paper examines the possibility of reducing the cost of statement‐level mutant clustering by comparing the number of mutant executions with those of expression‐level and block‐level mutant clustering. The goal is to investigate to what extent the clustering scope should be extended. The experimental results using nine real‐world programs show that statement‐level clustering can reduce the mutant executions that are required by expression‐level clustering by 10.51% on average. Block‐level clustering exhibits an unexpected result; the number of mutant executions with block‐level clustering is only 1.06% times less than that with statement‐level clustering. That is, statement‐level clustering is more cost‐effective than block‐level clustering when considering their clustering overheads. A compound expression plays a major role in providing a cost‐reduction effect in statement‐level clustering. With a compound expression, the number of candidate mutants to be clustered in a statement scope increases, and state change can be comprehensively examined, thereby increasing the possibility of cost reduction. © 2018 John Wiley & Sons, Ltd.

[1]  A. Jefferson Offutt,et al.  Establishing Theoretical Minimal Sets of Mutants , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[2]  René Just,et al.  Do Redundant Mutants Affect the Effectiveness and Efficiency of Mutation Analysis? , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[3]  Sang-Woon Kim,et al.  Combining weak and strong mutation for a noninterpretive Java mutation system , 2013, Softw. Test. Verification Reliab..

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

[5]  Anthony Ventresque,et al.  Demo: PIT a Practical Mutation Testing Tool for Java , 2016 .

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

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

[8]  Baowen Xu,et al.  A Novel Method of Mutation Clustering Based on Domain Analysis , 2009, SEKE.

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

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

[11]  A. Jefferson Offutt,et al.  Mutant Subsumption Graphs , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[12]  Michael D. Ernst,et al.  Efficient mutation analysis by propagating and partitioning infected execution states , 2014, ISSTA 2014.

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

[14]  Mark Harman,et al.  A study of equivalent and stubborn mutation operators using human analysis of equivalence , 2014, ICSE.

[15]  Sang-Woon Kim,et al.  Mutation testing cost reduction by clustering overlapped mutants , 2016, J. Syst. Softw..

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

[17]  Mark Harman,et al.  Higher Order Mutation Testing , 2009, Inf. Softw. Technol..

[18]  A. Jefferson Offutt,et al.  Are We There Yet? How Redundant and Equivalent Mutants Affect Determination of Test Completeness , 2016, 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

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

[20]  Hiroaki Yoshida,et al.  MuVM: Higher Order Mutation Analysis Virtual Machine for C , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

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

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

[23]  A. Jefferson Offutt,et al.  Improving logic-based testing , 2013, J. Syst. Softw..

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

[25]  András Márki,et al.  On strong mutation and subsuming mutants , 2016, 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

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

[27]  Yves Le Traon,et al.  Threats to the validity of mutation-based test assessment , 2016, ISSTA.

[28]  Zhu Speeding-Up Mutation Testing via Data Compression and State Infection , 2017 .

[29]  Bo Wang,et al.  Faster mutation analysis via equivalence modulo states , 2017, ISSTA.