Representations and operators for improving evolutionary software repair

Claire Le Goues, Westley Wemer, Stephanie Forrest

Research output: Chapter in Book/Report/Conference proceedingConference contribution

33 Citations (Scopus)

Abstract

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.

Original languageEnglish (US)
Title of host publicationGECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation
Pages959-966
Number of pages8
DOIs
StatePublished - Aug 13 2012
Externally publishedYes
Event14th International Conference on Genetic and Evolutionary Computation, GECCO'12 - Philadelphia, PA, United States
Duration: Jul 7 2012Jul 11 2012

Other

Other14th International Conference on Genetic and Evolutionary Computation, GECCO'12
CountryUnited States
CityPhiladelphia, PA
Period7/7/127/11/12

Fingerprint

Repair
Mathematical operators
Software
Operator
Software Maintenance
Crossover Design
Computer software maintenance
Evolutionary Computation
Fitness Function
Evolutionary algorithms
Search Space
Mutation
Defects
Decrease
Evaluate
Line

Keywords

  • crossover
  • genetic programming
  • mutation
  • representation
  • search-based software engineering
  • software repair

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Applied Mathematics

Cite this

Le Goues, C., Wemer, W., & Forrest, S. (2012). Representations and operators for improving evolutionary software repair. In GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation (pp. 959-966) https://doi.org/10.1145/2330163.2330296

Representations and operators for improving evolutionary software repair. / Le Goues, Claire; Wemer, Westley; Forrest, Stephanie.

GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation. 2012. p. 959-966.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Le Goues, C, Wemer, W & Forrest, S 2012, Representations and operators for improving evolutionary software repair. in GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation. pp. 959-966, 14th International Conference on Genetic and Evolutionary Computation, GECCO'12, Philadelphia, PA, United States, 7/7/12. https://doi.org/10.1145/2330163.2330296
Le Goues C, Wemer W, Forrest S. Representations and operators for improving evolutionary software repair. In GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation. 2012. p. 959-966 https://doi.org/10.1145/2330163.2330296
Le Goues, Claire ; Wemer, Westley ; Forrest, Stephanie. / Representations and operators for improving evolutionary software repair. GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation. 2012. pp. 959-966
@inproceedings{1d197b2d02074a73b36bff44610ed34d,
title = "Representations and operators for improving evolutionary software repair",
abstract = "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.",
keywords = "crossover, genetic programming, mutation, representation, search-based software engineering, software repair",
author = "{Le Goues}, Claire and Westley Wemer and Stephanie Forrest",
year = "2012",
month = "8",
day = "13",
doi = "10.1145/2330163.2330296",
language = "English (US)",
isbn = "9781450311779",
pages = "959--966",
booktitle = "GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation",

}

TY - GEN

T1 - Representations and operators for improving evolutionary software repair

AU - Le Goues, Claire

AU - Wemer, Westley

AU - Forrest, Stephanie

PY - 2012/8/13

Y1 - 2012/8/13

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

SP - 959

EP - 966

BT - GECCO'12 - Proceedings of the 14th International Conference on Genetic and Evolutionary Computation

ER -