arrow
返回

Improving Search-Based Automatic Program Repair With Neural Machine Translation

delete2022-01-01
delete12
delete
OA
AI
D
Dongcheng Li
W
W. Eric Wong *
M
Mingyong Jian
Y
Yi Geng
M
Matthew Chau
DOI:10.1109/ACCESS.2022.3164780delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
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.
Keyword:
Maintenance engineering
Codes
Computer bugs
Java
Genetic programming
Termination of employment
Task analysis
Search-based software engineering
automatic program Repair
multi-objective optimization
genetic programming
neural machine translation

期刊

IEEE Access 封面图
IEEE Access
IF:
3.6
论文数:
9.8W
被引数:
29.4W

机构

U
University of Texas Dallas
学者数:
5.6K
论文数: 5.0K
被引数: 15
U
university of texas system
学者数:
18.5W
论文数: 15.6W
被引数: 210
引用论文

引用论文

SequenceR: Sequence-to-Sequence Learning for End-to-End Program RepairSequenceR: 用于端到端程序修复的序列到序列学习
err2021-01-01
err217
errOAAI
errChen, Zimin; Kommrusch, Steve; Tufano, Michele; Pouchet, Louis-Noel; Poshyvanyk, Denys; Monperrus, Martin
err分享
err收藏
GenProg: A Generic Method for Automatic Software Repair
err2012-01-01
err594
PREAI
errLe Goues, Claire; ThanhVu Nguyen; Forrest, Stephanie; Weimer, Westley
err分享
err收藏
The effects of demographic variables on knowledge sharing
err2015-04-13
err0
PREAI
errHenry Boateng; Michael Dzigbordi Dzandu; Franklin Gyamfi Agyemang
err分享
err收藏
err分享
err收藏
Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
err2017-01-01
err295
errOAAI
errXuan, Jifeng; Martinez, Matias; DeMarco, Favio; Clement, Maxime; Lamelas Marcote, Sebastian; Durieux, Thomas; Le Berre, Daniel; Monperrus, Martin
err分享
err收藏
err分享
err收藏
学者 查看更多内容