Code-line-level Bugginess Identification: How Far haveWe Come, and How Far haveWe Yet to Go?

被引:5
作者
Guo, Zhaoqiang [1 ,2 ]
Liu, Shiran [1 ]
Liu, Xutong [1 ]
Lai, Wei [1 ]
Ma, Mingliang [1 ]
Zhang, Xu [3 ]
Ni, Chao [4 ]
Yang, Yibiao [1 ]
Li, Yanhui [1 ]
Chen, Lin [1 ]
Zhou, Guoqiang [5 ]
Zhou, Yuming [1 ]
机构
[1] Nanjing Univ, State Key Lab Novel Software Technol, Nanjing, Jiangsu, Peoples R China
[2] Huawei Technol Co Ltd, Hangzhou, Peoples R China
[3] Beijing Bytedance Network Technol Co Ltd, Beijing, Peoples R China
[4] Zhejiang Univ, Ningbo, Zhejiang, Peoples R China
[5] Nanjing Univ Posts & Telecommunicat, Nanjing, Jiangsu, Peoples R China
基金
中国国家自然科学基金;
关键词
Code line; bugginess; defect prediction; quality assurance; static analysis tool; SOFTWARE DEFECT PREDICTION; FAULT PREDICTION; LOCALIZATION; METRICS;
D O I
10.1145/3582572
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Background. Code-line-level bugginess identification (CLBI) is a vital technique that can facilitate developers to identify buggy lines without expending a large amount of human effort. Most of the existing studies tried to mine the characteristics of source codes to train supervised prediction models, which have been reported to be able to discriminate buggy code lines amongst others in a target program. Problem. However, several simple and clear code characteristics, such as complexity of code lines, have been disregarded in the current literature. Such characteristics can be acquired and applied easily in an unsupervised way to conduct more accurate CLBI, which also can decrease the application cost of existing CLBI approaches by a large margin. Objective. We aim at investigating the status quo in the field of CLBI from the perspective of (1) how far we have really come in the literature, and (2) how far we have yet to go in the industry, by analyzing the performance of state-of-the-art (SOTA) CLBI approaches and tools, respectively. Method. We propose a simple heuristic baseline solution GLANCE (aiminG at controL- ANd ComplEx-statements) with three implementations (i.e., GLANCE-MD, GLANCE-EA, and GLANCE-LR). GLANCE is a two-stage CLBI framework: first, use a simple model to predict the potentially defective files; second, leverage simple code characteristics to identify buggy code lines in the predicted defective files. We use GLANCE as the baseline to investigate the effectiveness of the SOTA CLBI approaches, including natural language processing (NLP) based, model interpretation techniques (MIT) based, and popular static analysis tools (SAT). Result. Based on 19 open-source projects with 142 different releases, the experimental results show that GLANCE framework has a prediction performance comparable or even superior to the existing SOTA CLBI approaches and tools in terms of 8 different performance indicators. Conclusion. The results caution us that, if the identification performance is the goal, the real progress in CLBI is not being achieved as it might have been envisaged in the literature and there is still a long way to go to really promote the effectiveness of static analysis tools in industry. In addition, we suggest using GLANCE as a baseline in future studies to demonstrate the usefulness of any newly proposed CLBI approach.
引用
收藏
页数:55
相关论文
共 88 条
  • [1] How to "DODGE" Complex Software Analytics
    Agrawal, Amritanshu
    Fu, Wei
    Chen, Di
    Shen, Xipeng
    Menzies, Tim
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 47 (10) : 2182 - 2194
  • [2] Aman Hirohisa, 2019, P BIG DATA CLOUD COM, P69
  • [3] Software defect prediction using cost-sensitive neural network
    Arar, Omer Faruk
    Ayan, Kursat
    [J]. APPLIED SOFT COMPUTING, 2015, 33 : 263 - 277
  • [4] A validation of object-oriented design metrics as quality indicators
    Basili, VR
    Briand, LC
    Melo, WL
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1996, 22 (10) : 751 - 761
  • [5] Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software
    Beller, Moritz
    Bholanath, Radjino
    McIntosh, Shane
    Zaidman, Andy
    [J]. 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, : 470 - 481
  • [6] CONTROLLING THE FALSE DISCOVERY RATE - A PRACTICAL AND POWERFUL APPROACH TO MULTIPLE TESTING
    BENJAMINI, Y
    HOCHBERG, Y
    [J]. JOURNAL OF THE ROYAL STATISTICAL SOCIETY SERIES B-STATISTICAL METHODOLOGY, 1995, 57 (01) : 289 - 300
  • [7] NAR-Miner: Discovering Negative Association Rules from Code for Bug Detection
    Bian, Pan
    Liang, Bin
    Shi, Wenchang
    Huang, Jianjun
    Cai, Yan
    [J]. ESEC/FSE'18: PROCEEDINGS OF THE 2018 26TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2018, : 411 - 422
  • [8] BugDet, 2022, DAT SCRIPTS
  • [9] Campbell J. C., 2014, P 11 WORKING C MININ, P252
  • [10] "Sampling" as a Baseline Optimizer for Search-Based Software Engineering
    Chen, Jianfeng
    Nair, Vivek
    Krishna, Rahul
    Menzies, Tim
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2019, 45 (06) : 597 - 614