Faster Mutation Analysis with Fewer Processes and Smaller Overheads
Mutation analysis is a powerful dynamic approach that has many applications, such as measuring the quality of test suites or automatically locating fault. However, the inherent low scalability hampers its practical use. To accelerate mutation analysis, researchers propose approaches to reduce redundant executions. A family of fork-based approaches tries to share identical executions among mutants. Fork-based approaches carry all mutants in one process, and decide whether to fork new child-processes when reach a mutated statement. The mutants carried by the parent process are split into groups and distribute to different processes to finish remaining executions. However, existing fork-based approaches have two limitations: (1) the limited analysis scope on a single statement to compare and cluster mutants prevents their systems from detecting more equivalent mutants, and (2) the interpretation of the mutants and the runtime equivalence analysis introduce significant overhead.
In this paper, we present a novel fork-based mutation analysis approach WinMut, which (1) groups mutants in a scope of mutated statements and, (2) removes redundant computations inside interpreters. WinMut not only reduces the number of invoked processes, but also has a lower cost for executing a single process. Our experiments show that our approach can further accelerate mutation analysis with an average speedup of 9.52x on the top of the state-of-the-art fork-based approach, AccMut.