一句话:提出 TransplantFix,利用图差异从供体方法提取语义修复动作并移植,以修复复杂缺陷。
自动程序修复(APR)旨在辅助人工调试,经过十余年发展,已在真实缺陷数据集上提出并评估了大量技术。然而,尽管越来越多缺陷被正确修复,近年 APR 新修复缺陷的增长却出现瓶颈,复杂缺陷仍难解决。为此,本文提出 TransplantFix,一种利用供体方法进行图差异移植的新型 APR 技术。其新颖性包括三方面:使用基于图的差异算法从供体方法中提炼语义修复动作;设计继承层次感知的代码搜索方法,以识别功能相似的供体方法;提出命名空间转移方法,以有效适配供体代码。该工作探索了通过代码移植处理复杂缺陷的可能性。
Automated program repair (APR) holds the promise of aiding manual debugging activities. Over a decade of evolution, a broad range of APR techniques have been proposed and evaluated on a set of real-world bug datasets. However, while more and more bugs have been correctly fixed, we observe that the growth of newly fixed bugs by APR techniques has hit a bottleneck in recent years. In this work, we explore the possibility of addressing complicated bugs by proposing TransplantFix, a novel APR technique that leverages graph differencing-based transplantation from the donor method. The key novelty of TransplantFix lies in three aspects: 1) we propose to use a graph-based differencing algorithm to distill semantic fix actions from the donor method; 2) we devise an inheritance-hierarchy-aware code search approach to identify donor methods with similar functionality; 3) we present a namespace transfer approach to effectively adapt donor code.
@inproceedings{paperbot7295,
title = {TransplantFix: Graph Differencing-based Code Transplantation for Automated Program Repair},
author = {Deheng Yang and Xiaoguang Mao and Liqian Chen and Xuezheng Xu and Yan Lei and David Lo and Jiayu He},
booktitle = {ASE},
year = {2022},
doi = {10.1145/3551349.3556893}
}