Improving Search-based Automatic Program Repair with Neural Machine Translation

Improving Search-based Automatic Program Repair with Neural Machine Translation
复制标题

DOI:
10.1109/access.2022.3164780
复制
发表时间:
2022
期刊:
影响因子:
3.9
通讯作者:
Dongcheng Li;W. E. Wong;Mingyong Jian;Yi Geng;Matthew Chau
Dongcheng Li;W. E. Wong;Mingyong Jian;Yi Geng;Matthew Chau
中科院分区:
计算机科学3区
文献类型:
--
作者:
Dongcheng Li;W. E. Wong;Mingyong Jian;Yi Geng;Matthew Chau

文献摘要

相似文献

自动修复计划中的错误以减少调试费用和提高程序质量的挑战被称为自动化计划维修,以克服此问题,基于测试套件的维修技术使用指定的测试套件作为甲骨文通过完整的测试套件。不足以提高程序的可靠性,因此使用了基于模板的修复技术。缺乏正确的解决方案,该技术无视计划的专业知识,例如与基于模板的程序维修方法相比,现有的基于神经释放的方法并不受这些限制的限制生成新的解决方案。为了在此工作中介绍一个固定算法的潜在修复语句,以找到一个名为Arjanmt的新型框架,以自动修复Java程序,从而在这项工作中找到了一个新的框架。研究我们提出的框架的修复性和正确性的基准。基于翻译的)产生更好的结果或修复了以前无法单独修复的错误。
The challenge of automatically repairing bugs in programs to reduce debugging expenses and increase program quality is known as automated program repair. To overcome this issue, test-suite-based repair techniques use a specified test suite as an oracle and alter the input faulty program to pass the full test suite. GenProg is a well-known example of this kind of repair, in which genetic programming is used to reorder the statements already present in the faulty program. However, recent practical experiments suggest that GenProg’s performance, notably for Java, is not sufficient. Improved program dependability necessitates the use of automatic program repair techniques. Template-based program repair techniques have recently been combined with search-based techniques to solve program issues automatically. Although intriguing, it has two fundamental drawbacks: Its search space often lacks the correct solution, and the technique disregards program expertise, such as precise code language. Compared with the template-based program repair approach, existing neural-machine-translation-based approaches are not limited by these constraints due to their ability to learn and generate new solutions. We propose an approach that combines a search-based automatic program repair technique with a neural-machine-translation-based approach. More specifically, we use both redundancy assumption and sequence-to-sequence learning of correct patches as the source for potential fix statements that feed into a multiobjective evolutionary search algorithm to find test-suite-adequate patches. In this work, a novel framework called ARJANMT is introduced for automatically repairing Java programs. Two sets of controlled experiments are conducted on 410 bugs from two benchmarks to investigate the repairability and correctness of our proposed framework. A comparison between state-of-the-art automatic program repair frameworks is made. The experimental results indicate that combining those two types of repair techniques (search-based and neural-machine-translation-based) produces better results or fixes bugs that they previously were unable to fix individually.