通过字节码变异的实用程序修复
软件工程
2018-07-11 v1
摘要
软件调试本身繁琐、耗时甚至容易出错。因此,文献中提出了各种自动化调试技术以促进调试过程。自动程序修复(APR)是自动化调试中最近的进展之一,能以最少的人为干预直接为缺陷程序生成补丁。尽管已提出各种先进的 APR 技术(包括基于搜索或基于语义的技术),但简单的基于变异的 APR 技术——仅使用预定义变异算子(例如将 a>=b 改为 a>b)来变异程序以寻找补丁——尚未被透彻研究。在本文中,我们实现了首个实用的字节码级 APR 技术 PraPR,并首次基于字节码变异修复真实缺陷(如 Defects4J 缺陷)展开广泛研究。实验结果表明,令人惊讶的是,即便仅使用基本传统变异算子的 PraPR 也能为 18 个缺陷生成真实补丁。此外,借助我们扩充的变异算子,PraPR 能为 43 个缺陷生成真实补丁,显著优于最先进的 APR。它还快一个数量级,表明基于字节码变异的 APR 具有广阔前景。
引用
@article{arxiv.1807.03512,
title = {Practical Program Repair via Bytecode Mutation},
author = {Ali Ghanbari and Lingming Zhang},
journal= {arXiv preprint arXiv:1807.03512},
year = {2018}
}