Finding latent code errors via machine learning over program executions

被引:73
作者
Brun, Y [1 ]
Ernst, MD [1 ]
机构
[1] Univ So Calif, Lab Mol Sci, Los Angeles, CA 90089 USA
来源
ICSE 2004: 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS | 2004年
关键词
D O I
10.1109/ICSE.2004.1317470
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper proposes a technique for identifying program properties that indicate errors. The technique generates machine learning models of program properties known to result from errors, and applies these models to program properties of user-written code to classify and rank properties that may lead the user to errors. Given a set of properties produced by the program analysis, the technique selects a subset of properties that are most likely to reveal an error. An implementation, the Fault Invariant Classifier, demonstrates the efficacy of the technique. The implementation uses dynamic invariant detection to generate program properties. It uses support vector machine and decision tree learning tools to classify those properties. In our experimental evaluation, the technique increases the relevance (the concentration of fault-revealing properties) by a factor of 50 on average for the C programs, and 4.8 for the Java programs. Preliminary experience suggests that most of the fault-revealing properties do lead a programmer to an error.
引用
收藏
页码:480 / 490
页数:11
相关论文
共 26 条
[1]  
[Anonymous], 1996, ICML 96
[2]  
BRUN Y, 2003, THESIS MIT DEP EECS
[3]  
Christianini N., 2000, INTRO SUPPORT VECTOR, DOI DOI 10.1017/CBO9780511801389
[4]  
Cousot P, 1977, POPL, P238, DOI DOI 10.1145/512950.512973
[5]   Finding failures by cluster analysis of execution profiles [J].
Dickinson, W ;
Leon, D ;
Podgurski, A .
PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2001, :339-348
[6]  
Ernst M. D., 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium, P449, DOI 10.1109/ICSE.2000.870435
[7]   Dynamically discovering likely program invariants to support program evolution [J].
Ernst, MD ;
Cockrell, J ;
Griswold, WG ;
Notkin, D .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2001, 27 (02) :99-123
[8]   An empirical study of regression test selection techniques [J].
Graves, TL ;
Harrold, MJ ;
Kim, JM ;
Porter, A ;
Rothermel, G .
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2001, 10 (02) :184-208
[9]  
Groce A, 2003, LECT NOTES COMPUT SC, V2648, P121
[10]  
Hangal S, 2002, ICSE 2002: PROCEEDINGS OF THE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, P291, DOI 10.1109/ICSE.2002.1007976