中文

面向自动化程序修复的人工克隆变更大规模研究

软件工程 2021-04-07 v1

摘要

自动程序修复的研究表明,真实缺陷可以被自动修复。然而,此类任务涉及若干尚未完全解决的挑战。例如,考虑一个基于测试套件的修复工具对程序进行修改以修复由失败测试用例发现的缺陷,但随后同一或另一测试用例失败。这可能意味着该修改是缺陷的部分修复,或者暴露了另一缺陷。然而,修复工具会丢弃该修改并可能尝试其他修复。人们可能想知道所应用的修改是否也应应用于程序中的其他位置以完全修复缺陷。在本文中,我们感兴趣于调查开发者在补丁内克隆缺陷修复变更的程度。我们的目标是通过在相同或相似上下文中使用相同或相似的变更,来研究多位置修复的需求。为此,我们分析了来自 ManySStuBs4J 数据集的 3,049 个多块补丁,该数据集是一个大型的单语句缺陷修复变更数据集。我们发现 68% 的多块补丁包含至少一个变更克隆组。此外,这些补丁中的大多数(70%)是严格克隆的,即完全由属于单一变更克隆组的变更组成。最后,大多数严格克隆补丁(89%)包含具有完全相同变更的克隆,与其上下文无关。我们得出结论,用于创建由相同或相似变更组成的补丁的自动化解决方案可有助于修复缺陷。

关键词

引用

@article{arxiv.2104.02386,
  title  = {A large-scale study on human-cloned changes for automated program repair},
  author = {Fernanda Madeiral and Thomas Durieux},
  journal= {arXiv preprint arXiv:2104.02386},
  year   = {2021}
}