一句话:首次反向统一程序修复与故障定位,利用补丁执行结果作为反馈来精化故障定位。
现有故障定位在真实系统上效果有限,而最先进的程序修复也只能修复少量真实缺陷;已有工作仅让修复使用现成故障定位来选候选补丁。本文反向统一二者,提出统一调试与 ProFL:将程序修复的补丁执行结果作为反馈来精化故障定位,既开辟更强故障定位维度,也把修复应用扩展到所有缺陷。在 Defects4J 上,基础 ProFL 在 Top-1 内定位的缺陷数比最先进的谱系和变异故障定位至少多 37.61%;还能通过无监督/有监督学习提升最先进故障定位,并在不同设置和 Alipay 案例中验证有效性。
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.
DOI 原文 ·
@inproceedings{paperbot6052,
title = {Can automated program repair refine fault localization? a unified debugging approach},
author = {Yiling Lou and Ali Ghanbari and Xia Li and Lingming Zhang and Haotian Zhang and Dan Hao and Lu Zhang},
booktitle = {ISSTA},
year = {2020},
doi = {10.1145/3395363.3397351}
}