DLFix: Context-based Code Transformation Learning for Automated Program RepairTechnical
Automated Program Repair (APR) is very useful in helping developers in the process of software development and maintenance. Despite recent advances in deep learning (DL), the DL-based APR approaches still have limitations in learning bug-fixing code changes and learning which context of the surrounding source code that certain bug-fixing changes should be made. These limitations lead to incorrect fixing locations or incorrect fixes. In this paper, we introduce DLFix, a two-tier DL model that treats APR as code transformation learning from the prior bug fixes and the surrounding code contexts of the fixes. The first layer is a tree-based RNN model that learns the contexts of bug fixes and its result is used as an additional weighting input for the second layer, which is designed to learn the bug-fixing code transformations.
We conducted several experiments to evaluate DLFix in two standard datasets Defects4J, and Bugs.jar, and in a newly built bug datasets with a total of +20K real-world bugs in eight projects. We have compared against a total of 13 state-of-the-art pattern-based APR tools. Our results show that DLFix improves over 11 of them, and is comparable and complementary to the top two pattern-based APR tools in which there are 7 and 11 unique bugs that they cannot detect, respectively, but we can. Importantly, DLFix is fully automated and data-driven, and does not require hard-coding of bug-fixing patterns as in those tools. We compared DLFix against 4 state-of-the-art deep learning based APR models. DLFix is able to fix 2.5 times more bugs than the best performing baseline.
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 |