一句话:提出TRANSFER,用深度语义特征与开源迁移知识提升故障定位和程序修复性能。
论文关注自动软件调试中的故障定位与自动程序修复。现有深度学习方法常忽略深层语义特征或仅使用简单代码表示,也未充分利用大规模开源项目中的 bug 相关知识;模板修复方法虽能融入项目信息,却难以有效选择修复模板。为此,作者提出TRANSFER:构建两个大规模开源 bug 数据集,设计11个基于BiLSTM的二分类器和一个多分类器,分别学习用于故障定位与程序修复的语句深层语义特征;随后将语义、谱和变异特征结合,用MLP模型进行故障定位,并利用语义特征对修复模板排序。在Defects4J上的实验表明,TRANSFER在故障定位上优于所有基线,在自动程序修复上优于现有深度学习方法,相比典型模板方法TBar能多正确修复6个 bug(共47个)。
Automatic software debugging mainly includes two tasks of fault localization and automated program repair. Compared with the traditional spectrum-based and mutation-based methods, deep learning-based methods are proposed to achieve better performance for fault localization. However, the existing methods ignore the deep semantic features or only consider simple code representations. They do not leverage the existing bug-related knowledge from large-scale open-source projects either. In addition, existing template-based program repair techniques can incorporate project specific information better than deep-learning approaches. However, they are weak in selecting the fix templates for efficient program repair. In this work, we propose a novel approach called TRANSFER, which leverages the deep semantic features and transferred knowledge from open-source data to improve fault localization and program repair. First, we build two large-scale open-source bug datasets and design 11 BiLSTM-based binary classifiers and a BiLSTM-based multi-classifier to learn deep semantic features of statements for fault localization and program repair, respectively. Second, we combine semantic-based, spectrum-based and mutation-based features and use an MLP-based model for fault localization. Third, the semantic-based features are leveraged to rank the fix templates for program repair. Our extensive experiments on widely-used benchmark De-fects4J show that TRANSFER outperforms all baselines in fault localization, and is better than existing deep-learning methods in automated program repair. Compared with the typical template-based work TBar, TRANSFER can correctly repair 6 more bugs (47 in total) on Defects4J.
@inproceedings{MengW00022,
title = {Improving fault localization and program repair with deep semantic features and transferred knowledge},
author = {Xiangxin Meng and Xu Wang and Hongyu Zhang and Hailong Sun and Xudong Liu},
booktitle = {ICSE},
year = {2022},
doi = {10.1145/3510003.3510147}
}