How Many of All Bugs Do We Find? A Study of Static Bug Detectors

被引:61
|
作者
Habib, Andrew [1 ]
Pradel, Michael [1 ]
机构
[1] Tech Univ Darmstadt, Dept Comp Sci, Darmstadt, Germany
关键词
static bug checkers; bug finding; static analysis; Defects4J;
D O I
10.1145/3238147.3238213
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Static bug detectors are becoming increasingly popular and are widely used by professional software developers. While most work on bug detectors focuses on whether they find bugs at all, and on how many false positives they report in addition to legitimate warnings, the inverse question is often neglected: How many of all real-world bugs do static bug detectors find? This paper addresses this question by studying the results of applying three widely used static bug detectors to an extended version of the Defects4J dataset that consists of 15 Java projects with 594 known bugs. To decide which of these bugs the tools detect, we use a novel methodology that combines an automatic analysis of warnings and bugs with a manual validation of each candidate of a detected bug. The results of the study show that: (i) static bug detectors find a non-negligible amount of all bugs, (ii) different tools are mostly complementary to each other, and (iii) current bug detectors miss the large majority of the studied bugs. A detailed analysis of bugs missed by the static detectors shows that some bugs could have been found by variants of the existing detectors, while others are domain-specific problems that do not match any existing bug pattern. These findings help potential users of such tools to assess their utility, motivate and outline directions for future work on static bug detection, and provide a basis for future comparisons of static bug detection with other bug finding techniques, such as manual and automated testing.
引用
收藏
页码:317 / 328
页数:12
相关论文
共 50 条
  • [1] Find Bugs in Static Bug Finders
    Wang, Junjie
    Huang, Yuchao
    Wang, Song
    Wang, Qing
    30TH IEEE/ACM INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2022), 2022, : 516 - 527
  • [2] A Replicated Study on Random Test Case Generation and Manual Unit Testing: How Many Bugs Do Professional Developers Find?
    Ramler, Rudolf
    Wolfmair, Klaus
    Kopetzky, Theodorich
    2013 IEEE 37TH ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC), 2013, : 484 - 491
  • [3] HOW DO METAL DETECTORS FIND GUNS
    不详
    SCIENCE DIGEST, 1984, 92 (08) : 76 - 76
  • [4] How do we find 'em?
    Kerr, E
    LIBRARY JOURNAL, 1998, 123 (06) : 8 - 8
  • [5] Stripping flow cytometry: How many detectors do we need for bacterial identification?
    Rubbens, Peter
    Props, Ruben
    Garcia-Timermans, Cristina
    Boon, Nico
    Waegeman, Willem
    CYTOMETRY PART A, 2017, 91A (12) : 1184 - 1191
  • [6] How do we find a true gypsophile?
    Drohan, P. J.
    Merkler, D. J.
    GEODERMA, 2009, 150 (1-2) : 96 - 105
  • [7] Anterolateral Ligament: How Do We Find It?
    Verma, Nikhil N.
    ARTHROSCOPY-THE JOURNAL OF ARTHROSCOPIC AND RELATED SURGERY, 2016, 32 (01): : 127 - 127
  • [8] How Many Do We Need?
    Hillman, Bruce J.
    JOURNAL OF THE AMERICAN COLLEGE OF RADIOLOGY, 2010, 7 (05) : 321 - 321
  • [9] GENETICS OF ALCOHOLISM - HOW DO WE FIND THE ANSWERS AND WHAT DO WE DO THEN
    DEITRICH, RA
    ALCOHOL AND ALCOHOLISM, 1990, 25 (05): : 571 - 572
  • [10] Evidence: What is it, where do we find it, and how do we use it?
    Gillenwater, JY
    Gray, M
    EUROPEAN UROLOGY SUPPLEMENTS, 2003, 2 (05) : 3 - 9