Harnessing Evolution for Multi-Hunk Program RepairTechnical Track
Despite significant advances in automatic program repair (APR) techniques over the past decade, practical deployment remains an elusive goal. One of the important challenges in this regard is the general inability of current APR techniques to produce patches that require edits in multiple locations, i.e., multi-hunk patches. In this work we present a novel APR technique that generalizes single-hunk repair techniques to include an important class of multi-hunk bugs, namely bugs that may require applying a substantially similar patch at a number of locations. We term such sets of repair locations as evolutionary siblings - similar looking code, instantiated in similar contexts, that are expected to co-evolve together. At the heart of our proposed method is an analysis to accurately identify a set of evolutionary siblings, in a given bug context. This analysis leverages three distinct sources of information, namely the test-suite spectrum, a novel code similarity analysis, and the revision history of the project. The discovered siblings are then simultaneously repaired in a similar fashion. We implement this technique in a tool HERCULES and demonstrate that it is able to correctly fix 46 bugs in the Defects4J dataset, the highest of any individual APR technique to date. This includes 15 multi-hunk bugs and overall 11 bugs which have not been fixed by any other technique so far.
Wed 29 MayDisplayed time zone: Eastern Time (US & Canada) change
| 11:00 - 12:30 | Automated Program Repair 1Journal-First Papers / Technical Track / Papers at Laurier Chair(s): Lars Grunske Humboldt-Universität zu Berlin | ||
| 11:0020m Talk | Learning to Spot and Refactor Inconsistent Method NamesTechnical Track Technical Track Kui Liu Huawei Software Engineering Application Technology Lab, Dongsun Kim Furiosa.ai, Tegawendé F. Bissyandé SnT, University of Luxembourg, Taeyoung Kim Chonbuk National University, Kisub Kim University of Luxembourg, SnT, Anil Koyuncu University of Luxembourg, Luxembourg, Suntae Kim , Yves Le Traon University of LuxembourgPre-print | ||
| 11:2020m Talk | Harnessing Evolution for Multi-Hunk Program RepairTechnical Track Technical Track Seemanta Saha University of California Santa Barbara, Ripon Saha Fujitsu Laboratories of America, Inc., Mukul Prasad Fujitsu Laboratories of America | ||
| 11:4020m Talk | On Learning Meaningful Code Changes via Neural Machine TranslationTechnical Track Technical Track Michele Tufano College of William and Mary, Jevgenija Pantiuchina Università della Svizzera italiana, Cody Watson  , Gabriele Bavota Università della Svizzera italiana (USI), Denys Poshyvanyk William and MaryPre-print | ||
| 12:0010m Talk | Mining Fix Patterns for FindBugs ViolationsJournal-First Journal-First Papers Kui Liu Huawei Software Engineering Application Technology Lab, Dongsun Kim Furiosa.ai, Tegawendé F. Bissyandé SnT, University of Luxembourg, Shin Yoo Korea Advanced Institute of Science and Technology, Yves Le Traon University of LuxembourgPre-print | ||
| 12:1010m Talk | Test-equivalence Analysis for Automatic Patch GenerationJournal-First Journal-First Papers Sergey Mechtaev University College London, Xiang Gao National University of Singapore, Shin Hwei Tan Southern University of Science and Technology, Abhik Roychoudhury National University of Singapore | ||
| 12:2010m Talk | Discussion Period Papers | ||


