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.
翻译:突变分析有许多应用,例如评估测试案例的质量、误差定位、测试输入生成、安全分析等。这类应用涉及对大量程序变异者运行测试套件,导致变异体的可缩放性差。许多研究都旨在加速这一进程,重点是减少变异体的数量、已执行的测试次数或变异体的执行时间。本文介绍了一种叫MEMu的新颖的方法,通过回忆系统中最昂贵的方法来缩短变异体的执行时间。 记忆是一种优化技术,在反复发现输入时可以绕过昂贵方法的执行。 可以在现有的加速技术中同时使用MEMu。 我们在PITest(一个广为人知的JVM 字节级突变分析系统)上实施了MEMU, 并在变异体12个现实世界程序的执行时间中平均获得了18.15%的超速率。这些有希望的结果,而且MMu也可以用于其他应用,包括反复进行测试(例如自动程序修复和回归),从而有力地支持未来研究的效率。