arrow
返回

ARJA: Automated Repair of Java Programs via Multi-Objective Genetic Programming

delete2020-10-01
delete145
delete
OA
AI
Y
Yuan Yuan *
W
Wolfgang Banzhaf
DOI:10.1109/TSE.2018.2874648delete
delete原文链接
delete分享
delete收藏
查看原文
摘要

摘要

En 中文
Automated program repair is the problem of automatically fixing bugs in programs in order to significantly reduce the debugging costs and improve the software quality. To address this problem, test-suite based repair techniques regard a given test suite as an oracle and modify the input buggy program to make the entire test suite pass. GenProg is well recognized as a prominent repair approach of this kind, which uses genetic programming (GP) to rearrange the statements already extant in the buggy program. However, recent empirical studies show that the performance of GenProg is not fully satisfactory, particularly for Java. In this paper, we propose ARJA, a new GP based repair approach for automated repair of Java programs. To be specific, we present a novel lower-granularity patch representation that properly decouples the search subspaces of likely-buggy locations, operation types and potential fix ingredients, enabling GP to explore the search space more effectively. Based on this new representation, we formulate automated program repair as a multi-objective search problem and use NSGA-II to look for simpler repairs. To reduce the computational effort and search space, we introduce a test filtering procedure that can speed up the fitness evaluation of GP and three types of rules that can be applied to avoid unnecessary manipulations of the code. Moreover, we also propose a type matching strategy that can create new potential fix ingredients by exploiting the syntactic patterns of existing statements. We conduct a large-scale empirical evaluation of ARJA along with its variants on both seeded bugs and real-world bugs in comparison with several state-of-the-art repair approaches. Our results verify the effectiveness and efficiency of the search mechanisms employed in ARJA and also show its superiority over the other approaches. In particular, compared to jGenProg (an implementation of GenProg for Java), an ARJA version fully following the redundancy assumption can generate a test-suite adequate patch for more than twice the number of bugs (from 27 to 59), and a correct patch for nearly four times of the number (from 5 to 18), on 224 real-world bugs considered in Defects4J. Furthermore, ARJA is able to correctly fix several real multi-location bugs that are hard to be repaired by most of the existing repair approaches.
Keyword:
Maintenance engineering
Computer bugs
Java
Genetic programming
Search problems
Sociology
Statistics
Program repair
patch generation
genetic programming
multi-objective optimization
genetic improvement
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

IEEE Transactions on Software Engineering 封面图
IEEE Transactions on Software Engineering
IF:
5.6
论文数:
2.9K
被引数:
1.1W

机构

M
michigan state university
学者数:
3.6W
论文数: 3.2W
被引数: 44
引用论文

引用论文

Judges', Lay Judges', and Police Officers' Beliefs About Factors Affecting Children's Testimony About Sexual Abuse
err2010-08-07
err0
PREAI
errLina Leander; Sven Å. Christianson; Carl Göran Svedin; Pår Anders Granhag
err分享
err收藏
Balanocarpol, a new polyphenol from Balanocarpus zeylanicus(trimen) and Hopea jucunda(Thw.)(Dipterocarpaceae)
err1985-01-01
err0
PREAI
errM. N. Champika Diyasena; Subramaniam Sotheeswaran; Sivagnanasunderam Surendrakumar; Sinnathamby Balasubramanian; Michael Bokel; Wolfgang Kraus
err分享
err收藏
miR393 and miR164 influence indeterminate but not determinate nodule development
err2014-10-31
err0
errOAAI
errGuohang Mao; Marie Turner; Oliver Yu; Senthil Subramanian
err分享
err收藏
Structure and function of negative-strand RNA virus polymerase complexes
err2021-01-01
err0
PREAI
errJesse D. Pyle; Sean P.J. Whelan; Louis-Marie Bloyet
err分享
err收藏
Multiobjective evolutionary algorithms: A survey of the state of the art
err2011-03-01
err1.8K
PREAI
errZhou, Aimin; Qu, Bo-Yang; Li, Hui; Zhao, Shi-Zheng; Suganthan, Ponnuthurai Nagaratnam; Zhang, Qingfu
err分享
err收藏
Tool Support for Change-Centric Test Development
err2010-05-01
err8
PREAI
errWloka, Jan; Host, Einar W.; Ryder, Barbara G.
err分享
err收藏
学者 查看更多内容