2020
DOI: 10.1007/s10664-019-09780-z
|View full text |Cite
|
Sign up to set email alerts
|

FixMiner: Mining relevant fix patterns for automated program repair

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… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
95
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
3
3
2

Relationship

3
5

Authors

Journals

citations
Cited by 156 publications
(111 citation statements)
references
References 95 publications
(162 reference statements)
0
95
0
Order By: Relevance
“…Liu and Zhong [40] explored fix patterns from Q&A posts in Stack Overflow. Koyuncu et al [24] mined fix patterns at the AST level from patches by using code change differentiating tool [14]. Liu et al [35] and Rolim et al [60] proposed to mine fix patterns for static analysis violations.…”
Section: Fix Patterns Inferencementioning
confidence: 99%
See 1 more Smart Citation
“…Liu and Zhong [40] explored fix patterns from Q&A posts in Stack Overflow. Koyuncu et al [24] mined fix patterns at the AST level from patches by using code change differentiating tool [14]. Liu et al [35] and Rolim et al [60] proposed to mine fix patterns for static analysis violations.…”
Section: Fix Patterns Inferencementioning
confidence: 99%
“…This ranking metric has been demonstrated in several empirical studies [56,65,73,78] to be effective for localizing faults in object-oriented programs. The GZoltar framework for fault localization is also widely used in the literature of APR [18,24,34,38,39,49,69,74,76,77], allowing for a fair assessment of TBar's performance against the state-of-the-art.…”
Section: Fault Localizationmentioning
confidence: 99%
“…A common, and reliable, strategy in automatic program repair is to generate concrete patches based on fix patterns [26] (also referred to as fix templates [51] or program transformation schemas [18]). Several APR systems [14,18,26,31,46,48,49,51,60,73] in the literature implement this strategy by using diverse sets of fix patterns obtained either via manual generation or automatic mining of bug fix datasets. In this work, we consider the pioneer PAR system by Kim et al [26].…”
Section: Fix Pattern-based Patch Generationmentioning
confidence: 99%
“…Zhong et al [3] performed an empirical study on fixes of real bugs in open-source projects in order to reuse change patterns for automatic repairing and understand to what extent bugs are localized. Similarly, Koyuncy et al [5] implemented repair strategies based on fix patterns or templates. They provide a tool for mining semantically-relevant patterns in a scalable, accurate and actionable way, by using a clustering strategy.…”
Section: Related Workmentioning
confidence: 99%
“…It consists in empirically analyzing the changes made by developers to software in real complex projects, with the aim to identify (possibly, in automated ways) patterns for the most common changes, and to create profiles for these changes. This analysis is useful for many software engineering tasks, such as software testing (in particular, mutation testing [1], [2]), fault localization [3], automatic code repair [3], [5], and fault injection for testing fault-tolerance [12], [13]. Analyzing bug-fixing changes can be challenging since change patterns can be numerous and heterogeneous, and they can differ across different application domains, programming languages, and even software projects.…”
Section: Introductionmentioning
confidence: 99%