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 条
  • [41] Source code and design conformance, design pattern detection from source code by classification approach
    Chihada, Abdullah
    Jalili, Saeed
    Hasheminejad, Seyed Mohammad Hossein
    Zangooei, Mohammad Hossein
    APPLIED SOFT COMPUTING, 2015, 26 : 357 - 367
  • [42] Source code plagiarism detection: The Unix way
    Petrik, Juraj
    Chuda, Daniela
    Steinmuller, Branislav
    2017 IEEE 15TH INTERNATIONAL SYMPOSIUM ON APPLIED MACHINE INTELLIGENCE AND INFORMATICS (SAMI), 2017, : 467 - 471
  • [43] An Assessment of Vulnerable Detection Source Code Tools
    Verma, Anoop Kumar
    Sharma, Aman Kumar
    SOFTWARE ENGINEERING (CSI 2015), 2019, 731 : 403 - 412
  • [44] Bug detection in source code in process monitoring
    Liu, Ying
    Zhang, Lingling
    Zhang, Yuehua
    Shi, Yong
    Journal of Computational Information Systems, 2012, 8 (02): : 591 - 601
  • [45] Detection of code index in turbo source coding
    Haghighat, J
    Soleymani, MR
    Hamouda, W
    GLOBECOM '05: IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, VOLS 1-6: DISCOVERY PAST AND FUTURE, 2005, : 1397 - 1401
  • [46] Java']Java Source Code Defect Detection
    Zhu, Hong
    Jin, Dahai
    2015 8TH INTERNATIONAL CONFERENCE ON BIOMEDICAL ENGINEERING AND INFORMATICS (BMEI), 2015, : 695 - 699
  • [47] A Source Code Similarity System for Plagiarism Detection
    Duric, Zoran
    Gasevic, Dragan
    COMPUTER JOURNAL, 2013, 56 (01): : 70 - 86
  • [48] A State of Art on Source Code Plagiarism Detection
    Agrawal, Mayank
    Sharma, Dilip Kumar
    PROCEEDINGS ON 2016 2ND INTERNATIONAL CONFERENCE ON NEXT GENERATION COMPUTING TECHNOLOGIES (NGCT), 2016, : 236 - 241
  • [49] Detection of Source Code Similitude in Academic Environments
    Bejarano, Andres M.
    Garcia, Lucy E.
    Zurek, Eduardo E.
    COMPUTER APPLICATIONS IN ENGINEERING EDUCATION, 2015, 23 (01) : 13 - 22
  • [50] A Systematic Literature Review: Code Bad Smells in Java']Java Source Code
    Gupta, Aakanshi
    Suri, Bharti
    Misra, Sanjay
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2017, PT V, 2017, 10408 : 665 - 682