Keynote

On the duality between automated program repair and mutation testing


Abstract
Over the last few years, automated program repair research has grown in popularity. We consider two broad categories of program repair techniques: those that generate many candidate repairs and then validate them, and those that generate and solve constraints to find a repair matching a template. We show a duality between the first category (such as PAR or GenProg) and mutation analysis. We consider a broad lens in which repair asks whether there exists a mutant that passes all tests, while mutation analysis asks whether for every mutants there exists a failing test. We further discuss duals of mutation operators, the equivalent mutant problem, the Coupling Effect hypothesis, confidence, and higher-order mutation. We also consider the second category of program repair approaches (such as SemFix), and present a preliminary concrete reduction between them and test input generation. That is, an instance of template-based program repair can be converted to an instance of test input generation (for a tool such as Klee). These dualities and reductions suggest avenues for fruitful cross-fertilization. Finally, we conclude with a discussion of two significant challenges for automated program repair: repair quality and non-functional properties.

Speaker
Westley Weimer is an Associate Professor in Computer Science at the University of Virginia. His research  interests relate to consciousness, time, and advancing software quality by using both static and dynamic programming language approaches. On the purely-CS side, He is concerned with automatic or minimally-guided techniques that can scale and be applied easily to large, existing programs.