ENCORE:基于卷积神经机器翻译集成学习的自动程序修复
软件工程
2024-03-12 v2 机器学习
摘要
自动生成-验证(G&V)程序修复技术通常依赖于硬编码规则,仅能修复遵循特定模式的缺陷,且难以适配不同的编程语言。我们提出一种新的 G&V 技术 ENCORE,其利用卷积神经机器翻译(NMT)模型的集成学习来自动修复多种编程语言中的缺陷。我们利用超参数调优中的随机性来构建修复不同缺陷的多个模型,并通过集成学习将其组合。这种新的卷积 NMT 方法优于先前工作中使用的标准长短期记忆(LSTM)方法,因为它能更好地捕获词元之间的局部与长距离关联。我们在两个流行基准 Defects4J 和 QuixBugs 上的评估表明,ENCORE 修复了 42 个缺陷,其中包括 16 个现有方法未能修复的缺陷。此外,ENCORE 是首个被应用于四种流行编程语言(Java、C++、Python 和 JavaScript)的 G&V 修复技术,在五个基准上共修复了 67 个缺陷。
引用
@article{arxiv.1906.08691,
title = {ENCORE: Ensemble Learning using Convolution Neural Machine Translation for Automatic Program Repair},
author = {Thibaud Lutellier and Lawrence Pang and Viet Hung Pham and Moshi Wei and Lin Tan},
journal= {arXiv preprint arXiv:1906.08691},
year = {2024}
}