Faster Mutation Testing Inspired by Test Prioritization and Reduction



Lingming Zhang1, Darko Marinov2, Sarfraz Khurshid1
1Electrical and Computer Engineering, University of Texas, Austin, TX 78712, USA
zhanglm@utexas.edu, khurshid@ece.utexas.edu
2Department of Computer Science, University of Illinois, Urbana, IL 61801, USA
marinov@illinois.edu


Mutation testing is a well-known but costly approach for determining test adequacy. The central idea behind the approach is to generate mutants, which are small syntactic transformations of the program under test, and then to measure for a given test suite how many mutants it kills. A test t is said to kill a mutant m of program p if the output of t on m is different from the output of t on p. The effectiveness of mutation testing in determining the quality of a test suite relies on the ability to apply it using a large number of mutants. However, running many tests against many mutants is time consuming. We present a family of techniques to reduce the cost of mutation testing by prioritizing and reducing tests to more quickly determine the sets of killed and non-killed mutants. Experimental results show the effectiveness and efficiency of our techniques.

Paper

Experimental Subjects

Experimental Data