To what extent could we detect field defects? An extended empirical study of false negatives in static bug-finding tools

被引:19
作者
Thung, Ferdian [1 ]
Lucia [1 ]
Lo, David [1 ]
Jiang, Lingxiao [1 ]
Rahman, Foyzur [2 ]
Devanbu, Premkumar T. [2 ]
机构
[1] Singapore Management Univ, Sch Informat Syst, Singapore 178902, Singapore
[2] Univ Calif Davis, Davis, CA 95616 USA
关键词
False negatives; Static bug-finding tools; Empirical study; FRAMEWORK;
D O I
10.1007/s10515-014-0169-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software defects can cause much loss. Static bug-finding tools are designed to detect and remove software defects and believed to be effective. However, do such tools in fact help prevent actual defects that occur in the field and reported by users? If these tools had been used, would they have detected these field defects, and generated warnings that would direct programmers to fix them? To answer these questions, we perform an empirical study that investigates the effectiveness of five state-of-the-art static bug-finding tools (FindBugs, JLint, PMD, CheckStyle, and JCSC) on hundreds of reported and fixed defects extracted from three open source programs (Lucene, Rhino, and AspectJ). Our study addresses the question: To what extent could field defects be detected by state-of-the-art static bug-finding tools? Different from past studies that are concerned with the numbers of false positives produced by such tools, we address an orthogonal issue on the numbers of false negatives. We find that although many field defects could be detected by static bug-finding tools, a substantial proportion of defects could not be flagged. We also analyze the types of tool warnings that are more effective in finding field defects and characterize the types of missed defects. Furthermore, we analyze the effectiveness of the tools in finding field defects of various severities, difficulties, and types.
引用
收藏
页码:561 / 602
页数:42
相关论文
共 55 条
[1]  
[Anonymous], 2002, 0232002 NAT I STAND
[2]  
[Anonymous], P 20 WORK C REV ENG
[3]  
[Anonymous], 2010, ISSTA ACM
[4]  
[Anonymous], 2010, P 32 ACMIEEE INT C S
[5]  
Anvik J., 2006, P 28 INT C SOFTWARE, P361, DOI DOI 10.1145/1134285.1134336
[6]  
Artho C, 2006, JLINT FIND BUGS JAVA
[7]  
Ayewah N., 2010, P 19 INT S SOFTW TES, P241, DOI DOI 10.1145/1831708.1831738
[8]   Evaluating Static Analysis Defect Warnings On Production Software [J].
Ayewah, Nathaniel ;
Pugh, William ;
Morgenthaler, J. David ;
Penix, John ;
Zhou, YuQian .
PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, :1-+
[9]   Using static analysis to find bugs [J].
Ayewah, Nathaniel ;
Pugh, William ;
Hovemeyer, David ;
Morgenthaler, J. David ;
Penix, John .
IEEE SOFTWARE, 2008, 25 (05) :22-29
[10]   A Decade of Software Model Checking with SLAM [J].
Ball, Thomas ;
Levin, Vladimir ;
Rajamani, Sriram K. .
COMMUNICATIONS OF THE ACM, 2011, 54 (07) :68-76