一句话:提出 iFix,通过交互式比较补丁的运行时差异,帮助开发者理解补丁正确性并提升修复效率。
自动程序修复(APR)虽能生成补丁,但开发者仍需人工检查补丁正确性,尤其要甄别通过测试却未真正修复缺陷的看似合理补丁。为此,作者提出交互式方法 iFix:通过静态分析识别与缺陷语句相关的运行时变量,在执行中捕获每个补丁的运行时值,并将这些值跨补丁候选对齐,使用户能比较其运行时行为差异。作者用 28 名受试者开展被试内用户研究:相比人工检查与最先进的交互式补丁过滤技术,iFix 将任务完成时间分别减少 36% 和 33%,信心分别提高 50% 和 20%;定量实验还表明,其使正确补丁排名至少提升 39%,并可推广至不同 APR 工具。
Automated Program Repair (APR) holds the promise of alleviating the burden of debugging and fixing software bugs. Despite this, developers still need to manually inspect each patch to confirm its correctness, which is tedious and time-consuming. This challenge is exacerbated in the presence of plausible patches, which accidentally pass test cases but may not correctly fix the bug. To address this challenge, we propose an interactive approach called iFix to facilitate patch understanding and comparison based on their runtime difference. iFix performs static analysis to identify runtime variables related to the buggy statement and captures their runtime values during execution for each patch. These values are then aligned across different patch candidates, allowing users to compare and contrast their runtime behavior. To evaluate iFix , we conducted a within-subjects user study with 28 participants. Compared with manual inspection and a state-of-the-art interactive patch filtering technique, iFix reduced participants’ task completion time by 36% and 33% while also improving their confidence by 50% and 20%, respectively. Besides, quantitative experiments demonstrate that iFix improves the ranking of correct patches by at least 39% compared with other patch ranking methods and is generalizable to different APR tools.
@article{paperbot3209,
title = {Show Me Why It’s Correct: Saving 1/3 of Debugging Time in Program Repair with Interactive Runtime Comparison},
author = {Ruixin Wang and Zhongkai Zhao and Le Fang and Nan Jiang and Yiling Lou and Lin Tan and Tianyi Zhang},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA1},
year = {2025},
doi = {10.1145/3720510}
}