Skip to main content
QUICK REVIEW

[论文解读] A Survey on Automated Program Repair Techniques

Kai Huang, Zhengzi Xu|arXiv (Cornell University)|Mar 31, 2023
Software Engineering Research被引用 19
一句话总结

本综述将自动程序修复(APR)技术分为四代——基于搜索、基于约束、基于模板以及基于学习的,并分析它们的发展、评估标准与未来方向,重点关注数据驱动和深度学习方法。

ABSTRACT

With the rapid development and large-scale popularity of program software, modern society increasingly relies on software systems. However, the problems exposed by software have also come to the fore. Software defect has become an important factor troubling developers. In this context, Automated Program Repair (APR) techniques have emerged, aiming to automatically fix software defect problems and reduce manual debugging work. In particular, benefiting from the advances in deep learning, numerous learning-based APR techniques have emerged in recent years, which also bring new opportunities for APR research. To give researchers a quick overview of APR techniques' complete development and future opportunities, we revisit the evolution of APR techniques and discuss in depth the latest advances in APR research. In this paper, the development of APR techniques is introduced in terms of four different patch generation schemes: search-based, constraint-based, template-based, and learning-based. Moreover, we propose a uniform set of criteria to review and compare each APR tool, summarize the advantages and disadvantages of APR techniques, and discuss the current state of APR development. Furthermore, we introduce the research on the related technical areas of APR that have also provided a strong motivation to advance APR development. Finally, we analyze current challenges and future directions, especially highlighting the critical opportunities that large language models bring to APR research.

研究动机与目标

  • 提供APR技术的系统分类并追踪其历史发展。
  • 提出一个统一的多维评估框架,用以在方法、修复能力、质量和效率四个维度对 APR 工具进行比较。
  • 突出最近的数据驱动和基于学习的 APR 进展及其对修复质量和可扩展性的影响。
  • 讨论实证评估、数据集质量以及大语言模型在 APR 研究中的作用等挑战。

提出的方法

  • 将 APR 技术分为四类:基于搜索、基于约束、基于模板和基于学习。
  • 提出一个统一的多维评估标准,涵盖设计方法、修复能力、修复质量和修复效率。
  • 按时间顺序回顾 APR 技术并总结各类别的优点与局限。
  • 强调实证评估中的问题,如数据集重叠和比较的公正性。
  • 讨论大型语言模型(LLMs)和数据驱动方法对 APR 研究的影响与潜力。
Figure 1. The workflow for conducting paper selection.
Figure 1. The workflow for conducting paper selection.

实验结果

研究问题

  • RQ1在四种补丁生成方案中,APR 技术如何应对软件缺陷而演变?
  • RQ2哪些评估标准最适合在设计、能力、质量和效率方面比较 APR 工具?
  • RQ3每个 APR 类别的关键优点与缺点,尤其是在数据驱动和基于学习的方法中?
  • RQ4未来 APR 研究的主要挑战与机会,包括工业部署和 LLM 集成?

主要发现

  • APR 技术被组织为四大代:基于搜索、基于约束、基于模板和基于学习,且基于学习的方法日益突出。
  • 一个覆盖四个维度、共12个指标的统一评估框架,以结构化方式比较 APR 工具。
  • 学习型 APR 方法使得能够从修复数据中获取经验知识,可能随着时间推移提高修复范围和质量。
  • 本综述指出实证研究中的挑战,如比较不公与数据集质量,并强调需要标准化基准。
  • 作者讨论了大语言模型和数据驱动方法在 APR 发展中的关键作用与未来方向。
Figure 2. APR general process.
Figure 2. APR general process.

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。