On the Effectiveness of Unified Debugging: An Extensive Study on 16 Program Repair Systems

On the Effectiveness of Unified Debugging: An Extensive Study on 16 Program Repair Systems
复制标题

DOI:
10.1145/3324884.3416566
复制
发表时间:
2020-09
期刊:
2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)
影响因子:
--
通讯作者:
Samuel Benton;Xia Li;Yiling Lou;Lingming Zhang
Samuel Benton;Xia Li;Yiling Lou;Lingming Zhang
中科院分区:
其他
文献类型:
--
作者:
Samuel Benton;Xia Li;Yiling Lou;Lingming Zhang

文献摘要

相似文献

自动调试技术,包括故障定位和程序修复,已经研究了十多年。然而,故障定位和程序修复之间唯一存在的联系是,故障定位计算潜在的错误元素,以便程序修复进行修补。最近,一项开创性的工作ProFL首次探索了统一调试的思想,将故障定位和程序修复统一在另一个方向上,以促进这两个领域的发展。更具体地说,ProFL利用最先进的修复系统PraPR的补丁执行结果来帮助改进最先进的故障定位。这样,ProFL不仅改进了手动修复的故障定位,而且将自动修复的应用范围扩展到所有可能的错误(不仅是可以自动修复的小比例错误)。然而,ProFL只考虑了一个APR系统(即PraPR),目前还不清楚其他现有的基于不同设计的APR系统如何有助于统一调试。在这项工作中,我们首次对16个最先进的程序修复系统进行了统一调试方法的广泛研究。我们在广泛研究的Defects4J基准测试套件上的实验结果揭示了统一调试的各种实用指南,例如:(1)几乎所有研究的16个修复系统尽管修复能力不同,但对统一调试都有积极的贡献;(2)针对多个编辑补丁的修复系统会给统一调试带来额外的噪声;(3)具有更多执行/可信补丁的修复系统倾向于更好地执行统一调试;(4)在自动修复中,统一调试的有效性不依赖于正确补丁的可用性。在此基础上,我们进一步提出了一种先进的统一调试技术UniDebug++,与目前最先进的统一调试技术ProFL相比,UniDebug++可以在Top-1位置定位超过20%的错误。
Automated debugging techniques, including fault localization and program repair, have been studied for over a decade. However, the only existing connection between fault localization and program repair is that fault localization computes the potential buggy elements for program repair to patch. Recently, a pioneering work, ProFL, explored the idea of unified debugging to unify fault localization and program repair in the other direction for thefi rst time to boost both areas. More specifically, ProFL utilizes the patch execution results from one state-of-the-art repair system, PraPR, to help improve state-of-the-art fault localization. In this way, ProFL not only improves fault localization for manual repair, but also extends the application scope of automated repair to all possible bugs (not only the small ratio of bugs that can be automaticallyfi xed). However, ProFL only considers one APR system (i.e., PraPR), and it is not clear how other existing APR systems based on different designs contribute to unified debugging. In this work, we perform an extensive study of the unified-debugging approach on 16 state-of-the-art program repair systems for thefi rst time. Our experimental results on the widely studied Defects4J benchmark suite reveal various practical guidelines for unified debugging, such as (1) nearly all the studied 16 repair systems can positively contribute to unified debugging despite their varying repairing capabilities, (2) repair systems targeting multi-edit patches can bring extraneous noise into unified debugging, (3) repair systems with more executed/plausible patches tend to perform better for unified debugging, and (4) unified debugging effectiveness does not rely on the availability of correct patches in automated repair. Based on our results, we further propose an advanced unified debugging technique, UniDebug++, which can localize over 20% more bugs within Top-1 positions than state-of-the-art unified debugging technique, ProFL.