Automated Program Repair (APR) attempts to patch software bugs and reduce manual debugging efforts. Very recently, with the advances in Large Language Models (LLMs), an increasing number of APR techniques have been proposed, facilitating software development and maintenance and demonstrating remarkable performance. However, due to ongoing explorations in the LLM-based APR field, it is challenging for researchers to understand the current achievements, challenges, and potential opportunities. This work provides the first systematic literature review to summarize the applications of LLMs in APR between 2020 and 2024. We analyze 127 relevant papers from LLMs, APR and their integration perspectives. First, we categorize existing popular LLMs that are applied to support APR and outline three types of utilization strategies for their deployment. Besides, we detail some specific repair scenarios that benefit from LLMs, e.g., semantic bugs and security vulnerabilities. Furthermore, we discuss several critical aspects of integrating LLMs into APR research, e.g., input forms and open science. Finally, we highlight a set of challenges remaining to be investigated and the potential guidelines for future research. Overall, our paper provides a systematic overview of the research landscape to the APR community, helping researchers gain a comprehensive understanding of achievements and promote future research.
翻译:自动程序修复(APR)旨在修补软件缺陷并减少手动调试工作量。近期,随着大型语言模型(LLMs)的进步,越来越多的基于LLM的APR技术被提出,这些技术推动了软件开发和维护,并展现出卓越的性能。然而,由于基于LLM的APR领域仍在探索中,研究人员难以全面了解当前的成就、挑战与潜在机遇。本文首次通过系统文献综述,总结了2020年至2024年间LLMs在APR中的应用。我们分析了127篇相关论文,从LLMs、APR及其融合视角展开探讨。首先,我们归类了当前用于支持APR的热门LLMs,并概述了三种部署策略。此外,详细介绍了受益于LLMs的特定修复场景(例如语义缺陷与安全漏洞)。同时,讨论了将LLMs整合到APR研究中的关键方面(如输入形式与开放科学)。最后,我们强调了尚待研究的一系列挑战及未来研究的潜在方向。总体而言,本文为APR社区提供了研究领域的系统性概览,帮助研究人员全面理解现有成就并推动未来研究。