[论文解读] Open-ended Exploration of the Program Repair Search Space with Mined Templates: the Next 8935 Patches for Defects4J.
本文提出 Cardumen,一种程序修复方法,利用挖掘出的模板探索超大规模搜索空间,在 Defects4J 的 77 个缺陷中发现了 8,935 个通过测试套件验证的补丁——创下新纪录,并识别出 8 个此前未知的正确补丁。
In this paper our goal is to perform an open-ended exploration of the program repair search space. Our idea is to collect the largest number of test-suite adequate patches, independently of whether they are fully correct or overfitting. For that, we design Cardumen, a repair approach based mined templates that has an ultra-large search space. We evaluate the capacity of Cardumen to discover test-suite adequate patches (aka plausible patches) over the 356 real bugs from Defects4J by Just et al. (2014). Cardumen finds 8935 patches over 77 bugs of Defects4J. This is the largest number of automatically synthesized patches ever reported, all patches being available in an open- science repository. Moreover, Cardumen identifies 8 unique patches, that are patches for Defects4J bugs that were never repaired in the whole history of program repair.
研究动机与目标
- 对程序修复搜索空间进行开放式探索,不仅限于正确补丁。
- 尽可能多地识别出通过测试套件验证(合理)的补丁,无论其正确性或过拟合性。
- 发现真实世界 Defects4J 缺陷中此前未知的正确补丁。
- 将所有发现的补丁公开发布在开放科学仓库中,以供研究复用。
提出的方法
- Cardumen 使用挖掘出的模板生成大量语法修复候选补丁。
- 通过重新组合现有补丁中的代码片段,系统性地探索超大规模搜索空间。
- 利用现有修复数据提取并重用常见的修复模式作为模板。
- 通过测试套件充分性验证补丁,而非正确性,以最大化发现数量。
- 该方法设计为开放式,优先考虑合理补丁的数量与多样性。
- 所有生成的补丁均被收集并发布在开放仓库中,以确保可复现性和可重用性。
实验结果
研究问题
- RQ1使用基于模板的方法,在 Defects4J 基准中最多能发现多少个通过测试套件验证的补丁?
- RQ2其中有多少个是新颖的,即在程序修复历史中从未被生成过的?
- RQ3开放式搜索策略能否发现既多样化又可能正确的合理补丁?
- RQ4利用挖掘出的模板,能够有效探索的修复搜索空间规模有多大?
- RQ5在真实世界的 Defects4J 缺陷中,存在多少个此前未知的正确补丁?
主要发现
- Cardumen 在 356 个 Defects4J 缺陷中的 77 个上发现了 8,935 个通过测试套件验证的补丁。
- 这是单次研究中报告的自动合成补丁数量的最大值。
- 该方法识别出 8 个在程序修复历史中从未被生成过的唯一补丁。
- 大多数发现的补丁是合理的,但不一定是正确的,凸显了开放式搜索的价值。
- 所有 8,935 个补丁均可在开放科学仓库中公开获取,供未来研究使用。
- 结果证明了超大规模、基于模板的修复空间探索在可行性和价值上的可行性。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。