Skip to main content
QUICK REVIEW

[论文解读] On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs

Kui Liu, Shangwen Wang|Open Repository and Bibliography (University of Luxembourg)|Aug 3, 2020
Software Testing and Debugging Techniques参考文献 65被引用 14
一句话总结

本文对16种基于测试套件的Java开源程序修复工具的效率进行了大规模实证研究,通过在找到正确补丁前生成的补丁候选数量来衡量效率。研究发现,基于模板的工具虽然在修复错误方面最有效,但效率最低,因为其生成了大量无关的候选补丁,凸显了自动化程序修复中有效性与效率之间的关键权衡。

ABSTRACT

Test-based automated program repair has been a prolific field of research in software engineering in the last decade. Many approaches have indeed been proposed, which leverage test suites as a weak, but affordable, approximation to program specifications. Although the literature regularly sets new records on the number of benchmark bugs that can be fixed, several studies increasingly raise concerns about the limitations and biases of state-of-the-art approaches. For example, the correctness of generated patches has been questioned in a number of studies, while other researchers pointed out that evaluation schemes may be misleading with respect to the processing of fault localization results. Nevertheless, there is little work addressing the efficiency of patch generation, with regard to the practicality of program repair. In this paper, we fill this gap in the literature, by providing an extensive review on the efficiency of test suite based program repair. Our objective is to assess the number of generated patch candidates, since this information is correlated to (1) the strategy to traverse the search space efficiently in order to select sensical repair attempts, (2) the strategy to minimize the test effort for identifying a plausible patch, (3) as well as the strategy to prioritize the generation of a correct patch. To that end, we perform a large-scale empirical study on the efficiency, in terms of quantity of generated patch candidates of the 16 open-source repair tools for Java programs. The experiments are carefully conducted under the same fault localization configurations to limit biases.

研究动机与目标

  • 评估基于测试套件的程序修复工具的效率,定义为在找到正确补丁前生成的补丁候选数量。
  • 研究故障定位噪声是否会影响补丁生成效率,尤其是在搜索空间受限的情况下。
  • 评估16种开源APR工具在修复有效性与效率之间的权衡。
  • 通过统一所有工具的故障定位配置,提供一个公平且可复现的基准。
  • 呼吁开发更优策略,在不牺牲修复有效性的情况下提升效率,以促进工业界采用。

提出的方法

  • 在相同的故障定位配置下评估16种开源APR工具,以最小化偏差。
  • 对每个工具使用相同的测试套件生成并验证补丁候选,设置固定超时以防止资源耗尽。
  • 将找到正确补丁前生成的补丁候选数量作为主要效率指标。
  • 通过扰动可疑代码位置的排名来模拟故障定位噪声,以评估鲁棒性。
  • 通过仅关注排名最高的可疑代码位置来筛选搜索空间,以隔离故障定位对效率的影响。
  • 所有实验均在相同的基准套件(Defects4J)上进行,并通过公开的实验产物确保结果完全可复现。

实验结果

研究问题

  • RQ116种基于测试套件的APR工具在生成补丁候选数量上如何变化,该数量与修复效率之间是否存在相关性?
  • RQ2当搜索空间受限时,故障定位噪声在多大程度上影响补丁生成效率?
  • RQ3为何以高修复有效性著称的基于模板的APR工具,会生成远多于其他方法的无关补丁候选?
  • RQ4搜索空间遍历策略如何影响在找到正确补丁前生成的补丁候选数量?
  • RQ5大量补丁候选对APR工具在工业界采用的实际影响是什么?

主要发现

  • 尽管基于模板的APR工具在修复错误方面最有效,但其生成的补丁候选数量最多,且大多数为无关候选。
  • 生成的补丁候选中有相当大比例基于错误的代码位置,表明其对易错区域的定位能力较差。
  • 当搜索空间仅限于最可疑的代码位置时,故障定位噪声对补丁生成效率的影响微乎其微。
  • 生成的补丁候选数量与修复策略优先考虑有意义代码变异的能力密切相关。
  • 研究揭示了修复有效性与效率之间存在关键权衡,即高有效性往往伴随着过度的计算开销。
  • 结果表明,未来APR研究应优先关注减少无关补丁候选数量的策略,以提升实用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。