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 条
  • [1] A survey of human-in-the-loop for machine learning
    Wu, Xingjiao
    Xiao, Luwei
    Sun, Yixuan
    Zhang, Junhang
    Ma, Tianlong
    He, Liang
    FUTURE GENERATION COMPUTER SYSTEMS-THE INTERNATIONAL JOURNAL OF ESCIENCE, 2022, 135 : 364 - 381
  • [2] A Comparative Study of Automatic Program Repair Techniques for Security Vulnerabilities
    Pinconschi, Eduard
    Abreu, Rui
    Adao, Pedro
    2021 IEEE 32ND INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE 2021), 2021, : 196 - 207
  • [3] NANO: Nested Human-in-the-Loop Reward Learning for Few-shot Language Model Control
    Fan, Xiang
    Lyu, Yiwei
    Liang, Paul Pu
    Salakhutdinov, Ruslan
    Morency, Louis-Philippe
    FINDINGS OF THE ASSOCIATION FOR COMPUTATIONAL LINGUISTICS (ACL 2023), 2023, : 11970 - 11992
  • [4] Maestro: A Platform for Benchmarking Automatic Program Repair Tools on Software Vulnerabilities
    Pinconschi, Eduard
    Bui, Quang-Cuong
    Abreu, Rui
    Adao, Pedro
    Scandariato, Riccardo
    PROCEEDINGS OF THE 31ST ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2022, 2022, : 789 - 792
  • [5] Better Automatic Program Repair by Using Bug Reports and Tests Together
    Motwani, Manish
    Brun, Yuriy
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 1225 - 1237
  • [6] Human-in-the-loop development of spatially adaptive ground point filtering pipelines-An archaeological case study
    Doneus, Michael
    Hoefle, Bernhard
    Kempf, Dominic
    Daskalakis, Gwydion
    Shinoto, Maria
    ARCHAEOLOGICAL PROSPECTION, 2022, 29 (04) : 503 - 524
  • [7] Evolutionary Testing for Program Repair
    Ruan, Haifeng
    Hoang Lam Nguyen
    Shariffdeen, Ridwan
    Noller, Yannic
    Roychoudhury, Abhik
    2024 IEEE CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION, ICST 2024, 2024, : 105 - 116
  • [8] Program Repair With Repeated Learning
    Chen, Liushan
    Pei, Yu
    Pan, Minxue
    Zhang, Tian
    Wang, Qixin
    Furia, Carlo A.
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (02) : 831 - 848
  • [9] A Critical Review of "Automatic Patch Generation Learned from Human-Written Patches": Essay on the Problem Statement and the Evaluation of Automatic Software Repair
    Monperrus, Martin
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, : 234 - 242
  • [10] Automated Program Repair for Introductory Programming Assignments
    Wan, Han
    Luo, Hongzhen
    Li, Mengying
    Luo, Xiaoyan
    IEEE TRANSACTIONS ON LEARNING TECHNOLOGIES, 2024, 17 : 1745 - 1760