Automatic software repair

by Martin Monperrus

I've been working on automatic software repair since 2011. I maintain this curated list of pointers for helping newcomers to understand the field. –Martin

Automatic software repair in a nutshell

A tentative definition of the field:

Automatic software repair is the process of fixing software bugs automatically. When repair happens at the level of the program code, it is called program repair or patch generation (for instance by changing the conditional expression of an if statement). Repair may also happen at the level of the program state, at runtime, in response to field failures (for instance by changing the value of a variable), this is also sometimes called runtime repair or self-healing.

How to learn about automatic software repair?

I've written this introduction to automatic software repair and a a survey of the field.

If you know other introductory documents or slides, please drop me an email, I'll add it here.

Discussion about program repair

This google group is an open forum dedicated to program repair:

To subscribe to this group, send an email to mailto:[email protected]?subject=subscribe.

Bibliography about automatic repair

You may also be interested in reading my survey on automatic repair published in ACM CSUR. Gazzola and colleagues have also written a survey.

There is the community-driven list of papers at

Publicly available automatic repair tools

Look at this page that lists publicly available tools and prototypes for automatic repair.

Known courses about automatic software repair

Drop me an email to add your course here.

Dagstuhl seminars about automatic software repair

Seminar 17022 (Jan 2017): Automated Program Repair

Seminar 16201 (May 2016): Synergies among Testing, Verification, and Repair for Concurrent Programs

Seminar 13061 (Feb 2013): Fault Prediction, Localization, and Repair

Seminar 09201 (May 2009): Self-Healing and Self-Adaptive Systems

Theses about automatic software repair

Drop me an email to add your PhD thesis.

Semantic program repair, Sergey Mechtaev, National University of Singapore, 2018

Design of repair operators for automated program repair, Shin Hwei Tan, National University of Singapore, 2017

Automatic Analysis and Repair of Exception Bugs for Java Programs, Benoit Cornu, University of Lille, 2014

Extraction and Analysis of Knowledge for Automatic Software Repair, Matias Martinez, University of Lille, 2014

Automatic Program Repair Using Genetic Programming, Claire Le Goues, University of Virgina, 2013

Automating Program Verification and Repair Using Invariant Analysis and Test Input Generation, Thanh V. Nguyen, The Unversity of New Mexico, 2010

Tagged as: