If You Can't Kill a Supermutant, You Have a Problem

Quality of software test suites can be effectively and accurately measured using mutation analysis. Traditional mutation involves seeding first and sometimes higher order faults into the program, and evaluating each for detection. However, traditional mutants are often heavily redundant, and it is desirable to produce the complete matrix of test cases vs mutants detected by each. Unfortunately, even the traditional mutation analysis has a heavy computational footprint due to the requirement of independent evaluation of each mutant by the complete test suite, and consequently the cost of evaluation of complete kill matrix is exorbitant. We present a novel approach of combinatorial evaluation of multiple mutants at the same time that can generate the complete mutant kill matrix with lower computational requirements. Our approach also has the potential to reduce the cost of execution of traditional mutation analysis especially for test suites with weak oracles such as machine-generated test suites, while at the same time liable to only a linear increase in the time taken for mutation analysis in the worst case.

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

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

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

[4]  Mike Papadakis,et al.  Automatically performing weak mutation with the aid of symbolic execution, concolic testing and search-based testing , 2011, Software Quality Journal.

[5]  Alex Groce,et al.  Measuring Effectiveness of Mutant Sets , 2016, 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[6]  Mark Harman,et al.  Constructing Subtle Faults Using Higher Order Mutation Testing , 2008, 2008 Eighth IEEE International Working Conference on Source Code Analysis and Manipulation.

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

[8]  A. Jefferson Offutt,et al.  Experimental Evaluation of SDL and One-Op Mutation for C , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[9]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

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

[11]  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).

[12]  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.

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

[14]  Lionel C. Briand,et al.  Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria , 2006, IEEE Transactions on Software Engineering.

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

[16]  Willem Visser,et al.  What makes killing a mutant hard , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[17]  Doo-Hwan Bae,et al.  A Theoretical Framework for Understanding Mutation-Based Testing Methods , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

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

[19]  Ahmed S. Ghiduk,et al.  Higher order mutation testing: A Systematic Literature Review , 2017, Comput. Sci. Rev..

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

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

[22]  K. S. How Tai Wah,et al.  An analysis of the coupling effect I: single test data , 2003, Sci. Comput. Program..

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

[24]  K. S. How Tai Wah A Theoretical Study of Fault Coupling , 2000, Softw. Test. Verification Reliab..

[25]  Alex Groce,et al.  Code coverage for suite evaluation by developers , 2014, ICSE.

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

[27]  Lech Madeyski,et al.  Problems of Mutation Testing and Higher Order Mutation Testing , 2014, ICCSAMA.

[28]  Shingo Takada,et al.  Reducing Mutants with Mutant Killable Precondition , 2017, 2017 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

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

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

[31]  Michael D. Ernst,et al.  Are mutants a valid substitute for real faults in software testing? , 2014, SIGSOFT FSE.

[32]  Wagner Stefan,et al.  Will My Tests Tell Me If I Break This Code , 2016 .

[33]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[34]  Alex Groce,et al.  The Theory of Composite Faults , 2017, 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[35]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

[36]  A Jeeerson Ooutt,et al.  Subsumption of Condition Coverage Techniques by Mutation Testing , 1996 .

[37]  Alex Groce,et al.  Topsy-Turvy: A Smarter and Faster Parallelization of Mutation Analysis , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).