How to automatically repair software?
In my group, we invent systems to automatically fix software bugs (eg Nopol). Beyond the current repair systems, that only work for some types of bugs, my research goal is to train a generic repair system, for instance by applying machine learning to the problem of bug fixing.

More generally, many bugs have more critical consequences than they should have and I claim that it's because most programming paradigms and software stacks are brittle. How to construct less brittle software? Why is software brittle? My second research goal is to understand the causes of software brittleness, and to propose counter-measures such as short-circuit testing and antifragile software.