GLAD:用于修复遗漏错误的神经谓词合成
软件工程
2022-04-15 v1
摘要
现有的基于模板与学习的自动程序修复(APR)工具已成功为许多基准错误找到补丁。然而,我们对现有结果的分析表明,遗漏错误对这些技术构成显著挑战。对于基于模板的方法,遗漏错误未提供可应用模板的位置;对于将修复建模为神经机器翻译(NMT)的基于学习的方法,遗漏错误同样未提供待翻译的错误代码。为解决这些问题,我们提出 GLAD,一种专门面向 if 子句合成的新型基于学习的修复技术。GLAD 不需要错误行,因其基于生成式语言模型(LMs)而非机器翻译;因此,它能修复遗漏错误。GLAD 利用基于类型的文法智能约束语言模型。此外,它通过使用调试器对候选补丁进行动态排序,高效降低验证成本。得益于从翻译到合成的转变,GLAD 与现有技术高度正交:GLAD 能正确修复此前基于 NMT 的技术无法修复的 16 个 Defects4J v1.2 错误,同时保持合理运行成本,凸显其作为 APR 工具的实用性及在实践中补充现有工具的潜力。对 GLAD 修复错误的检视揭示,GLAD 能快速生成对其他技术颇具挑战的表达式。
引用
@article{arxiv.2204.06771,
title = {GLAD: Neural Predicate Synthesis to Repair Omission Faults},
author = {Sungmin Kang and Shin Yoo},
journal= {arXiv preprint arXiv:2204.06771},
year = {2022}
}
备注
10 pages, 9 tables, 2 figures