paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Automated Program Repair, What Is It Good For? Not Absolutely Nothing!

自动程序修复有什么用?并非一无是处!
ICSE Proceedings of the IEEE/ACM 46th International Conference on Software Engineering2024匹配度 2/10 · 该论文是关于APR补丁建议对开发者调试行为影响的用户实验,属于软件工程/HCI方向的实证研究,未涉及用户研究画像中的静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析等核心方向。虽然与程序修复和调试工具有关,但并非AI与PL交叉的方法论或系统性研究,因此匹配度较低。引用 17 inbox
Hadeel Eladawy, Claire Le Goues, Yuriy Brun
crossref: 2026-09-12

AI 速览

一句话:通过40名开发者的用户实验,揭示APR补丁建议对调试成功率的影响:正确建议大幅提升,欺骗性建议降低。

自动程序修复(APR)已进入工业部署,开发者将补丁建议用于人驱动调试,但其影响尚不清楚。本文对40名中位经验6年的开发者开展受控用户研究,在9个真实Java缺陷上使用三种APR工具调试。开发者要么仅能访问测试,要么还能看到使所有测试通过的代码建议;建议来自开发者或APR,可能正确或具有欺骗性。160次会话显示:代码建议显著提高提交补丁几率;相比仅有测试,正确APR建议将调试成功几率提高约14,000%,欺骗性建议降低65%,正确建议还加快调试。新手与经验开发者无显著差异,开发者对APR印象积极。

问题
工业部署中开发者已使用APR生成的补丁建议辅助调试,但缺少证据说明这些建议,尤其是正确或欺骗性建议,如何影响调试行为和结果。
方法
对40名开发者开展受控用户研究,在9个真实Java缺陷上使用Recoder、SimFix、TBar,对比仅有测试与同时提供开发者或APR生成、正确或欺骗性建议的条件,共160次调试会话。
评估
以提交补丁几率、调试成功率和调试速度为主要指标,并比较新手与经验开发者,发现正确APR建议大幅提升成功率与速度,欺骗性建议降低成功率。
原文摘要(Abstract)

Industrial deployments of automated program repair (APR), e.g., at Facebook and Bloomberg, signal a new milestone for this exciting and potentially impactful technology. In these deployments, developers use APR-generated patch suggestions as part of a human-driven debugging process. Unfortunately, little is known about how using patch suggestions affects developers during debugging. This paper conducts a controlled user study with 40 developers with a median of 6 years of experience. The developers engage in debugging tasks on nine naturally-occurring defects in real-world, open-source, Java projects, using Recoder, SimFix, and TBar, three state-of-the-art APR tools. For each debugging task, the developers either have access to the project's tests, or, also, to code suggestions that make all the tests pass. These suggestions are either developer-written or APR-generated, which can be correct or deceptive. Deceptive suggestions, which are a common APR occurrence, make all the available tests pass but fail to generalize to the intended specification. Through a total of 160 debugging sessions, we find that access to a code suggestion significantly increases the odds of submitting a patch. Access to correct APR suggestions increase the odds of debugging success by 14,000% as compared to having access only to tests, but access to deceptive suggestions decrease the odds of success by 65%. Correct suggestions also speed up debugging. Surprisingly, we observe no significant difference in how novice and experienced developers are affected by APR, suggesting that APR may find uses across the experience spectrum. Overall, developers come away with a strong positive impression of APR, suggesting promise for APR-mediated, human-driven debugging, despite existing challenges in APR-generated repair quality.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot11274,
  title = {Automated Program Repair, What Is It Good For? Not Absolutely Nothing!},
  author = {Hadeel Eladawy and Claire Le Goues and Yuriy Brun},
  booktitle = {ICSE},
  year = {2024},
  doi = {10.1145/3597503.3639095}
}