Blogs (1) >>
ICSE 2019
Sat 25 - Fri 31 May 2019 Montreal, QC, Canada
Wed 29 May 2019 11:20 - 11:40 at Laurier - Automated Program Repair 1 Chair(s): Lars Grunske

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 May

Displayed 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
20m
Talk
Learning to Spot and Refactor Inconsistent Method NamesTechnical Track
Technical Track
Kui Liu University of Luxembourg, 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
20m
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:40
20m
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 Mary
Pre-print
12:00
10m
Talk
Mining Fix Patterns for FindBugs ViolationsJournal-First
Journal-First Papers
Kui Liu University of Luxembourg, 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
10m
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:20
10m
Talk
Discussion Period
Papers