Representations and operators for improving evolutionary software repair

Claire Le Goues, Westley Wemer, Stephanie Forrest

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

38 Scopus citations

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

Publication series

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

Conference

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

Keywords

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

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Applied Mathematics

Fingerprint Dive into the research topics of 'Representations and operators for improving evolutionary software repair'. Together they form a unique fingerprint.

Cite this