arrow
返回

Human-in-the-Loop Automatic Program Repair

delete2023-10-01
delete0
delete
OA
AI
C
Charaka Geethal *
M
Marcel Böhme
V
Van-Thuan Pham
DOI:10.1109/TSE.2023.3305052delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
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.
Keyword:
Automated test oracles
semi-automatic program repair
classification algorithms
active machine learning

期刊

IEEE Transactions on Software Engineering 封面图
IEEE Transactions on Software Engineering
IF:
5.6
论文数:
2.9K
被引数:
1.1W

机构

M
Monash University
学者数:
5.4W
论文数: 5.4W
被引数: 79
U
university of melbourne
学者数:
5.7W
论文数: 5.4W
被引数: 69
引用论文

引用论文

err分享
err收藏
err分享
err收藏
Cysteine Dioxygenase 1 Is a Tumor Suppressor Gene Silenced by Promoter Methylation in Multiple Human Cancers半胱氨酸双加氧酶1是一种在多种人类癌症中被启动子甲基化沉默的抑癌基因
err2012-09-27
err0
errOAAI
errMariana Brait; Shizhang Ling; Jatin K. Nagpal; Xiaofei Chang; Hannah Lui Park; Juna Lee; Jun Okamura; Keishi Yamashita; David Sidransky; Myoung Sook Kim
err分享
err收藏
Ebola virus sequencing protocol v1
err
IF0
err2019-09-25
err0
errOAAI
errJosh Quick
err分享
err收藏
An automated framework for software test oracleoracle软件测试自动化框架
err2011-07-01
err44
PREAI
errShahamiri, Seyed Reza; Kadir, Wan Mohd Nasir Wan; Ibrahim, Suhaimi; Hashim, Siti Zaiton Mohd
err分享
err收藏
The Art, Science, and Engineering of Fuzzing: A Survey模糊测试的艺术,科学和工程: 一项调查
err2021-11-01
err306
errOAAI
errManes, Valentin J. M.; Han, HyungSeok; Han, Choongwoo; Cha, Sang Kil; Egele, Manuel; Schwartz, Edward J.; Woo, Maverick
err分享
err收藏
学者 查看更多内容