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 条
  • [21] An Assessment of the Quality of Automated Program Operator Repair
    Assiri, Fatmah Yousef
    Bieman, James M.
    2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, : 273 - 282
  • [22] Toward Improving Graftability on Automated Program Repair
    Sumi, Soichi
    Higo, Yoshiki
    Hotta, Keisuke
    Kusumoto, Shinji
    2015 31ST INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME) PROCEEDINGS, 2015, : 511 - 515
  • [23] Improving Automated Program Repair with Domain Adaptation
    Zirak, Armin
    Hemmati, Hadi
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2024, 33 (03)
  • [24] Large Language Models for Automated Program Repair
    Ribeiro, Francisco
    SPLASH Companion 2023 - Companion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity, 2023, : 7 - 9
  • [25] The Strength of Random Search on Automated Program Repair
    Qi, Yuhua
    Mao, Xiaoguang
    Lei, Yan
    Dai, Ziying
    Wang, Chengsong
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, : 254 - 265
  • [26] Automated patch assessment for program repair at scale
    He Ye
    Matias Martinez
    Martin Monperrus
    Empirical Software Engineering, 2021, 26
  • [27] Automated Program Repair from Fuzzing Perspective
    Kim, YoungJae
    Han, Seungheon
    Khamit, Askar Yeltayuly
    Yi, Jooyong
    PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2023, 2023, : 854 - 866
  • [28] On the Impact of Flaky Tests in Automated Program Repair
    Qin, Yihao
    Wang, Shangwen
    Liu, Kui
    Mao, Xiaoguang
    Bissyande, Tegawende F.
    2021 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2021), 2021, : 295 - 306
  • [29] Scaling Genetic Improvement and Automated Program Repair
    Harman, Mark
    INTERNATIONAL WORKSHOP ON AUTOMATED PROGRAM REPAIR (APR 2022), 2022, : 1 - 7
  • [30] BUGSPHP: A dataset for Automated Program Repair in PHP
    Pramod, K. D.
    De Silva, W. T. N.
    Thabrew, W. U. K.
    Shariffdeen, Ridwan
    Wickramanayake, Sandareka
    2024 IEEE/ACM 21ST INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2024, : 128 - 132