Automated fixing of programs with contracts

Wei Yi, Pei Yu, Carlo A. Furia, Lucas S. Silva, Stefan Buchholz, Bertrand Meyer, Andreas Zeller

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

128 Citations (Scopus)

Abstract

In program debugging, finding a failing run is only the first step; what about correcting the fault? Can we automate the second task as well as the first? The AutoFix-E tool automatically generates and validates fixes for software faults. The key insights behind AutoFix-E are to rely on contracts present in the software to ensure that the proposed fixes are semantically sound, and on state diagrams using an abstract notion of state based on the boolean queries of a class. Out of 42 faults found by an automatic testing tool in two widely used Eiffel libraries, AutoFix-E proposes successful fixes for 16 faults. Submitting some of these faults to experts shows that several of the proposed fixes are identical or close to fixes proposed by humans.

Original languageEnglish
Title of host publicationISSTA'10 - Proceedings of the 2010 International Symposium on Software Testing and Analysis
Pages61-71
Number of pages11
DOIs
Publication statusPublished - 27 Aug 2010
Externally publishedYes
Event19th International Symposium on Software Testing and Analysis, ISSTA 2010 - Trento, Italy
Duration: 12 Jul 201016 Jul 2010

Publication series

NameISSTA'10 - Proceedings of the 2010 International Symposium on Software Testing and Analysis

Conference

Conference19th International Symposium on Software Testing and Analysis, ISSTA 2010
CountryItaly
CityTrento
Period12/07/1016/07/10

Keywords

  • Automated debugging
  • Automatic fixing
  • Dynamic invariants
  • Program synthesis

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Software

Cite this