volume 25 issue 3 pages 1980-2024

FixMiner: Mining relevant fix patterns for automated program repair

Anil Koyuncu 1
Kui Liu 1
Tegawende F. Bissyandé 1
Dongsun Kim 2
Jacques Klein 1
Martin Monperrus 3
Yves Le Traon 1
Publication typeJournal Article
Publication date2020-03-14
scimago Q1
wos Q1
SJR0.895
CiteScore7.9
Impact factor3.6
ISSN13823256, 15737616
Software
Abstract
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 AST-level 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.
Found 
Found 

Top-30

Journals

2
4
6
8
10
12
14
16
ACM Transactions on Software Engineering and Methodology
15 publications, 9.43%
IEEE Transactions on Software Engineering
14 publications, 8.81%
Empirical Software Engineering
8 publications, 5.03%
Journal of Systems and Software
4 publications, 2.52%
International Journal of Software Engineering and Knowledge Engineering
4 publications, 2.52%
Symmetry
3 publications, 1.89%
IEEE Access
3 publications, 1.89%
Information and Software Technology
2 publications, 1.26%
Lecture Notes in Computer Science
2 publications, 1.26%
Automated Software Engineering
2 publications, 1.26%
ACM Computing Surveys
2 publications, 1.26%
Proceedings of the ACM on Software Engineering
2 publications, 1.26%
Electronics (Switzerland)
1 publication, 0.63%
Software and Systems Modeling
1 publication, 0.63%
Acta Informatica
1 publication, 0.63%
Science of Computer Programming
1 publication, 0.63%
Journal of Intelligent and Fuzzy Systems
1 publication, 0.63%
Science China Information Sciences
1 publication, 0.63%
Wuhan University Journal of Natural Sciences
1 publication, 0.63%
ACM Transactions on Evolutionary Learning and Optimization
1 publication, 0.63%
Expert Systems with Applications
1 publication, 0.63%
IEEE Robotics and Automation Letters
1 publication, 0.63%
IEEE Transactions on Learning Technologies
1 publication, 0.63%
Engineering Applications of Artificial Intelligence
1 publication, 0.63%
Future Generation Computer Systems
1 publication, 0.63%
Knowledge and Information Systems
1 publication, 0.63%
Applied Sciences (Switzerland)
1 publication, 0.63%
Communications in Computer and Information Science
1 publication, 0.63%
Studies in Computational Intelligence
1 publication, 0.63%
2
4
6
8
10
12
14
16

Publishers

10
20
30
40
50
60
70
Institute of Electrical and Electronics Engineers (IEEE)
65 publications, 40.88%
Association for Computing Machinery (ACM)
50 publications, 31.45%
Springer Nature
18 publications, 11.32%
Elsevier
10 publications, 6.29%
MDPI
5 publications, 3.14%
World Scientific
4 publications, 2.52%
SAGE
1 publication, 0.63%
EDP Sciences
1 publication, 0.63%
10
20
30
40
50
60
70
  • We do not take into account publications without a DOI.
  • Statistics recalculated weekly.

Are you a researcher?

Create a profile to get free access to personal recommendations for colleagues and new articles.
Metrics
159
Share
Cite this
GOST |
Cite this
GOST Copy
Koyuncu A. et al. FixMiner: Mining relevant fix patterns for automated program repair // Empirical Software Engineering. 2020. Vol. 25. No. 3. pp. 1980-2024.
GOST all authors (up to 50) Copy
Koyuncu A., Liu K., Bissyandé T. F., Kim D., Klein J., Monperrus M., Le Traon Y. FixMiner: Mining relevant fix patterns for automated program repair // Empirical Software Engineering. 2020. Vol. 25. No. 3. pp. 1980-2024.
RIS |
Cite this
RIS Copy
TY - JOUR
DO - 10.1007/s10664-019-09780-z
UR - https://doi.org/10.1007/s10664-019-09780-z
TI - FixMiner: Mining relevant fix patterns for automated program repair
T2 - Empirical Software Engineering
AU - Koyuncu, Anil
AU - Liu, Kui
AU - Bissyandé, Tegawende F.
AU - Kim, Dongsun
AU - Klein, Jacques
AU - Monperrus, Martin
AU - Le Traon, Yves
PY - 2020
DA - 2020/03/14
PB - Springer Nature
SP - 1980-2024
IS - 3
VL - 25
SN - 1382-3256
SN - 1573-7616
ER -
BibTex |
Cite this
BibTex (up to 50 authors) Copy
@article{2020_Koyuncu,
author = {Anil Koyuncu and Kui Liu and Tegawende F. Bissyandé and Dongsun Kim and Jacques Klein and Martin Monperrus and Yves Le Traon},
title = {FixMiner: Mining relevant fix patterns for automated program repair},
journal = {Empirical Software Engineering},
year = {2020},
volume = {25},
publisher = {Springer Nature},
month = {mar},
url = {https://doi.org/10.1007/s10664-019-09780-z},
number = {3},
pages = {1980--2024},
doi = {10.1007/s10664-019-09780-z}
}
MLA
Cite this
MLA Copy
Koyuncu, Anil, et al. “FixMiner: Mining relevant fix patterns for automated program repair.” Empirical Software Engineering, vol. 25, no. 3, Mar. 2020, pp. 1980-2024. https://doi.org/10.1007/s10664-019-09780-z.