How to fix bugs automatically?

This proposal has been accepted as a session.


One Line Summary

I will introduce the idea of automatic software repair and how it works in practice.


Automatic software repair is the process of fixing software bugs automatically. An automatic software repair system fixes software bugs with no human intervention. The goal of automatic software repair is to save maintenance costs and to enable systems to be more resilient to bugs and unexpected situations. I will discuss the foundations of repair: it may happen at the level of the program code (for instance by changing the conditional expression of an if statement) or at the level of the program state (for instance by replacing a stale unrecoverable object by a fresh one), it focuses on one particular type of bug, in one particular technical space (e.g. initialization bugs in Java programs); it embeds algorithms and heuristics that leverage knowledge about this kind of bugs: on what the causes are, on how the symptoms manifest themselves, on what the likely fixes look like.