TY - GEN
T1 - A hybrid evolutionary system for automatic software repair
AU - Yuan, Yuan
AU - Banzhaf, Wolfgang
N1 - Publisher Copyright:
© 2019 Association for Computing Machinery.
PY - 2019/7/13
Y1 - 2019/7/13
N2 - This paper presents an automatic software repair system that combines the characteristic components of several typical evolutionary computation based repair approaches into a unified repair framework so as to take advantage of their respective component strengths. We exploit both the redundancy assumption and repair templates to create a search space of candidate repairs. Then we employ a multi-objective evolutionary algorithm with a low-granularity patch representation to explore this search space, in order to find simple patches. In order to further reduce the search space and alleviate patch overfitting we introduce replacement similarity and insertion relevance to select more related statements as promising fix ingredients, and we adopt anti-patterns to customize the available operation types for each likely-buggy statement. We evaluate our system on 224 real bugs from the Defects4J dataset in comparison with the state-of-the-art repair approaches. The evaluation results show that the proposed system can fix 111 out of those 224 bugs in terms of passing all test cases, achieving substantial performance improvements over the state-of-the-art. Additionally, we demonstrate the ability of ARJA-e to fix multi-location bugs that are unlikely to be addressed by most of existing repair approaches.
AB - This paper presents an automatic software repair system that combines the characteristic components of several typical evolutionary computation based repair approaches into a unified repair framework so as to take advantage of their respective component strengths. We exploit both the redundancy assumption and repair templates to create a search space of candidate repairs. Then we employ a multi-objective evolutionary algorithm with a low-granularity patch representation to explore this search space, in order to find simple patches. In order to further reduce the search space and alleviate patch overfitting we introduce replacement similarity and insertion relevance to select more related statements as promising fix ingredients, and we adopt anti-patterns to customize the available operation types for each likely-buggy statement. We evaluate our system on 224 real bugs from the Defects4J dataset in comparison with the state-of-the-art repair approaches. The evaluation results show that the proposed system can fix 111 out of those 224 bugs in terms of passing all test cases, achieving substantial performance improvements over the state-of-the-art. Additionally, we demonstrate the ability of ARJA-e to fix multi-location bugs that are unlikely to be addressed by most of existing repair approaches.
KW - Evolutionary multi-objective optimization
KW - Genetic programming
KW - Program repair
UR - http://www.scopus.com/inward/record.url?scp=85072323257&partnerID=8YFLogxK
U2 - 10.1145/3321707.3321830
DO - 10.1145/3321707.3321830
M3 - 会议稿件
AN - SCOPUS:85072323257
T3 - GECCO 2019 - Proceedings of the 2019 Genetic and Evolutionary Computation Conference
SP - 1417
EP - 1425
BT - GECCO 2019 - Proceedings of the 2019 Genetic and Evolutionary Computation Conference
PB - Association for Computing Machinery, Inc
T2 - 2019 Genetic and Evolutionary Computation Conference, GECCO 2019
Y2 - 13 July 2019 through 17 July 2019
ER -