Despite their growing complexity and increasing size, modern software applications must satisfy strict release requirements that impose short bug fixing and maintenance cycles, putting significant pressure on developers who are responsible for timely producing high-quality software. To reduce developers workload, repairing and healing techniques have been extensively investigated as solutions for efficiently repairing and maintaining software in the last few years. In particular, repairing solutions have been able to automatically produce useful fixes for several classes of bugs that might be present in software programs. A range of algorithms, techniques, and heuristics have been integrated, experimented, and studied, producing a heterogeneous and articulated research framework where automatic repair techniques are proliferating. This paper organizes the knowledge in the area by surveying a body of 108 papers about automatic software repair techniques, illustrating the algorithms and the approaches, comparing them on representative examples, and discussing the open challenges and the empirical evidence reported so far.

Gazzola, L., Micucci, D., Mariani, L. (2019). Automatic Software Repair: A Survey. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 45(1), 34-67 [10.1109/TSE.2017.2755013].

Automatic Software Repair: A Survey

Gazzola, L;Micucci, D;Mariani, L
2019

Abstract

Despite their growing complexity and increasing size, modern software applications must satisfy strict release requirements that impose short bug fixing and maintenance cycles, putting significant pressure on developers who are responsible for timely producing high-quality software. To reduce developers workload, repairing and healing techniques have been extensively investigated as solutions for efficiently repairing and maintaining software in the last few years. In particular, repairing solutions have been able to automatically produce useful fixes for several classes of bugs that might be present in software programs. A range of algorithms, techniques, and heuristics have been integrated, experimented, and studied, producing a heterogeneous and articulated research framework where automatic repair techniques are proliferating. This paper organizes the knowledge in the area by surveying a body of 108 papers about automatic software repair techniques, illustrating the algorithms and the approaches, comparing them on representative examples, and discussing the open challenges and the empirical evidence reported so far.
Articolo in rivista - Articolo scientifico
Automatic program repair; correct by construction; generate and validate; program synthesis; search-based; self-repairing; semantics-driven repair;
Automatic Program Repair, Generate and Validate, Search-Based, Semantics-driven repair, Correct by Construction, Program Synthesis, Self-Repairing.
English
gen-2019
2019
45
1
34
67
8089448
partially_open
Gazzola, L., Micucci, D., Mariani, L. (2019). Automatic Software Repair: A Survey. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 45(1), 34-67 [10.1109/TSE.2017.2755013].
File in questo prodotto:
File Dimensione Formato  
08089448_final.pdf

accesso aperto

Tipologia di allegato: Publisher’s Version (Version of Record, VoR)
Dimensione 1.64 MB
Formato Adobe PDF
1.64 MB Adobe PDF Visualizza/Apri
08089448.pdf

Solo gestori archivio

Tipologia di allegato: Publisher’s Version (Version of Record, VoR)
Dimensione 1.64 MB
Formato Adobe PDF
1.64 MB Adobe PDF   Visualizza/Apri   Richiedi una copia

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/184798
Citazioni
  • Scopus 286
  • ???jsp.display-item.citation.isi??? 203
Social impact