Leveraging program equivalence for adaptive program repair: Models and first results

Westley Weimer, Zachary P. Fry, Stephanie Forrest

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

112 Citations (Scopus)

Abstract

Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on generate-and-validate repair methods that enumerate candidate repairs and use test cases to define correct behavior. We formalize repair cost in terms of test executions, which dominate most test-based repair algorithms. Insights from this model lead to a novel deterministic repair algorithm that computes a patch quotient space with respect to an approximate semantic equivalence relation. This allows syntactic and dataflow analysis techniques to dramatically reduce the repair search space. Generate-and-validate program repair is shown to be a dual of mutation testing, suggesting several possible cross-fertilizations. Evaluating on 105 real-world bugs in programs totaling 5MLOC and involving 10,000 tests, our new algorithm requires an order-of-magnitude fewer test evaluations than the previous state-of-the-art and is over three times more efficient monetarily.

Original languageEnglish (US)
Title of host publication2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings
Pages356-366
Number of pages11
DOIs
StatePublished - Dec 1 2013
Externally publishedYes
Event2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Palo Alto, CA, United States
Duration: Nov 11 2013Nov 15 2013

Other

Other2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013
CountryUnited States
CityPalo Alto, CA
Period11/11/1311/15/13

Fingerprint

Repair
Data flow analysis
Costs
Syntactics
Semantics
Testing

Keywords

  • Automated program repair
  • mutation testing
  • program equivalence
  • search-based software engineering

ASJC Scopus subject areas

  • Software

Cite this

Weimer, W., Fry, Z. P., & Forrest, S. (2013). Leveraging program equivalence for adaptive program repair: Models and first results. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings (pp. 356-366). [6693094] https://doi.org/10.1109/ASE.2013.6693094

Leveraging program equivalence for adaptive program repair : Models and first results. / Weimer, Westley; Fry, Zachary P.; Forrest, Stephanie.

2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings. 2013. p. 356-366 6693094.

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

Weimer, W, Fry, ZP & Forrest, S 2013, Leveraging program equivalence for adaptive program repair: Models and first results. in 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings., 6693094, pp. 356-366, 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013, Palo Alto, CA, United States, 11/11/13. https://doi.org/10.1109/ASE.2013.6693094
Weimer W, Fry ZP, Forrest S. Leveraging program equivalence for adaptive program repair: Models and first results. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings. 2013. p. 356-366. 6693094 https://doi.org/10.1109/ASE.2013.6693094
Weimer, Westley ; Fry, Zachary P. ; Forrest, Stephanie. / Leveraging program equivalence for adaptive program repair : Models and first results. 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings. 2013. pp. 356-366
@inproceedings{2372c416cf9747f8888b5a7fef6d83e4,
title = "Leveraging program equivalence for adaptive program repair: Models and first results",
abstract = "Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on generate-and-validate repair methods that enumerate candidate repairs and use test cases to define correct behavior. We formalize repair cost in terms of test executions, which dominate most test-based repair algorithms. Insights from this model lead to a novel deterministic repair algorithm that computes a patch quotient space with respect to an approximate semantic equivalence relation. This allows syntactic and dataflow analysis techniques to dramatically reduce the repair search space. Generate-and-validate program repair is shown to be a dual of mutation testing, suggesting several possible cross-fertilizations. Evaluating on 105 real-world bugs in programs totaling 5MLOC and involving 10,000 tests, our new algorithm requires an order-of-magnitude fewer test evaluations than the previous state-of-the-art and is over three times more efficient monetarily.",
keywords = "Automated program repair, mutation testing, program equivalence, search-based software engineering",
author = "Westley Weimer and Fry, {Zachary P.} and Stephanie Forrest",
year = "2013",
month = "12",
day = "1",
doi = "10.1109/ASE.2013.6693094",
language = "English (US)",
isbn = "9781479902156",
pages = "356--366",
booktitle = "2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings",

}

TY - GEN

T1 - Leveraging program equivalence for adaptive program repair

T2 - Models and first results

AU - Weimer, Westley

AU - Fry, Zachary P.

AU - Forrest, Stephanie

PY - 2013/12/1

Y1 - 2013/12/1

N2 - Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on generate-and-validate repair methods that enumerate candidate repairs and use test cases to define correct behavior. We formalize repair cost in terms of test executions, which dominate most test-based repair algorithms. Insights from this model lead to a novel deterministic repair algorithm that computes a patch quotient space with respect to an approximate semantic equivalence relation. This allows syntactic and dataflow analysis techniques to dramatically reduce the repair search space. Generate-and-validate program repair is shown to be a dual of mutation testing, suggesting several possible cross-fertilizations. Evaluating on 105 real-world bugs in programs totaling 5MLOC and involving 10,000 tests, our new algorithm requires an order-of-magnitude fewer test evaluations than the previous state-of-the-art and is over three times more efficient monetarily.

AB - Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on generate-and-validate repair methods that enumerate candidate repairs and use test cases to define correct behavior. We formalize repair cost in terms of test executions, which dominate most test-based repair algorithms. Insights from this model lead to a novel deterministic repair algorithm that computes a patch quotient space with respect to an approximate semantic equivalence relation. This allows syntactic and dataflow analysis techniques to dramatically reduce the repair search space. Generate-and-validate program repair is shown to be a dual of mutation testing, suggesting several possible cross-fertilizations. Evaluating on 105 real-world bugs in programs totaling 5MLOC and involving 10,000 tests, our new algorithm requires an order-of-magnitude fewer test evaluations than the previous state-of-the-art and is over three times more efficient monetarily.

KW - Automated program repair

KW - mutation testing

KW - program equivalence

KW - search-based software engineering

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

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

U2 - 10.1109/ASE.2013.6693094

DO - 10.1109/ASE.2013.6693094

M3 - Conference contribution

AN - SCOPUS:84893599245

SN - 9781479902156

SP - 356

EP - 366

BT - 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings

ER -