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.
|