Automatic program repair with evolutionary computation

Westley Weimer, Stephanie Forrest, Claire Le Goues, Thanhvu Nguyen

Research output: Contribution to journalArticle

104 Citations (Scopus)

Abstract

There are many methods for detecting and mitigating software errors but few generic methods for automatically repairing errors once they are discovered. This paper highlights recent work combining program analysis methods with evolutionary computation to automatically repair bugs in off-the-shelf legacy C programs. The method takes as input the buggy C source code, a failed test case that demonstrates the bug, and a small number of other test cases that encode the required functionality of the program. The repair procedure does not rely on formal specifications, making it applicable to a wide range of extant software for which formal specifications rarely exist.

Original languageEnglish (US)
Pages (from-to)109-116
Number of pages8
JournalCommunications of the ACM
Volume53
Issue number5
DOIs
StatePublished - May 1 2010
Externally publishedYes

Fingerprint

Evolutionary algorithms
Repair
Formal specification

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

Automatic program repair with evolutionary computation. / Weimer, Westley; Forrest, Stephanie; Le Goues, Claire; Nguyen, Thanhvu.

In: Communications of the ACM, Vol. 53, No. 5, 01.05.2010, p. 109-116.

Research output: Contribution to journalArticle

Weimer, Westley ; Forrest, Stephanie ; Le Goues, Claire ; Nguyen, Thanhvu. / Automatic program repair with evolutionary computation. In: Communications of the ACM. 2010 ; Vol. 53, No. 5. pp. 109-116.
@article{0db3f28eb0af4f4485c1a2732e54bf0b,
title = "Automatic program repair with evolutionary computation",
abstract = "There are many methods for detecting and mitigating software errors but few generic methods for automatically repairing errors once they are discovered. This paper highlights recent work combining program analysis methods with evolutionary computation to automatically repair bugs in off-the-shelf legacy C programs. The method takes as input the buggy C source code, a failed test case that demonstrates the bug, and a small number of other test cases that encode the required functionality of the program. The repair procedure does not rely on formal specifications, making it applicable to a wide range of extant software for which formal specifications rarely exist.",
author = "Westley Weimer and Stephanie Forrest and {Le Goues}, Claire and Thanhvu Nguyen",
year = "2010",
month = "5",
day = "1",
doi = "10.1145/1735223.1735249",
language = "English (US)",
volume = "53",
pages = "109--116",
journal = "Communications of the ACM",
issn = "0001-0782",
publisher = "Association for Computing Machinery (ACM)",
number = "5",

}

TY - JOUR

T1 - Automatic program repair with evolutionary computation

AU - Weimer, Westley

AU - Forrest, Stephanie

AU - Le Goues, Claire

AU - Nguyen, Thanhvu

PY - 2010/5/1

Y1 - 2010/5/1

N2 - There are many methods for detecting and mitigating software errors but few generic methods for automatically repairing errors once they are discovered. This paper highlights recent work combining program analysis methods with evolutionary computation to automatically repair bugs in off-the-shelf legacy C programs. The method takes as input the buggy C source code, a failed test case that demonstrates the bug, and a small number of other test cases that encode the required functionality of the program. The repair procedure does not rely on formal specifications, making it applicable to a wide range of extant software for which formal specifications rarely exist.

AB - There are many methods for detecting and mitigating software errors but few generic methods for automatically repairing errors once they are discovered. This paper highlights recent work combining program analysis methods with evolutionary computation to automatically repair bugs in off-the-shelf legacy C programs. The method takes as input the buggy C source code, a failed test case that demonstrates the bug, and a small number of other test cases that encode the required functionality of the program. The repair procedure does not rely on formal specifications, making it applicable to a wide range of extant software for which formal specifications rarely exist.

UR - http://www.scopus.com/inward/record.url?scp=77951788099&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=77951788099&partnerID=8YFLogxK

U2 - 10.1145/1735223.1735249

DO - 10.1145/1735223.1735249

M3 - Article

VL - 53

SP - 109

EP - 116

JO - Communications of the ACM

JF - Communications of the ACM

SN - 0001-0782

IS - 5

ER -