中文

Java 程序修复工具的实证审查:基于 2,141 个缺陷和 23,551 次修复尝试的大规模实验

软件工程 2019-05-29 v1

摘要

在过去十年中,基于测试套件的自动程序修复研究显著增长。每年,新的方法和实现都会在主要的软件工程会议中出现。然而,这些方法大多在单一的缺陷基准上进行评估,且很少被其他研究者复现。在本文中,我们使用 11 个基于测试套件的 Java 修复工具和 5 个缺陷基准进行了一项大规模实验。我们的目标是更好地理解自动程序修复工具在多种基准上的现状。我们的研究基于这样一个假设:修复工具的可修复性可能无法在不同的缺陷基准之间泛化。我们发现这 11 个工具 1) 能够为 5 个基准中 21% 的缺陷生成补丁,并且 2) 在 Defects4J 上的表现优于其他基准,为 Defects4J 中 47% 的缺陷生成了补丁,而其他基准的这一比例为 10-30%。我们的实验总共包含 23,551 次修复尝试,我们利用这些尝试来寻找未能生成补丁的原因。本文报告了这些原因,可以帮助修复工具设计者改进其技术和工具。

关键词

引用

@article{arxiv.1905.11973,
  title  = {Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts},
  author = {Thomas Durieux and Fernanda Madeiral and Matias Martinez and Rui Abreu},
  journal= {arXiv preprint arXiv:1905.11973},
  year   = {2019}
}