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

Several static analysis tools, such as Splint or FindBugs, have been proposed to the software development community to help detect security vulnerabilities or bad programming practices. However, the adoption of these tools is hindered by their high false positive rates. If the false positive rate is too high, developers may get acclimated to violation reports from these tools, causing concrete and severe bugs being overlooked. Fortunately, some violations are actually addressed and resolved by developers. We claim that those violations that are recurrently fixed are likely to be true positives, and an automated approach can learn to repair similar unseen violations. However, there is lack of a systematic way to investigate the distributions on existing violations and fixed ones in the wild,that can provide insights into prioritizing violations for developers, and an effective way to mine code and fix patterns which can help developers easily understand the reasons of leading violations and how to fix them. In this paper, we first collect and track a large number of fixed and unfixed violations across revisions of software. The empirical analyses reveal that there are discrepancies in the distributions of violations that are detected and those that are fixed, in terms of occurrences, spread and categories, which can provide insights into prioritizing violations. To automatically identify patterns in violations and their fixes, we propose an approach that utilizes convolutional neural networks to learn features and clustering to regroup similar instances. We then evaluate the usefulness of the identified fix patterns by applying them to unfixed violations. The results show that developers will accept and merge a majority (69/116) of fixes generated from the inferred fix patterns. It is also noteworthy that the yielded patterns are applicable to four real bugs in the Defects4J major benchmark for software testing and automated repair.

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