Static Automated Program Repair for Heap Properties

被引:56
|
作者
van Tonder, Rijnard [1 ]
Le Goues, Claire [1 ]
机构
[1] Carnegie Mellon Univ, Sch Comp Sci, Pittsburgh, PA 15213 USA
基金
美国国家科学基金会;
关键词
Automated Program Repair; Separation Logic;
D O I
10.1145/3180155.3180250
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Static analysis tools have demonstrated effectiveness at finding bugs in real world code. Such tools are increasingly widely adopted to improve software quality in practice. Automated Program Repair (APR) has the potential to further cut down on the cost of improving software quality. However, there is a disconnect between these effective bug-finding tools and APR. Recent advances in APR rely on test cases, making them inapplicable to newly discovered bugs or bugs difficult to test for deterministically (like memory leaks). Additionally, the quality of patches generated to satisfy a test suite is a key challenge. We address these challenges by adapting advances in practical static analysis and verification techniques to enable a new technique that finds and then accurately fixes real bugs without test cases. We present a new automated program repair technique using Separation Logic. At a high-level, our technique reasons over semantic effects of existing program fragments to fix faults related to general pointer safety properties: resource leaks, memory leaks, and null dereferences. The procedure automatically translates identified fragments into source-level patches, and verifies patch correctness with respect to reported faults. In this work we conduct the largest study of automatically fixing undiscovered bugs in real-world code to date. We demonstrate our approach by correctly fixing 55 bugs, including 11 previously undiscovered bugs, in 11 real-world projects.
引用
收藏
页码:151 / 162
页数:12
相关论文
共 50 条
  • [41] Automatic Software Merging using Automated Program Repair
    Xing, Xiaoqian
    Maruyama, Katsuhisa
    2019 IEEE 1ST INTERNATIONAL WORKSHOP ON INTELLIGENT BUG FIXING (IBF '19), 2019, : 11 - 16
  • [42] ThinkRepair: Self-Directed Automated Program Repair
    Yin, Xin
    Ni, Chao
    Wang, Shaohua
    Li, Zhenhao
    Zeng, Limin
    Yang, Xiaohu
    PROCEEDINGS OF THE 33RD ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2024, 2024, : 1274 - 1286
  • [43] Overfitting in semantics-based automated program repair
    Xuan Bach D. Le
    Ferdian Thung
    David Lo
    Claire Le Goues
    Empirical Software Engineering, 2018, 23 : 3007 - 3033
  • [44] An Investigation into the Use of Mutation Analysis for Automated Program Repair
    Timperley, Christopher Steven
    Stepney, Susan
    Le Goues, Claire
    SEARCH BASED SOFTWARE ENGINEERING, SSBSE 2017, 2017, 10452 : 99 - 114
  • [45] Impact of Code Language Models on Automated Program Repair
    Jiang, Nan
    Liu, Kevin
    Lutellier, Thibaud
    Tan, Lin
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 1430 - 1442
  • [46] Be Realistic: Automated Program Repair is a Combination of Undecidable Problems
    Nilizadeh, Amirfarhad
    Leavens, Gary T.
    INTERNATIONAL WORKSHOP ON AUTOMATED PROGRAM REPAIR (APR 2022), 2022, : 31 - 32
  • [47] A Survey of Learning-based Automated Program Repair
    Zhang, Quanjun
    Fang, Chunrong
    Ma, Yuxiang
    Sun, Weisong
    Chen, Zhenyu
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2024, 33 (02)
  • [48] Automated Clustering and Program Repair for Introductory Programming Assignments
    Gulwani, Sumit
    Radicek, Ivan
    Zuleger, Florian
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 465 - 480
  • [49] Syntax-Guided Automated Program Repair for Hyperproperties
    Beutner, Raven
    Hsu, Tzu-Han
    Bonakdarpour, Borzoo
    Finkbeiner, Bernd
    COMPUTER AIDED VERIFICATION, PT III, CAV 2024, 2024, 14683 : 3 - 26
  • [50] Evaluating the Strategies of Statement Selection in Automated Program Repair
    Yang, Deheng
    Qi, Yuhua
    Mao, Xiaoguang
    SOFTWARE ANALYSIS, TESTING, AND EVOLUTION, SATE 2018, 2018, 11293 : 33 - 48