当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
RESTORE: Retrospective Fault Localization Enhancing Automated Program Repair
arXiv - CS - Software Engineering Pub Date : 2019-06-05 , DOI: arxiv-1906.01778
Tongtong Xu, Liushan Chen, Yu Pei, Tian Zhang, Minxue Pan, Carlo A. Furia

Fault localization is a crucial step of automated program repair, because accurately identifying program locations that are most closely implicated with a fault greatly affects the effectiveness of the patching process. An ideal fault localization technique would provide precise information while requiring moderate computational resources---to best support an efficient search for correct fixes. In contrast, most automated program repair tools use standard fault localization techniques---which are not tightly integrated with the overall program repair process, and hence deliver only subpar efficiency. In this paper, we present retrospective fault localization: a novel fault localization technique geared to the requirements of automated program repair. A key idea of retrospective fault localization is to reuse the outcome of failed patch validation to support mutation-based dynamic analysis---providing accurate fault localization information without incurring onerous computational costs. We implemented retrospective fault localization in a tool called RESTORE---based on the JAID Java program repair system. Experiments involving faults from the Defects4J standard benchmark indicate that retrospective fault localization can boost automated program repair: RESTORE efficiently explores a large fix space, delivering state-of-the-art effectiveness (41 Defects4J bugs correctly fixed, 8 more than any other automated repair tools for Java) while simultaneously boosting performance (speedup over 3 compared to JAID). Retrospective fault localization is applicable to any automated program repair techniques that rely on fault localization and dynamic validation of patches.

中文翻译:

RESTORE:追溯性故障定位增强自动程序修复

故障定位是自动程序修复的关键步骤,因为准确识别与故障最密切相关的程序位置极大地影响了修补过程的有效性。理想的故障定位技术将提供精确的信息,同时需要适度的计算资源——以最好地支持对正确修复的有效搜索。相比之下,大多数自动程序修复工具使用标准的故障定位技术——这些技术没有与整个程序修复过程紧密集成,因此只能提供低于标准的效率。在本文中,我们提出了回顾性故障定位:一种适合自动化程序修复要求的新型故障定位技术。追溯故障定位的一个关键思想是重用失败补丁验证的结果来支持基于突变的动态分析——提供准确的故障定位信息,而不会产生繁重的计算成本。我们在名为 RESTORE 的工具中实现了追溯故障定位——基于 JAID Java 程序修复系统。涉及来自 Defects4J 标准基准的故障的实验表明,回顾性故障定位可以促进自动程序修复:RESTORE 有效地探索大型修复空间,提供最先进的效率(正确修复了 41 个 Defects4J 错误,比任何其他自动修复多 8 个) Java 工具),同时提高性能(与 JAID 相比,加速超过 3)。
更新日期:2020-04-01
down
wechat
bug