Contract-based program repair without the contracts

Liushan Chen, Yu Pei, Carlo A. Furia

Research output: Chapter in book / Conference proceedingConference article published in proceeding or bookAcademic researchpeer-review

39 Citations (Scopus)

Abstract

Automated program repair (APR) is a promising approach to automatically fixing software bugs. Most APR techniques use tests to drive the repair process; this makes them readily applicable to realistic code bases, but also brings the risk of generating spurious repairs that overfit the available tests. Some techniques addressed the overfitting problem by targeting code using contracts (such as pre- and postconditions), which provide additional information helpful to characterize the states of correct and faulty computations; unfortunately, mainstream programming languages do not normally include contract annotations, which severely limits the applicability of such contract-based techniques. This paper presents JAID, a novel APR technique for Java programs, which is capable of constructing detailed state abstractions - similar to those employed by contract-based techniques - that are derived from regular Java code without any special annotations. Grounding the repair generation and validation processes on rich state abstractions mitigates the overfitting problem, and helps extend APR's applicability: in experiments with the DEFECTS4J benchmark, a prototype implementation of JAID produced genuinely correct repairs, equivalent to those written by programmers, for 25 bugs - improving over the state of the art of comparable Java APR techniques in the number and kinds of correct fixes.
Original languageEnglish
Title of host publicationASE 2017 - Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering
PublisherIEEE
Pages637-647
Number of pages11
ISBN (Electronic)9781538626849
DOIs
Publication statusPublished - 20 Nov 2017
Event32nd IEEE/ACM International Conference on Automated Software Engineering, ASE 2017 - University of Illinois at Urban-Champaign (UIUC), Urbana-Champaign, United States
Duration: 30 Oct 20173 Nov 2017

Conference

Conference32nd IEEE/ACM International Conference on Automated Software Engineering, ASE 2017
CountryUnited States
CityUrbana-Champaign
Period30/10/173/11/17

ASJC Scopus subject areas

  • Artificial Intelligence
  • Software
  • Control and Optimization

Cite this