An empirical study on bug severity estimation using source code metrics and static analysis

被引:0
|
作者
Mashhadi, Ehsan [1 ]
Chowdhury, Shaiful [2 ]
Modaberi, Somayeh [1 ]
Hemmati, Hadi [1 ,3 ]
Uddin, Gias [1 ]
机构
[1] Univ Calgary, Calgary, AB, Canada
[2] Univ Manitoba, Winnipeg, MB, Canada
[3] York Univ, Toronto, ON, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Bug severity; Defect prediction; Code complexity metrics; Static analysis tools; SOFTWARE; COMPLEXITY; MAINTENANCE; PREDICTION; SMELLS;
D O I
10.1016/j.jss.2024.112179
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In the past couple of decades, significant research efforts have been devoted to the prediction of software bugs (i.e., defects). In general, these works leverage a diverse set of metrics, tools, and techniques to predict which classes, methods, lines, or commits are buggy. However, most existing work in this domain treats all bugs the same, which is not the case in practice. The more severe the bugs the higher their consequences. Therefore, it is important for a defect prediction method to estimate the severity of the identified bugs, so that the higher severity ones get immediate attention. In this paper, we provide a quantitative and qualitative study on two popular datasets (Defects4J and Bugs.jar), using 10 common source code metrics, and two popular static analysis tools (SpotBugs and Infer) for analyzing their capability to predict defects and their severity. We studied 3,358 buggy methods with different severity labels from 19 Java open-source projects. Results show that although code metrics are useful in predicting buggy code (Lines of the Code, Maintainable Index, FanOut, and Effort metrics are the best), they cannot estimate the severity level of the bugs. In addition, we observed that static analysis tools have weak performance in both predicting bugs (F1 score range of 3.1%-7.1%) and their severity label (F1 score under 2%). We also manually studied the characteristics of the severe bugs to identify possible reasons behind the weak performance of code metrics and static analysis tools in estimating their severity. Also, our categorization shows that Security bugs have high severity in most cases while Edge/Boundary faults have low severity. Finally, we discuss the practical implications of the results and propose new directions for future research.
引用
收藏
页数:23
相关论文
共 50 条
  • [21] Bug Propagation through Code Cloning: An Empirical Study
    Mondal, Manishankar
    Roy, Chanchal K.
    Schneider, Kevin A.
    2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2017, : 227 - 237
  • [22] Providing test quality feedback using static source code and automatic test suite metrics
    Nagappan, Nachiappan
    Williams, Laurie
    Osborne, Jason
    Vouk, Mladen
    Abrahamsson, Pekka
    16TH IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING, PROCEEDINGS, 2005, : 85 - 94
  • [23] Using Software Engineering Metrics to Evaluate the Quality of Static Code Analysis Tools
    Alikhashashneh, Enas A.
    Raje, Rajeev R.
    Hill, James H.
    2018 1ST INTERNATIONAL CONFERENCE ON DATA INTELLIGENCE AND SECURITY (ICDIS 2018), 2018, : 65 - 72
  • [24] Bug Localization Model in Source Code Using Ontologies
    Da Silva, Alisson Solitto
    Garcia, Rogerio Eduardo
    Botega, Leonardo Castro
    IEEE ACCESS, 2023, 11 : 98542 - 98557
  • [25] FACTOR-ANALYSIS OF SOURCE CODE METRICS
    COUPAL, D
    ROBILLARD, PN
    JOURNAL OF SYSTEMS AND SOFTWARE, 1990, 12 (03) : 263 - 269
  • [26] An empirical study of source code detection using image classification
    Hong, Juntong
    Mizuno, Osamu
    Kondo, Masanari
    2019 10TH INTERNATIONAL WORKSHOP ON EMPIRICAL SOFTWARE ENGINEERING IN PRACTICE (IWESEP 2019), 2019, : 1 - 6
  • [27] Static source code metrics and static analysis warnings for fine-grained just-in-time defect prediction
    Trautsch, Alexander
    Herbold, Steffen
    Grabowski, Jens
    2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2020), 2020, : 127 - 138
  • [28] Source Code Metrics and Maintainability: A Case Study
    Hegedus, Peter
    Bakota, Tibor
    Illes, Laszlo
    Ladanyi, Gergely
    Ferenc, Rudolf
    Gyimothy, Tibor
    SOFTWARE ENGINEERING, BUSINESS CONTINUITY, AND EDUCATION, 2011, 257 : 272 - +
  • [29] ON THE APPLICATION OF STATIC CODE ANALYSIS TOOLS IN THE SERBIAN IT INDUSTRY: AN EMPIRICAL STUDY
    Komosar, Aleksa
    Kijanovic, Sara
    Mandic, Vladimir
    Nikolic, Danilo
    Vuckovic, Teodora
    Proceedings of the 17th IADIS International Conference Information Systems 2024, IS 2024, 2024, : 53 - 60
  • [30] Source code metrics and maintainability: A case study
    University of Szeged, Department of Software Engineering, Árpád tér 2, H-6720 Szeged, Hungary
    不详
    Commun. Comput. Info. Sci., (272-284):