Do automated program repair techniques repair hard and important bugs?

被引:0
|
作者
Manish Motwani
Sandhya Sankaranarayanan
René Just
Yuriy Brun
机构
[1] University of Massachusetts,College of Information and Computer Science
来源
Empirical Software Engineering | 2018年 / 23卷
关键词
Automated program repair; Repairability;
D O I
暂无
中图分类号
学科分类号
摘要
Existing evaluations of automated repair techniques focus on the fraction of the defects for which the technique can produce a patch, the time needed to produce patches, and how well patches generalize to the intended specification. However, these evaluations have not focused on the applicability of repair techniques and the characteristics of the defects that these techniques can repair. Questions such as “Can automated repair techniques repair defects that are hard for developers to repair?” and “Are automated repair techniques less likely to repair defects that involve loops?” have not, as of yet, been answered. To address such questions, we annotate two large benchmarks totaling 409 C and Java defects in real-world software, ranging from 22K to 2.8M lines of code, with measures of the defect’s importance, the developer-written patch’s complexity, and the quality of the test suite. We then analyze relationships between these measures and the ability to produce patches for the defects of seven automated repair techniques —AE, GenProg, Kali, Nopol, Prophet, SPR, and TrpAutoRepair. We find that automated repair techniques are less likely to produce patches for defects that required developers to write a lot of code or edit many files, or that have many tests relevant to the defect. Java techniques are more likely to produce patches for high-priority defects. Neither the time it took developers to fix a defect nor the test suite’s coverage correlate with the automated repair techniques’ ability to produce patches. Finally, automated repair techniques are less capable of fixing defects that require developers to add loops and new function calls, or to change method signatures. These findings identify strengths and shortcomings of the state-of-the-art of automated program repair along new dimensions. The presented methodology can drive research toward improving the applicability of automated repair techniques to hard and important bugs.
引用
收藏
页码:2901 / 2947
页数:46
相关论文
共 50 条
  • [41] Automated Large Program Repair based on Big Code
    Hoang Van Thuy
    Phan Viet Anh
    Nguyen Xuan Hoai
    PROCEEDINGS OF THE NINTH INTERNATIONAL SYMPOSIUM ON INFORMATION AND COMMUNICATION TECHNOLOGY (SOICT 2018), 2018, : 375 - 381
  • [42] Applying Automated Program Repair to Dataflow Programming Languages
    Huang, Yu
    Ahmad, Hammad
    Forrest, Stephanie
    Weimer, Westley
    2021 IEEE/ACM INTERNATIONAL WORKSHOP ON GENETIC IMPROVEMENT (GI 2021), 2021, : 21 - 22
  • [43] Should Fixing These Failures be Delegated to Automated Program Repair?
    Le, Xuan-Bach D.
    Le, Tien-Duy B.
    Lo, David
    2015 IEEE 26TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2015, : 427 - 437
  • [44] Overfitting in Semantics-based Automated Program Repair
    Le, Xuan-Bach D.
    Thung, Ferdian
    Lo, David
    Le Goues, Claire
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 163 - 163
  • [45] 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
    Liu, Kui
    Kim, Dongsun
    Koyuncu, Anil
    Kim, Kisub
    Tian, Haoye
    Lei, Yan
    Mao, Xiaoguang
    Klein, Jacques
    Bissyande, Tegawende F.
    EMPIRICAL SOFTWARE ENGINEERING, 2021, 26 (06)
  • [46] Where were the repair ingredients for Defects4j bugs?Exploring the impact of repair ingredient retrieval on the performance of 24 program repair systems
    Deheng Yang
    Kui Liu
    Dongsun Kim
    Anil Koyuncu
    Kisub Kim
    Haoye Tian
    Yan Lei
    Xiaoguang Mao
    Jacques Klein
    Tegawendé F. Bissyandé
    Empirical Software Engineering, 2021, 26
  • [47] Reinforcement learning for mutation operator selection in automated program repair
    Hanna, Carol
    Blot, Aymeric
    Petke, Justyna
    AUTOMATED SOFTWARE ENGINEERING, 2025, 32 (02)
  • [48] TBar: Revisiting Template-Based Automated Program Repair
    Liu, Kui
    Koyuncu, Anil
    Kim, Dongsun
    Bissyande, Tegawende F.
    PROCEEDINGS OF THE 28TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS (ISSTA '19), 2019, : 31 - 42
  • [49] Is the Cure Worse Than the Disease? Overfitting in Automated Program Repair
    Smith, Edward K.
    Barr, Earl T.
    Le Goues, Claire
    Brun, Yuriy
    2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, : 532 - 543
  • [50] Boosting Automated Program Repair with Bug-Inducing Commits
    Wen, Ming
    Liu, Yepang
    Cheung, Shing-Chi
    2020 IEEE/ACM 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: NEW IDEAS AND EMERGING RESULTS (ICSE-NIER 2020), 2020, : 77 - 80