Can automated program repair refine fault localization? a unified debugging approach

Can automated program repair refine fault localization? a unified debugging approach
复制标题

DOI:
10.1145/3395363.3397351
复制
发表时间:
2020-07
期刊:
Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis
影响因子:
--
通讯作者:
Yiling Lou;Ali Ghanbari;Xia Li;Lingming Zhang;Haotian Zhang;Dan Hao;Lu Zhang
Yiling Lou;Ali Ghanbari;Xia Li;Lingming Zhang;Haotian Zhang;Dan Hao;Lu Zhang
中科院分区:
其他
文献类型:
--
作者:
Yiling Lou;Ali Ghanbari;Xia Li;Lingming Zhang;Haotian Zhang;Dan Hao;Lu Zhang

文献摘要

被引文献

相似文献

大量的研究工作一直致力于自动化软件调试,包括自动故障定位和程序修复。然而,现有的故障定位技术在现实世界的软件系统中的有效性有限,即使是最先进的程序修复技术也只能修复一小部分真实世界的错误。虽然故障定位和程序修复是内在联系的,但它们在文献中唯一存在的联系是程序修复技术通常使用现成的故障定位技术(例如,Ochiai)来确定用于修补的潜在候选语句/元素。在这项工作中,我们提出了统一的调试方法,以统一这两个领域的另一个方向,即第一次,程序修复是否反过来有助于故障定位?这样,我们不仅为更强大的故障定位开辟了一个新的维度,而且将程序修复的应用范围扩展到了所有可能的错误(而不仅仅是可以直接自动修复的错误)。我们设计了ProFL利用补丁执行结果(程序修复)作为故障定位的反馈信息。在广泛使用的Defects 4J基准测试上的实验结果表明,基本ProFL已经可以在Top-1中定位至少37.61%的错误,而不是最先进的基于频谱和突变的故障定位。此外,ProFL可以通过无监督和监督学习来提高最先进的故障定位。同时,我们通过支付宝(一个拥有超过10亿全球用户的流行在线支付系统)的案例研究,展示了ProFL在不同环境下的有效性。
A large body of research efforts have been dedicated to automated software debugging, including both automated fault localization and program repair. However, existing fault localization techniques have limited effectiveness on real-world software systems while even the most advanced program repair techniques can only fix a small ratio of real-world bugs. Although fault localization and program repair are inherently connected, their only existing connection in the literature is that program repair techniques usually use off-the-shelf fault localization techniques (e.g., Ochiai) to determine the potential candidate statements/elements for patching. In this work, we propose the unified debugging approach to unify the two areas in the other direction for the first time, i.e., can program repair in turn help with fault localization? In this way, we not only open a new dimension for more powerful fault localization, but also extend the application scope of program repair to all possible bugs (not only the bugs that can be directly automatically fixed). We have designed ProFL to leverage patch-execution results (from program repair) as the feedback information for fault localization. The experimental results on the widely used Defects4J benchmark show that the basic ProFL can already at least localize 37.61% more bugs within Top-1 than state-of-the-art spectrum and mutation based fault localization. Furthermore, ProFL can boost state-of-the-art fault localization via both unsupervised and supervised learning. Meanwhile, we have demonstrated ProFL's effectiveness under different settings and through a case study within Alipay, a popular online payment system with over 1 billion global users.