论文标题
使用叮当前端进行突变测试优化
Mutation Testing Optimisations using the Clang Front-end
论文作者
论文摘要
突变测试是评估测试套件的断层检测能力的最新技术。不幸的是,完整的突变分析通常非常昂贵。例如,CPPCHECK项目要求在我们的台式计算机上的构建时间为5.8分钟,测试执行时间为17秒。一个不可替代的突变分析,对于55,000个产生的突变体,总共花费了11.8天,其中4.3天用于(重新)编译该项目。在本文中,我们介绍了一项可行性研究,并研究了如何根据Clang前端实施许多优化策略。这些优化策略允许消除汇编和执行开销,以支持C语言家族的有效突变测试。我们提供了概念验证工具,可实现2倍至30倍之间的速度。我们对优化引起的加速度进行了详细的分析,详细介绍了经验教训,并指出了进一步改进的途径。
Mutation testing is the state-of-the-art technique for assessing the fault detection capacity of a test suite. Unfortunately, a full mutation analysis is often prohibitively expensive. The CppCheck project for instance, demands a build time of 5.8 minutes and a test execution time of 17 seconds on our desktop computer. An unoptimised mutation analysis, for 55,000 generated mutants took 11.8 days in total, of which 4.3 days is spent on (re)compiling the project. In this paper we present a feasibility study, investigating how a number of optimisation strategies can be implemented based on the Clang front-end. These optimisation strategies allow to eliminate the compilation and execution overhead in order to support efficient mutation testing for the C language family. We provide a proof-of-concept tool that achieves a speedup of between 2x and 30x. We make a detailed analysis of the speedup induced by the optimisations, elaborate on the lessons learned and point out avenues for further improvements.