TY - GEN
T1 - Representations and operators for improving evolutionary software repair
AU - Le Goues, Claire
AU - Wemer, Westley
AU - Forrest, Stephanie
PY - 2012
Y1 - 2012
N2 - Evolutionary computation is a promising technique for automating time-consuming and expensive software maintenance tasks, including bug repair. The success of this approach, however, depends at least partially on the choice of representation, fitness function, and operators. Previous work on evolutionary software repair has employed different approaches, but they have not yet been evaluated in depth. This paper investigates representation and operator choices for source-level evolutionary program repair in the GenProg framework [17], focusing on: (1) representation of individual variants, (2) crossover design, (3) mutation operators, and (4) search space definition. We evaluate empirically on a dataset comprising 8 C programs totaling over 5.1 million lines of code and containing 105 reproducible, human-confirmed defects. Our results provide concrete suggestions for operator and representation design choices for evolutionary program repair. When augmented to incorporate these suggestions, GenProg repairs 5 additional bugs (60 vs. 55 out of 105), with a decrease in repair time of 17{43% for the more dificult repair searches.
AB - Evolutionary computation is a promising technique for automating time-consuming and expensive software maintenance tasks, including bug repair. The success of this approach, however, depends at least partially on the choice of representation, fitness function, and operators. Previous work on evolutionary software repair has employed different approaches, but they have not yet been evaluated in depth. This paper investigates representation and operator choices for source-level evolutionary program repair in the GenProg framework [17], focusing on: (1) representation of individual variants, (2) crossover design, (3) mutation operators, and (4) search space definition. We evaluate empirically on a dataset comprising 8 C programs totaling over 5.1 million lines of code and containing 105 reproducible, human-confirmed defects. Our results provide concrete suggestions for operator and representation design choices for evolutionary program repair. When augmented to incorporate these suggestions, GenProg repairs 5 additional bugs (60 vs. 55 out of 105), with a decrease in repair time of 17{43% for the more dificult repair searches.
KW - crossover
KW - genetic programming
KW - mutation
KW - representation
KW - search-based software engineering
KW - software repair
UR - http://www.scopus.com/inward/record.url?scp=84864724472&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84864724472&partnerID=8YFLogxK
U2 - 10.1145/2330163.2330296
DO - 10.1145/2330163.2330296
M3 - Conference contribution
AN - SCOPUS:84864724472
SN - 9781450311779
T3 - GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation
SP - 959
EP - 966
BT - GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation
T2 - 14th International Conference on Genetic and Evolutionary Computation, GECCO'12
Y2 - 7 July 2012 through 11 July 2012
ER -