Where were the repair ingredients for Defects4j bugs? Exploring the impact of repair ingredient retrieval on the performance of 24 program repair systems

Yang, Deheng and Liu, Kui and Kim, Dongsun and Koyuncu, Anıl and Kim, Kisub and Tian, Haoye and Lei, Yan and Mao, Xiaoguang and Klein, Jacques and Bissyandé, Tegawendé F. (2021) Where were the repair ingredients for Defects4j bugs? Exploring the impact of repair ingredient retrieval on the performance of 24 program repair systems. Empirical Software Engineering, 26 (6). ISSN 1382-3256 (Print) 1573-7616 (Online)

[thumbnail of Yang2021_Article_WhereWereTheRepairIngredientsF.pdf] PDF
Yang2021_Article_WhereWereTheRepairIngredientsF.pdf
Restricted to Repository staff only

Download (2MB) | Request a copy

Abstract

A significant body of automated program repair research has built approaches under the redundancy assumption. Patches are then heuristically generated by leveraging repair ingredients (change actions and donor code) that are found in code bases (either the buggy program itself or big code). For example, common change actions (i.e., fix patterns) are frequently mined offline and serve as an important ingredient for many patch generation engines. Although the repetitiveness of code changes has been studied in general, the literature provides little insight into the relationship between the performance of the repair system and the source code base where the change actions were mined. Similarly, donor code is another important repair ingredient to concretize patches guided by abstract patterns. Yet, little attention has been paid to where such ingredients can actually be found. Through a large scale empirical study on the execution results of 24 repair systems evaluated on realworld bugs from Defects4J, we provide a comprehensive view on the distribution of repair ingredients that are relevant for these bugs. In particular, we show that (1) a half of bugs cannot be fixed simply because the relevant repair ingredient is not available in the search space of donor code; (2) bugs that are correctly fixed by literature tools are mostly addressed with shallow change actions; (3) programs with little history of changes can benefit from mining change actions in other programs; (4) parts of donor code to repair a given bug can be found separately at different search locations; (5) bug-triggering test cases are a rich source for donor code search.
Item Type: Article
Uncontrolled Keywords: Automated Program Repair; Code Change Action; Donor Code; Fix Ingredient
Divisions: Faculty of Engineering and Natural Sciences > Academic programs > Computer Science & Eng.
Faculty of Engineering and Natural Sciences
Depositing User: Anıl Koyuncu
Date Deposited: 10 Feb 2022 18:05
Last Modified: 10 Feb 2022 18:05
URI: https://research.sabanciuniv.edu/id/eprint/42658

Actions (login required)

View Item
View Item