Human-in-the-Loop Automatic Program Repair

被引:1
|
作者
Geethal, Charaka [1 ,2 ]
Bohme, Marcel [3 ]
Pham, Van-Thuan [4 ]
机构
[1] Monash Univ, Clayton, Vic 3800, Australia
[2] Univ Ruhuna, Fac Sci, Dept Comp Sci, Matara 81000, Sri Lanka
[3] Max Planck Inst Secur & Privacy, D-44799 Bochum, Germany
[4] Univ Melbourne, Carlton, Vic 3053, Australia
关键词
Automated test oracles; semi-automatic program repair; classification algorithms; active machine learning; GENERATION;
D O I
10.1109/TSE.2023.3305052
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
learn2fix is a human-in-the-loop interactive program repair technique, which can be applied when no bug oracle-except the user who is reporting the bug-is available. This approach incrementally learns the condition under which the bug is observed by systematic negotiation with the user. In this process, learn2fix generates alternative test inputs and sends some of those to the user for obtaining their labels. A limited query budget is assigned to the user for this task. A query is a Yes/No question: "When executing this alternative test input, the program under test produces the following output; is the bug observed?". Using the labelled test inputs, learn2fix incrementally learns an automatic bug oracle to predict the user's response. A classification algorithm in machine learning is used for this task. Our key challenge is to maximise the oracle's accuracy in predicting the tests that expose the bug given a practical, small budget of queries. After learning the automatic oracle, an existing program repair tool attempts to repair the bug using the alternative tests that the user has labelled. Our experiments demonstrate that learn2fix trains a sufficiently accurate automatic oracle with a reasonably low labelling effort (lt. 20 queries), and the oracles represented by interpolation-based classifiers produce more accurate predictions than those represented by approximation-based classifiers. Given the user-labelled test inputs, generated using the interpolation-based approach, the GenProg and Angelix automatic program repair tools produce patches that pass a much larger proportion of validation tests than the manually constructed test suites provided by the repair benchmark.
引用
收藏
页码:4526 / 4549
页数:24
相关论文
共 50 条
  • [21] Priority Measurement of Patches for Program Repair Based on Semantic Distance
    Dong, Yukun
    Wu, Meng
    Zhang, Li
    Yin, Wenjing
    Wu, Mengying
    Li, Haojie
    SYMMETRY-BASEL, 2020, 12 (12): : 1 - 17
  • [22] Connectivity Calculation-Based Automatic Synthesis of Planar Multi-Loop Mechanisms
    Huang, Peng
    Ding, Huafeng
    Yang, Wenjian
    Xu, Gongyue
    JOURNAL OF MECHANISMS AND ROBOTICS-TRANSACTIONS OF THE ASME, 2021, 13 (04):
  • [23] VarFix: Balancing Edit Expressiveness and Search Effectiveness in Automated Program Repair
    Wong, Chu-Pan
    Santiesteban, Priscila
    Kastner, Christian
    Le Goues, Claire
    PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21), 2021, : 354 - 366
  • [24] SOSRepair: Expressive Semantic Search for Real-World Program Repair
    Afzal, Afsoon
    Motwani, Manish
    Stolee, Kathryn T.
    Brun, Yuriy
    Le Goues, Claire
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 47 (10) : 2162 - 2181
  • [25] Automated Program Repair for Introductory Programming Assignments via Bidirectional Refactoring
    Xie, Linna
    Li, Chongmin
    Pei, Yu
    Zhang, Tian
    Pan, Minxue
    2024 ACM/IEEE INTERNATIONAL WORKSHOP ON AUTOMATED PROGRAM REPAIR, APR 2024, 2024, : 53 - 55
  • [26] E-APR: Mapping the effectiveness of automated program repair techniques
    Aleti, Aldeida
    Martinez, Matias
    EMPIRICAL SOFTWARE ENGINEERING, 2021, 26 (05)
  • [27] Is the Ground Truth Really Accurate? Dataset Purification for Automated Program Repair
    Yang, Deheng
    Lei, Yan
    Mao, Xiaoguang
    Lo, David
    Xie, Huan
    Yan, Meng
    2021 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2021), 2021, : 96 - 107
  • [28] carlomat, version 2 of the program for automatic computation of lowest order cross sections
    Kolodziej, Karol
    COMPUTER PHYSICS COMMUNICATIONS, 2014, 185 (01) : 323 - 329
  • [29] Automatic modeling and simulation of robot program behavior in integrated virtual preparation and commissioning
    Dahl, M.
    Bengtsson, K.
    Fabian, M.
    Falkman, P.
    27TH INTERNATIONAL CONFERENCE ON FLEXIBLE AUTOMATION AND INTELLIGENT MANUFACTURING, FAIM2017, 2017, 11 : 284 - 291
  • [30] Poracle: Testing Patches under Preservation Conditions to Combat the Overfitting Problem of Program Repair
    Ismayilzada, Elkhan
    Rahman, Md Mazba Ur
    Kim, Dongsun
    Yi, Jooyong
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2024, 33 (02)