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:00 20mTalk | 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 Luxembourg Pre-print | ||
11:20 20mTalk | 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:40 20mTalk | 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 Mary Pre-print | ||
12:00 10mTalk | 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 Luxembourg Pre-print | ||
12:10 10mTalk | 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:20 10mTalk | Discussion Period Papers |