  Mutation analysis has many applications, such as assessing the quality of
test cases, fault localization, test input generation, security analysis, etc.
Such applications involve running test suite against a large number of program
mutants leading to poor scalability. Much research has been aimed at speeding
up this process, focusing on reducing the number of mutants, the number of
executed tests, or the execution time of the mutants. This paper presents a
novel approach, named MeMu, for reducing the execution time of the mutants, by
memoizing the most expensive methods in the system. Memoization is an
optimization technique that allows bypassing the execution of expensive
methods, when repeated inputs are detected. MeMu can be used in conjunction
with existing acceleration techniques. We implemented MeMu on top of PITest, a
well-known JVM bytecode-level mutation analysis system, and obtained, on
average, an 18.15% speed-up over PITest, in the execution time of the mutants
for 12 real-world programs. These promising results and the fact that MeMu
could also be used for other applications that involve repeated execution of
tests (e.g., automatic program repair and regression testing), strongly support
future research for improving its efficiency.
