Mining Fix Patterns with Context Information for Automatic Program Repair
Template-based automatic program repair (APR) using pre-defined fix patterns for generating patches is common in APR literature and is implemented in many APR tools. As the existing APR tools can fix only a limited number of bugs, automatic mining fix patterns from human-written fixes is an appropriate approach to expand fix pattern set at low cost. On the other hand, a large number of fix patterns do not ensure that a template-based APR tool will become more effective if the buggy context describing the condition for choosing a fix pattern to generate fixes for a buggy code is too generic. Because state-of-the-art fix patterns just provide generic code context for matching a fix pattern, the number of matched patterns and therefore the number of generated patches is exceptionally large.
We mine human-written fixes automatically to not only expand fix pattern set but also clarify the buggy context of the bug fix instances forming the fix patterns. Different from previous works, we propose to use test execution information, such as exception types and execution paths, in addition to code context, as the buggy context of fix patterns. For mining strategy, we choose agglomerative hierarchical clustering algorithm with custom distance metric to group bug fix instances, which actually do similar changes, into the same cluster. Evaluation result on the bug set of two APR benchmarks Defects4J and Bears reveals that fix patterns extracted from clusters containing at least two similar bug fix instances are matched with most of state-of-the-art fix patterns. Moreover, 11 new fix patterns are found. The buggy context, including code context and test execution information, of all bug fix instances forming each fix pattern are also clarified. Our fix patterns with new buggy context information are expected to help the template-based APR tools generate and verify patches more effectively.
Tue 16 MayDisplayed time zone: Hobart change
11:00 - 12:30 | |||
11:15 15mTalk | Quick Repair of Semantic Errors for Debugging APR | ||
11:30 20mTalk | An Analysis of the Automatic Bug Fixing Performance of ChatGPT APR Dominik Sobania Johannes Gutenberg University Mainz, Martin Briesch Johannes Gutenberg University Mainz, Carol Hanna University College London, Justyna Petke University College London | ||
11:50 20mTalk | An Extensive Study on Model Architecture and Program Representation in the Domain of Learning-based Automated Program Repair APR Dániel Horváth Department of Software Engineering, University of Szeged, Szeged, Hungary, Viktor Csuvik Department of Software Engineering, MTA-SZTE Research Group on Artificial Intelligence, University of Szeged, Szeged, Hungary, Tibor Gyimóthy University of Szeged, Hungary, László Vidács University of Szeged, Hungary | ||
12:10 20mTalk | Mining Fix Patterns with Context Information for Automatic Program Repair APR Phan Thi Thanh Huyen Hitachi, Ltd., Research &Development Group, Kazuya Yasuda Hitachi, Ltd., Shinji Itoh Hitachi, Ltd., Research &Development Group | ||
12:30 90mLunch | Lunch APR |