arrow
Return

Program Repair With Repeated Learning

delete2023-02-01
delete4
PRE
AI
L
Liushan Chen
Y
Yu Pei *
M
Minxue Pan
T
Tian Zhang
W
Wang, Qixin
C
Carlo A. Furia
DOI:10.1109/TSE.2022.3164662delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
A key challenge in generate-and-validate automated program repair is directing the search for fixes so that it can efficiently find those that are more likely to be correct. To this end, several techniques use machine learning to capture the features of programmer-written fixes. In existing approaches, fitting the model typically takes place before fix generation and is independent of it: the fix generation process uses the learned model as one of its inputs. However, the intermediate outcomes of an ongoing fix generation process often provide valuable information about which candidate fixes were better; this information could profitably be used to retrain the model, so that each new iteration of the fixing process would also learn from the outcome of previous ones. In this paper, we propose the LIANA technique for automated program repair, which is based on this idea of repeatedly learning the features of generated fixes. To this end, LIANA uses a fine-grained model that combines information about fix characteristics, their relations to the fixing context, and the results of test execution. The model is initially trained offline, and then repeatedly updated online as the fix generation process unravels; at any step, the most up-to-date model is used to guide the search for fixes-prioritizing those that are more likely to include the right ingredients. In an experimental evaluation on 732 real-world Java bugs from 3 popular benchmarks, LIANA built correct fixes for 134 faults ( 83 ranked as first in its output)- improving over several other generate-and-validate program repair tools according to various measures.
Keywords:
Automated program repair (APR)
generate-and-validate APR
learning-to-rank
repeated learning

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.8K
Citations:
1.1W

Organization

U
Universita della Svizzera Italiana
Scholars:
3.3K
Papers: 2.8K
Citations: 3
H
hong kong polytechnic university
Scholars:
3.0W
Papers: 4.1W
Citations: 921
N
nanjing university
Scholars:
7.7W
Papers: 5.6W
Citations: 87
researcher View more organizations