当前位置: X-MOL 学术Front. Comput. Sci. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Evaluating the usage of fault localization in automated program repair: an empirical study
Frontiers of Computer Science ( IF 4.2 ) Pub Date : 2020-09-29 , DOI: 10.1007/s11704-020-9263-1
Deheng Yang , Yuhua Qi , Xiaoguang Mao , Yan Lei

Fault localization techniques are originally proposed to assist in manual debugging by generally producing a rank list of suspicious locations. With the increasing popularity of automated program repair, the fault localization techniques have been introduced to effectively reduce the search space of automated program repair. Unlike developers who mainly focus on the rank information, current automated program repair has two strategies to use the fault localization information: suspiciousness-first algorithm (SFA) based on the suspiciousness accuracy and rank-first algorithm (RFA) relying on the rank accuracy. However, despite the fact that the two different usages are widely adopted by current automated program repair and may result in different repair results, little is known about the impacts of the two strategies on automated program repair. In this paper we empirically compare the performance of SFA and RFA in the context of automated program repair. Specifically, we implement the two strategies and six well-studied fault localization techniques into four state-of-the-art automated program repair tools, and then use these tools to perform repair experiments on 60 real-world bugs from Defects4J. Our study presents a number of interesting findings: RFA outperforms SFA in 70.02% of cases when measured by the number of candidate patches generated before a valid patch is found (NCP), while SFA performs better in parallel repair and patch diversity; the performance of SFA can be improved by increasing the suspiciousness accuracy of fault localization techniques; finally, we use SimFix that deploys SFA to successfully repair four extra Defects4J bugs which cannot be repaired by SimFix originally using RFA. These observations provide a new perspective for future research on the usage and improvement of fault localization in automated program repair.



中文翻译:

评估故障本地化在自动程序修复中的使用:一项实证研究

最初提出了故障定位技术,以通过通常生成可疑位置的等级列表来帮助进行手动调试。随着自动程序修复的日益普及,故障定位技术已经被引入以有​​效地减少自动程序修复的搜索空间。与主要关注等级信息的开发人员不同,当前的自动程序修复有两种使用故障定位信息的策略:基于可疑度准确性的可疑度优先算法(SFA)和依赖于排名准确性的度数优先算法(RFA)。但是,尽管事实是两种不同的用法已被当前的自动程序修复广泛采用,并可能导致不同的修复结果,但对于这两种策略对自动程序修复的影响知之甚少。在本文中,我们根据经验比较了自动程序修复中SFA和RFA的性能。具体来说,我们将这两种策略和六种经过充分研究的故障定位技术实施到四种先进的自动化程序修复工具中,然后使用这些工具对Defects4J中的60个实际错误进行修复实验。我们的研究提出了许多有趣的发现:以有效补丁被发现之前生成的候选补丁数量(NCP)来衡量,RFA在70.02%的情况下胜过SFA;而SFA在并行修复和补丁多样性方面表现更好;通过提高故障定位技术的可疑性,可以改善SFA的性能。最后,我们使用SimFix来部署SFA,以成功修复四个额外的Defects4J错误,这些错误最初是使用RFA的SimFix无法修复的。这些观察为将来在自动程序修复中使用和改进故障定位提供了新的视角。

更新日期:2020-09-29
down
wechat
bug