一句话:通过对16个程序修复系统的大规模实证研究,揭示统一调试的有效性规律,并提出UniDebug++,Top-1定位缺陷数比ProFL提升20%以上。
自动化调试长期将故障定位与程序修复割裂:定位为修复提供可疑元素,而ProFL首次反向利用修复的补丁执行结果改进定位(统一调试),但仅基于单一修复系统PraPR。本文首次在Defects4J基准上对16个先进程序修复系统开展统一调试的实证研究,分析不同修复设计对定位效果的影响。结果表明:几乎所有修复系统都能正向贡献统一调试;面向多编辑补丁的系统会引入额外噪声;执行/可行补丁更多的系统效果更好;统一调试不依赖修复系统产生正确补丁。基于这些发现,作者提出UniDebug++,其Top-1定位的缺陷数比ProFL多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 the first 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 the first 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.
DOI 原文 ·
@inproceedings{paperbot5949,
title = {On the effectiveness of unified debugging},
author = {Samuel Benton and Xia Li and Yiling Lou and Lingming Zhang},
booktitle = {ASE},
year = {2020},
doi = {10.1145/3324884.3416566}
}