论对自动程序修复基准进行全面评估的必要性:Sorald案例研究
软件工程
2025-08-22 v1
摘要
在支持高质量软件开发(尤其是在LLM时代尤为必要)的过程中,自动程序修复(APR)工具旨在通过自动处理静态分析检测到的违规行为来提高代码质量。以往的研究倾向于仅评估APR工具清除违规行为的能力,而忽略了它们可能引入新的(有时是严重的)违规行为、改变代码功能以及降低代码结构质量的风险。因此,有必要研究开发并评估APR工具的全面评估框架。本研究针对这一研究空白,并以Sorald(一款最先进的APR工具)作为概念验证进行评估。我们评估了Sorald在修复从Stack Overflow提取的2,393个Java代码片段中30条规则的3,529个SonarQube违规行为方面的有效性。结果表明,虽然Sorald修复了特定的规则违规行为,但它引入了2,120个新缺陷(32个错误,2,088个代码异味),降低了代码功能正确性——24%的单元测试失败率证明了这一点——并降低了代码结构质量,这展示了我们框架的实用性。研究结果强调,需要能够捕捉APR工具全部效应(包括副作用)的评估方法,以确保其安全有效的应用。
引用
@article{arxiv.2508.15135,
title = {On the need to perform comprehensive evaluations of automated program repair benchmarks: Sorald case study},
author = {Sumudu Liyanage and Sherlock A. Licorish and Markus Wagner and Stephen G. MacDonell},
journal= {arXiv preprint arXiv:2508.15135},
year = {2025}
}