论文标题
程序维修
Program Repair
论文作者
论文摘要
自动化程序维修是一项新兴技术,由一套技术组成,可以自动修复程序中的错误或漏洞。在本文中,我们对计划维修的最新技术进行了全面调查。我们首先研究了使用的不同技术套件,包括基于搜索的维修,基于约束的维修和基于学习的维修。然后,我们通过提取一类可以减轻过度拟合的技术来讨论程序维修的主要挑战,即贴合过度拟合。然后,我们讨论程序维修工具的类别,程序维修的应用以及行业中计划维修的使用。我们以对计划维修的未来使用以及由大语言模型的代码工作产生的研究机会的前瞻性前景结束了调查。
Automated program repair is an emerging technology which consists of a suite of techniques to automatically fix bugs or vulnerabilities in programs. In this paper, we present a comprehensive survey of the state of the art in program repair. We first study the different suite of techniques used including search based repair, constraint based repair and learning based repair. We then discuss one of the main challenges in program repair namely patch overfitting, by distilling a class of techniques which can alleviate patch overfitting. We then discuss classes of program repair tools, applications of program repair as well as uses of program repair in industry. We conclude the survey with a forward looking outlook on future usages of program repair, as well as research opportunities arising from work on code from large language models.