Automated Fixing of Programs with Contracts

被引:159
|
作者
Pei, Yu [1 ]
Furia, Carlo A. [1 ]
Nordio, Martin [1 ]
Wei, Yi [2 ]
Meyer, Bertrand [1 ]
Zeller, Andreas [3 ]
机构
[1] Swiss Fed Inst Technol, Chair Software Engn, Dept Comp Sci, Zurich, Switzerland
[2] Microsoft Res Cambridge, Constraint Reasoning Grp, Cambridge, England
[3] Univ Saarland, Software Engn Chair, D-66123 Saarbrucken, Germany
基金
瑞士国家科学基金会;
关键词
Automatic program repair; contracts; dynamic analysis; TEST-DRIVEN DEVELOPMENT; QUALITY; REPAIR; ERRORS;
D O I
10.1109/TSE.2014.2312918
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper describes AutoFix, an automatic debugging technique that can fix faults in general-purpose software. To provide high-quality fix suggestions and to enable automation of the whole debugging process, AutoFix relies on the presence of simple specification elements in the form of contracts (such as pre- and postconditions). Using contracts enhances the precision of dynamic analysis techniques for fault detection and localization, and for validating fixes. The only required user input to the AutoFix supporting tool is then a faulty program annotated with contracts; the tool produces a collection of validated fixes for the fault ranked according to an estimate of their suitability. In an extensive experimental evaluation, we applied AutoFix to over 200 faults in four code bases of different maturity and quality (of implementation and of contracts). AutoFix successfully fixed 42 percent of the faults, producing, in the majority of cases, corrections of quality comparable to those competent programmers would write; the used computational resources were modest, with an average time per fix below 20 minutes on commodity hardware. These figures compare favorably to the state of the art in automated program fixing, and demonstrate that the AutoFix approach is successfully applicable to reduce the debugging burden in real-world scenarios.
引用
收藏
页码:427 / 449
页数:23
相关论文
共 50 条
  • [1] FIXING UNFAIR CONTRACTS
    Ben-Shahar, Omri
    STANFORD LAW REVIEW, 2011, 63 (04) : 869 - 906
  • [2] Price Fixing Clauses In Contracts
    Cullen, Daniel G.
    JOURNAL OF THE PATENT OFFICE SOCIETY, 1945, 27 (05): : 328 - 330
  • [3] Testing, Fixing, and Proving with Contracts
    Furia, Carlo A.
    TESTS AND PROOFS, TAP 2015, 2015, 9154 : XIII - XV
  • [4] Fixing Standard-Form Contracts
    Levy, Shirly
    UNIVERSITY OF CINCINNATI LAW REVIEW, 2023, 91 (03) : 789 - 827
  • [5] Automatic Program Repair by Fixing Contracts
    Pei, Yu
    Furia, Carlo A.
    Nordio, Martin
    Meyer, Bertrand
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2014, 2014, 8411 : 246 - 260
  • [6] AUTOMATED POSITION FIXING
    PASQUE, G
    GOODFELLOW, D
    SEA TECHNOLOGY, 1981, 22 (03) : 40 - 41
  • [7] Collapsible Contracts: Fixing a Pathology of Gradual Typing
    Feltey, Daniel
    Greenman, Ben
    Scholliers, Christophe
    Findler, Robert Bruce
    St-Amour, Vincent
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [8] AutoFix: An Automated Approach to Memory Leak Fixing on Value-Flow Slices for C Programs
    Yan, Hua
    Sui, Yulei
    Chen, Shiping
    Xue, Jingling
    APPLIED COMPUTING REVIEW, 2016, 16 (04): : 38 - 50
  • [9] PRICE FIXING IN COPPER CONTRACTS BETWEEN PRODUCERS AND MANUFACTURERS
    WISSEL, R
    METALL, 1978, 32 (11): : 1166 - 1167
  • [10] Automated negotiation of privacy contracts
    Maaser, M
    Langendoerfer, P
    Proceedings of the 29th Annual International Computer Software and Applications Conference, 2005, : 505 - 510