paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Enhancing Automated Program Repair with Solution Design

利用解决方案设计增强自动程序修复
ASE Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering2024匹配度 2/10 · 该论文聚焦自动程序修复(APR),利用issue logs中的设计理由增强修复,属于软件工程中的缺陷修复方向,与用户关注的静态分析、形式化验证、浮点/贝叶斯程序分析以及与LLM/Agent的交叉研究不匹配。引用 4 inbox
Jiuang Zhao, Donghao Yang, Li Zhang, Xiaoli Lian, Zitian Yang, Fang Liu
crossref: 2026-09-12

AI 速览

一句话:提出利用 issue logs 中的设计理由与解决方案设计来增强自动程序修复,覆盖缺陷修复、新功能开发与功能增强。

自动程序修复(APR)旨在自主修复项目中的问题,任务通常包括缺陷修复、新功能开发和功能增强。尽管已有大量方法,但它们在真实问题上的效果仍不理想。论文指出,工程师在开始编写补丁前往往已有关于解决方案的设计理由(design rationales, DR),包括计划采用的解决方案及其背后原因;在开源项目中,这些 DR 常通过 Jira 等项目管理工具记录在 issue logs 中。基于此,论文提出一个核心问题:如何利用分散在 issue logs 中的 DR 来高效增强 APR,并以“解决方案设计”为切入点探索将 DR 纳入修复流程。摘要未报告具体方法细节、实验设置或量化结果,主要贡献是提出该问题与研究方向。

问题
APR 在真实项目问题(缺陷修复、新功能开发、功能增强)上的修复效果仍不理想,且工程师编写补丁前已有的解决方案设计理由未被有效利用。
方法
论文提出以解决方案设计为指导,从 Jira 等 issue logs 中获取 design rationales(计划方案及理由),用于增强 APR。
评估
摘要未给出具体评估设置与结果;仅从真实开源项目 issue logs 中 DR 的存在性出发提出研究问题与思路。
原文摘要(Abstract)

Automatic Program Repair (APR) endeavors to autonomously rectify issues within specific projects, which generally encompasses three categories of tasks: bug resolution, new feature development, and feature enhancement. Despite extensive research proposing various methodologies, their efficacy in addressing real issues remains unsatisfactory. It's worth noting that, typically, engineers have design rationales (DR) on solution--- planed solutions and a set of underlying reasons---before they start patching code. In open-source projects, these DRs are frequently captured in issue logs through project management tools like Jira. This raises a compelling question: How can we leverage DR scattered across the issue logs to efficiently enhance APR?

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot8286,
  title = {Enhancing Automated Program Repair with Solution Design},
  author = {Jiuang Zhao and Donghao Yang and Li Zhang and Xiaoli Lian and Zitian Yang and Fang Liu},
  booktitle = {ASE},
  year = {2024},
  doi = {10.1145/3691620.3695537}
}