Correcting bugs using modern Automated Program Repair (APR) can be both time-consuming and resource-expensive. We describe a program repair approach that aims to improve the scalability of modern APR tools. The approach leverages program reduction in the form of program slicing to eliminate code irrelevant to fixing the bug, which improves the APR tool’s overall performance. We investigate slicing’s impact on all three phases of the repair process: fault localization, patch generation, and patch validation. Our empirical exploration finds that the proposed approach, on average, enhances the repair ability of the TBar APR tool, but we also discovered a few cases where it was less successful. Specifically, on examples from the widely used Defects4J dataset, we obtain a substantial reduction in median repair time, which falls from 80 minutes to just under 18 minutes. We conclude that program reduction can improve the performance of APR without degrading repair quality, but this improvement is not universal.
Keywords: automated program repair, dynamic program slicing, fault localization, test-suite reduction, hybrid techniques.
Adam Štěpánek Faculty of Informatics, Masaryk University, David Kuťák Faculty of Informatics, Masaryk University, Barbora Kozlíková Faculty of Informatics, Masaryk University, Jan Byška Faculty of Informatics, Masaryk University; Department of Informatics, University of Bergen
Linas Vidziunas Simula Research Laboratory, David Binkley Loyola University Maryland, Leon Moonen Simula Research Laboratory and BI Norwegian Business School