Automatic Program Repair by Fixing Contracts

被引:0
|
作者
Pei, Yu [1 ]
Furia, Carlo A. [1 ]
Nordio, Martin [1 ]
Meyer, Bertrand [1 ]
机构
[1] Swiss Fed Inst Technol, Chair Software Engn, Zurich, Switzerland
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
While most debugging techniques focus on patching implementations, there are bugs whose most appropriate corrections consist in fixing the specification to prevent invalid executions-such as to define the correct input domain of a function. In this paper, we present a fully automatic technique that fixes bugs by proposing changes to contracts (simple executable specification elements such as pre- and postconditions). The technique relies on dynamic analysis to understand the source of buggy behavior, to infer changes to the contracts that emend the bugs, and to validate the changes against general usage. We have implemented the technique in a tool called SpeciFix, which works on programs written in Eiffel, and evaluated it on 44 bugs found in standard data-structure libraries. Manual analysis by human programmers found that SpeciFix suggested repairs that are deployable for 25% of the faults; in most cases, these contract repairs were preferred over fixes for the same bugs that change the implementation.
引用
收藏
页码:246 / 260
页数:15
相关论文
共 50 条
  • [1] Automatic Program Repair
    Carver, Jeffrey
    Colomo-Palacios, Ricardo
    Larrucea, Xabier
    Staron, Miroslaw
    IEEE SOFTWARE, 2021, 38 (04) : 122 - 124
  • [2] How do Developers Really Feel About Bug Fixing? Directions for Automatic Program Repair
    Winter, Emily
    Bowes, David
    Counsell, Steve
    Hall, Tracy
    Haraldsson, Saemundur
    Nowack, Vesna
    Woodward, John
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) : 1823 - 1841
  • [3] FIXING UNFAIR CONTRACTS
    Ben-Shahar, Omri
    STANFORD LAW REVIEW, 2011, 63 (04) : 869 - 906
  • [4] 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
  • [5] Contract-Based Program Repair without the Contracts
    Chen, Liushan
    Pei, Yu
    Furia, Carlo A.
    PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 637 - 647
  • [6] Program Repair and Trusted Automatic Programming
    Roychoudhury, Abhik
    PROCEEDINGS OF THE 17TH INNOVATIONS IN SOFTWARE ENGINEERING CONFERENCE, ISEC 2024, 2024,
  • [7] Survey of Automatic Program Repair Techniques
    Jiang J.-J.
    Chen J.-J.
    Xiong Y.-F.
    Chen, Jun-Jie (junjiechen@tju.edu.cn), 1600, Chinese Academy of Sciences (32): : 2665 - 2690
  • [8] Automatic Program Repair Techniques: A Survey
    Wang Z.
    Gao J.
    Chen X.
    Fu H.-J.
    Fan X.-Y.
    Jisuanji Xuebao/Chinese Journal of Computers, 2018, 41 (03): : 588 - 610
  • [9] Modular and Verified Automatic Program Repair
    Logozzo, Francesco
    Ball, Thomas
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 133 - 145
  • [10] On The Introduction of Automatic Program Repair in Bloomberg
    Kirbas, Serkan
    Windels, Etienne
    McBello, Olayori
    Kells, Kevin
    Pagano, Matthew
    Szalanski, Rafal
    Nowack, Vesna
    Winter, Emily Rowan
    Counsell, Steve
    Bowes, David
    Hall, Tracy
    Haraldsson, Saemundur
    Woodward, John
    IEEE SOFTWARE, 2021, 38 (04) : 43 - 51