一句话:提出P-EPR,首个非学习型APR集成框架,用修复模式排序工具并动态更新,显著提升修复效果与灵活性。
针对已有40多个自动化程序修复(APR)工具因修复策略不同而性能互补、但直接集成所有工具会造成执行与补丁验证成本过高的问题,本文提出基于偏好的集成式程序修复框架P-EPR。P-EPR不采用学习型方法,而是首次利用修复模式作为排序APR工具的主要知识来源,为不同缺陷选择更合适的工具;同时采用动态更新策略,使框架能够即时利用新产生的修复结果并调整排序。实验结果表明,P-EPR在灵活性和有效性上均显著优于已有集成策略。
To date, over 40 Automated Program Repair (APR) tools have been designed with varying bug-fixing strategies, which have been demonstrated to have complementary performance in terms of being effective for different bug classes. Intuitively, it should be feasible to improve the overall bug-fixing performance of APR via assembling existing tools. Unfortunately, simply invoking all available APR tools for a given bug can result in unacceptable costs on APR execution as well as on patch validation (via expensive testing). Therefore, while assembling existing tools is appealing, it requires an efficient strategy to reconcile the need to fix more bugs and the requirements for practicality. In light of this problem, we propose a Preference-based Ensemble Program Repair framework (P-EPR), which seeks to effectively rank APR tools for repairing different bugs. P-EPR is the first non-learning-based APR ensemble method that is novel in its exploitation of repair patterns as a major source of knowledge for ranking APR tools and its reliance on a dynamic update strategy that enables it to immediately exploit and benefit from newly derived repair results. Experimental results show that P-EPR outperforms existing strategies significantly both in flexibility and effectiveness.
@inproceedings{paperbot11423,
title = {Practical Program Repair via Preference-based Ensemble Strategy},
author = {Wenkang Zhong and Chuanyi Li and Kui Liu and Tongtong Xu and Jidong Ge and Tegawende F. Bissyande and Bin Luo and Vincent Ng},
booktitle = {ICSE},
year = {2024},
doi = {10.1145/3597503.3623310}
}