FixMiner: Mining Relevant Fix Patterns for Automated Program RepairJ1
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.
Sat 11 JulDisplayed time zone: (UTC) Coordinated Universal Time change
15:00 - 16:00 | A26-Bugs and RepairJournal First / Technical Papers at Goguryeo Chair(s): Davide Falessi California Polytechnic State University | ||
15:00 12mTalk | Simulee: Detecting CUDA Synchronization Bugs via Memory-Access ModelingTechnical Technical Papers Mingyuan Wu Southern University of Science and Technology, Yicheng Ouyang Southern University of Science and Technology, Husheng Zhou The University of Texas at Dallas, Lingming Zhang The University of Texas at Dallas, Cong Liu UT Dallas, Yuqun Zhang Southern University of Science and Technology | ||
15:12 8mTalk | Fine-Grained Dynamic Resource Allocation for Big-Data ApplicationsJ1 Journal First Luciano Baresi Politecnico di Milano, Alberto Leva Politecnico di Milano, Giovanni Quattrocchi Politecnico di Milano | ||
15:20 8mTalk | The Assessor's Dilemma: Improving Bug Repair via Empirical Game TheoryJ1 Journal First Carlos Gavidia-Calderon University College London, Federica Sarro University College London, UK, Mark Harman Facebook and University College London, Earl T. Barr University College London, UK Link to publication DOI Pre-print Media Attached | ||
15:28 8mTalk | FixMiner: Mining Relevant Fix Patterns for Automated Program RepairJ1 Journal First Anil Koyuncu University of Luxembourg, Luxembourg, Kui Liu Huawei Software Engineering Application Technology Lab, Tegawendé F. Bissyandé SnT, University of Luxembourg, Dongsun Kim Furiosa.ai, Jacques Klein University of Luxembourg, SnT, Martin Monperrus KTH Royal Institute of Technology, Yves Le Traon University of Luxembourg Pre-print | ||
15:36 8mTalk | IntRepair: Informed Repairing of Integer OverflowsJ1 Journal First Paul Muntean TU Munich, Martin Monperrus KTH Royal Institute of Technology, Hao Sun Unaffiliated, Jens Grossklags Technical University of Munich, Claudia Eckert Technical University of Munich | ||
15:44 12mTalk | DLFix: Context-based Code Transformation Learning for Automated Program RepairTechnical Technical Papers Yi Li New Jersey Institute of Technology, USA, Shaohua Wang New Jersey Institute of Technology, USA, Tien N. Nguyen University of Texas at Dallas |