基于历史特征频率对合理补丁进行排序
软件工程
2026-04-28 v2
摘要
自动程序修复(APR)技术近年来取得了显著进展,现在能够在几年前几乎不可能实现的情形下找到真正正确的修复方案。尽管如此,,即使APR技术能够找到正确的修复方案,它仍然可能将该修复方案排在其他合理(通过所有可用测试)但不正确的补丁之后。这会严重损害该技术的实际有效性,因为用户需要在找到正确方案之前检查更多的补丁。本文提出了PrevaRank技术,该技术根据补丁与历史上为类似错误编写的修复方案的特征相似性对由任何APR技术产生的合理补丁进行排序。PrevaRank实现了简单的启发式方法,使其具有可扩展性,可适用于任何产生合理补丁的APR工具。在实验评估中,我们在81个开源Java项目的修复历史中训练PrevaRank,然后将其用于对168个Defects4J错误中8个Java APR工具产生的补丁进行排序。结果表明,PrevaRank一致改进了正确修复的排序:例如,它将正确的修复排在前3位的案例比原始工具多了27%。其他实验结果表明,PrevaRank能够与各种APR工具和错误保持稳健工作,开销可忽略不计。
引用
@article{arxiv.2407.17240,
title = {Ranking Plausible Patches by Historic Feature Frequencies},
author = {Shifat Sahariar Bhuiyan and Abhishek Tiwari and Yu Pei and Carlo A. Furia},
journal= {arXiv preprint arXiv:2407.17240},
year = {2026}
}