一句话:集成五类变异测试加速技术,构建首个完整的 Java 自动程序修复补丁验证加速框架,最多提速两个数量级。
自动程序修复(APR)的补丁验证阶段需要反复执行测试来筛选补丁,耗时很长,限制了 APR 的实际应用,却较少受到关注。该工作指出补丁验证与变异分析是对偶问题,并系统调研现有变异测试技术,归纳出五类适用于补丁验证的加速技术族,其中两类此前从未被适配到通用补丁验证器中。作者实现并展示了 ExpressAPR,这是首个将五类加速技术作为完整集合组合起来的补丁验证框架。在 30 个随机 Defects4J bug 与四个 APR 系统上的评估表明,ExpressAPR 相比朴素验证加速约两个数量级,相比最先进方法加速约一个数量级,从而显著缩短 APR 研究者与用户的补丁验证时间。
Automated program repair (APR) approaches suffer from long patch validation time, which limits their practical application and receives relatively low attention. The patch validation process repeatedly executes tests to filter patches, and has been recognized as the dual of mutation analysis. We systematically investigate existing mutation testing techniques and recognize five families of acceleration techniques that are suitable for patch validation, two of which are never adapted to a general-purpose patch validator. We implement and demonstrate ExpressAPR, the first framework that combines five families of acceleration techniques for patch validation as the complete set. In our evaluation on 30 random Defects4J bugs and four APR systems, ExpressAPR accelerates patch validation for two order-of-magnitudes over plain validation or one order-of-magnitude over the state-of-the-art approach, benefiting APR researchers and users with a much shorter patch validation time. Demo video available at https://youtu.be/7AB-4VvBuuM Tool repo (source code + Docker image + evaluation dataset) available at https://github.com/ExpressAPR/ExpressAPR