TY - GEN
T1 - Leveraging program equivalence for adaptive program repair
T2 - 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013
AU - Weimer, Westley
AU - Fry, Zachary P.
AU - Forrest, Stephanie
PY - 2013
Y1 - 2013
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
T3 - 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings
SP - 356
EP - 366
BT - 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings
Y2 - 11 November 2013 through 15 November 2013
ER -