Reference : FixMiner: Mining relevant fix patterns for automated program repair
Scientific journals : Article
Engineering, computing & technology : Computer science
http://hdl.handle.net/10993/44172
FixMiner: Mining relevant fix patterns for automated program repair
English
Koyuncu, Anil mailto [University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > >]
Liu, Kui mailto [University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > >]
Bissyande, Tegawendé François D Assise mailto [University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > >]
Kim, Dongsun mailto [Furiosa.ai]
Klein, Jacques mailto [University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > Computer Science and Communications Research Unit (CSC) >]
Monperrus, Martin mailto [KTH Royal Institute of Technology]
Le Traon, Yves mailto [University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > Computer Science and Communications Research Unit (CSC) >]
14-Mar-2020
Empirical Software Engineering
Kluwer Academic Publishers
Yes (verified by ORBilu)
International
1382-3256
1573-7616
Netherlands
[en] Fix patterns ; Patches ; Program repair ; Debugging ; Mining
[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.
http://hdl.handle.net/10993/44172
10.1007/s10664-019-09780-z
FnR ; FNR10449467 > Tegawendé François D'Assise Bissyandé > RECOMMEND > Automatic Bug Fix Recommendation: Improving Software Repair and Reducing Time-to-Fix Delays in Software Development Projects > 01/02/2016 > 31/01/2019 > 2015

File(s) associated to this reference

Fulltext file(s):

FileCommentaryVersionSizeAccess
Open access
1810.01791.pdfAuthor preprint2.72 MBView/Open

Bookmark and Share SFX Query

All documents in ORBilu are protected by a user license.