Article (Scientific journals)
FixMiner: Mining relevant fix patterns for automated program repair
Koyuncu, Anil; Liu, Kui; Bissyande, Tegawendé François D Assise et al.
2020In Empirical Software Engineering
Peer Reviewed verified by ORBi
 

Files


Full Text
1810.01791.pdf
Author preprint (2.79 MB)
Download

All documents in ORBilu are protected by a user license.

Send to



Details



Keywords :
Fix patterns; Patches; Program repair; Debugging; Mining
Abstract :
[en] Patching is a common activity in software development. It is generally performed on a source code base to address bugs or add new functionalities. In this context, given the recurrence of bugs across projects, the associated similar patches can be leveraged to extract generic fix actions. While the literature includes various approaches leveraging similarity among patches to guide program repair, these approaches often do not yield fix patterns that are tractable and reusable as actionable input to APR systems. In this paper, we propose a systematic and automated approach to mining relevant and actionable fix patterns based on an iterative clustering strategy applied to atomic changes within patches. The goal of FixMiner is thus to infer separate and reusable fix patterns that can be leveraged in other patch generation systems. Our technique, FixMiner, leverages Rich Edit Script which is a specialized tree structure of the edit scripts that captures the ASTlevel context of the code changes. FixMiner uses different tree representations of Rich Edit Scripts for each round of clustering to identify similar changes. These are abstract syntax trees, edit actions trees, and code context trees. We have evaluated FixMiner on thousands of software patches collected from open source projects. Preliminary results show that we are able to mine accurate patterns, efficiently exploiting change information in Rich Edit Scripts. We further integrated the mined patterns to an automated program repair prototype, PARFixMiner, with which we are able to correctly fix 26 bugs of the Defects4J benchmark. Beyond this quantitative performance, we show that the mined fix patterns are sufficiently relevant to produce patches with a high probability of correctness: 81% of PARFixMiner’s generated plausible patches are correct.
Disciplines :
Computer science
Author, co-author :
Koyuncu, Anil ;  University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Liu, Kui ;  University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Bissyande, Tegawendé François D Assise  ;  University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Kim, Dongsun ;  Furiosa.ai
Klein, Jacques ;  University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > Computer Science and Communications Research Unit (CSC)
Monperrus, Martin;  KTH Royal Institute of Technology
Le Traon, Yves ;  University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > Computer Science and Communications Research Unit (CSC)
External co-authors :
yes
Language :
English
Title :
FixMiner: Mining relevant fix patterns for automated program repair
Publication date :
14 March 2020
Journal title :
Empirical Software Engineering
ISSN :
1573-7616
Publisher :
Kluwer Academic Publishers, Netherlands
Peer reviewed :
Peer Reviewed verified by ORBi
FnR Project :
FNR10449467 - Automatic Bug Fix Recommendation: Improving Software Repair And Reducing Time-to-fix Delays In Software Development Projects, 2015 (01/02/2016-31/01/2019) - Tegawendé François D'assise Bissyandé
Available on ORBilu :
since 05 September 2020

Statistics


Number of views
154 (11 by Unilu)
Number of downloads
736 (3 by Unilu)

Scopus citations®
 
100
Scopus citations®
without self-citations
83
OpenCitations
 
46
WoS citations
 
88

Bibliography


Similar publications



Contact ORBilu