Scalable and Systematic Detection of Buggy Inconsistencies in Source Code

被引:30
|
作者
Gabel, Mark [1 ]
Yang, Junfeng [2 ]
Yu, Yuan
Goldszmidt, Moises
Su, Zhendong [1 ]
机构
[1] Univ Calif Davis, Davis, CA 95616 USA
[2] Columbia Univ, New York, NY 10027 USA
关键词
Languages; Reliability; Algorithms; Experimentation;
D O I
10.1145/1932682.1869475
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software developers often duplicate source code to replicate functionality. This practice can hinder the maintenance of a software project: bugs may arise when two identical code segments are edited inconsistently. This paper presents DejaVu, a highly scalable system for detecting these general syntactic inconsistency bugs. DejaVu operates in two phases. Given a target code base, a parallel inconsistent clone analysis first enumerates all groups of source code fragments that are similar but not identical. Next, an extensible buggy change analysis framework refines these results, separating each group of inconsistent fragments into a fine-grained set of inconsistent changes and classifying each as benign or buggy. On a 75+ million line pre-production commercial code base, DejaVu executed in under five hours and produced a report of over 8,000 potential bugs. Our analysis of a sizable random sample suggests with high likelihood that at this report contains at least 2,000 true bugs and 1,000 code smells. These bugs draw from a diverse class of software defects and are often simple to correct: syntactic inconsistencies both indicate problems and suggest solutions.
引用
收藏
页码:175 / 190
页数:16
相关论文
共 50 条
  • [11] Exploring the suitability of source code metrics for indicating architectural inconsistencies
    Jörg Lenhard
    Martin Blom
    Sebastian Herold
    Software Quality Journal, 2019, 27 : 241 - 274
  • [12] Android Source Code Vulnerability Detection: A Systematic Literature Review
    Senanayake, Janaka
    Kalutarage, Harsha
    Al-Kadri, Mhd Omar
    Petrovski, Andrei
    Piras, Luca
    ACM COMPUTING SURVEYS, 2023, 55 (09)
  • [13] Improving Code Completion by Solving Data Inconsistencies in the Source Code with a Hierarchical Language Model
    Yang, Yixiao
    ELECTRONICS, 2023, 12 (07)
  • [14] CBCD: Cloned Buggy Code Detector
    Li, Jingyue
    Ernst, Michael D.
    2012 34TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2012, : 310 - 320
  • [15] Enhancing the Unified Features to Locate Buggy Files by Exploiting the Sequential Nature of Source Code
    Huo, Xuan
    Li, Ming
    PROCEEDINGS OF THE TWENTY-SIXTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE, 2017, : 1909 - 1915
  • [16] BLADE: Towards Scalable Source Code Debloating
    Ali, Muaz
    Habib, Rumaisa
    Gehani, Ashish
    Rahaman, Sazzadur
    Uzmi, Zartash
    2023 IEEE SECURE DEVELOPMENT CONFERENCE, SECDEV, 2023, : 75 - 87
  • [17] On the Characteristics of Buggy Code Clones: A Code Quality Perspective
    Islam, Md Rakibul
    Zibran, Minhaz F.
    2018 IEEE 12TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES (IWSC), 2018, : 23 - 29
  • [18] Scalable and accurate detection of code clones
    S. Sargsyan
    Sh. Kurmangaleev
    A. Belevantsev
    A. Avetisyan
    Programming and Computer Software, 2016, 42 : 27 - 33
  • [19] Scalable and Accurate Detection of Code Clones
    Sargsyan, S.
    Kurmangaleev, Sh.
    Belevantsev, A.
    Avetisyan, A.
    PROGRAMMING AND COMPUTER SOFTWARE, 2016, 42 (01) : 27 - 33
  • [20] Systematic Exhortation of Code Smell Detection Using JS']JSmell for Java']Java Source Code
    Sangeetha, M.
    Sengottuvelan, P.
    PROCEEDINGS OF THE 2017 INTERNATIONAL CONFERENCE ON INVENTIVE SYSTEMS AND CONTROL (ICISC 2017), 2017, : 384 - 388