Mining software repair models for reasoning on the search space of automated program fixing

被引:115
作者
Martinez, Matias [1 ,2 ]
Monperrus, Martin [1 ,2 ]
机构
[1] Univ Lille, Lille, France
[2] INRIA, Lille, France
关键词
Mining software repositories; Automated software repair; Search-based software engineering; AGREEMENT;
D O I
10.1007/s10664-013-9282-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper is about understanding the nature of bug fixing by analyzing thousands of bug fix transactions of software repositories. It then places this learned knowledge in the context of automated program repair. We give extensive empirical results on the nature of human bug fixes at a large scale and a fine granularity with abstract syntax tree differencing. We set up mathematical reasoning on the search space of automated repair and the time to navigate through it. By applying our method on 14 repositories of Java software and 89,993 versioning transactions, we show that not all probabilistic repair models are equivalent.
引用
收藏
页码:176 / 205
页数:30
相关论文
共 40 条
[1]  
Alali A, 2008, P IEEE INT C PROGR C
[2]  
[Anonymous], P INT C TOOLS ALG CO
[3]  
[Anonymous], P INT C SOFTW ENG
[4]  
[Anonymous], 2012, MINING REPAIR ACTION
[5]  
[Anonymous], P INT C GEN PROGR CO
[6]   A Practical Guide for Using Statistical Tests to Assess Randomized Algorithms in Software Engineering [J].
Arcuri, Andrea ;
Briand, Lionel .
2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, :1-10
[7]   Evolutionary repair of faulty software [J].
Arcuri, Andrea .
APPLIED SOFT COMPUTING, 2011, 11 (04) :3494-3514
[8]   Fair and Balanced? Bias in Bug-Fix Datasets [J].
Bird, Christian ;
Bachmann, Adrian ;
Aune, Eirik ;
Duffy, John ;
Bernstein, Abraham ;
Filkov, Vladimir ;
Devanbu, Premkumar .
7TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2009, :121-130
[9]  
Bona M., 2011, WALK COMBINATORICS I
[10]  
Carzaniga A., 2010, Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, P237