Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software

被引:132
|
作者
Beller, Moritz [1 ]
Bholanath, Radjino [1 ]
McIntosh, Shane [2 ]
Zaidman, Andy [1 ]
机构
[1] Delft Univ Technol, NL-2600 AA Delft, Netherlands
[2] McGill Univ, Montreal, PQ H3A 2T5, Canada
关键词
D O I
10.1109/SANER.2016.105
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The use of automatic static analysis has been a software engineering best practice for decades. However, we still do not know a lot about its use in real-world software projects: How prevalent is the use of Automated Static Analysis Tools (ASATs) such as FindBugs and JSHint? How do developers use these tools, and how does their use evolve over time? We research these questions in two studies on nine different ASATs for Java, JavaScript, Ruby, and Python with a population of 122 and 168,214 open-source projects. To compare warnings across the ASATs, we introduce the General Defect Classification (GDC) and provide a grounded-theory-derived mapping of 1,825 ASAT-specific warnings to 16 top-level GDC classes. Our results show that ASAT use is widespread, but not ubiquitous, and that projects typically do not enforce a strict policy on ASAT use. Most ASAT configurations deviate slightly from the default, but hardly any introduce new custom analyses. Only a very small set of default ASAT analyses is widely changed. Finally, most ASAT configurations, once introduced, never change. If they do, the changes are small and have a tendency to occur within one day of the configuration's initial introduction.
引用
收藏
页码:470 / 481
页数:12
相关论文
共 50 条
  • [1] Adaptation of large-scale open source software - An experience report
    Pizka, M
    [J]. CSMR 2004: EIGHTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2004, : 147 - 153
  • [2] Software evolution in open source projects - a large-scale investigation
    Koch, Stefan
    [J]. JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2007, 19 (06): : 361 - 382
  • [3] Analyzing the evolution of large-scale software
    Mens, T
    Ramil, JF
    Godfrey, MW
    [J]. JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2004, 16 (06): : 363 - 365
  • [4] MapQuant: Open-source software for large-scale protein quantification
    Leptos, KC
    Sarracino, DA
    Jaffe, JD
    Krastins, B
    Church, GM
    [J]. PROTEOMICS, 2006, 6 (06) : 1770 - 1782
  • [5] Free and Open Source Software organizations: A large-scale analysis of code, comments, and commits frequency
    Chelkowski, Tadeusz
    Jemielniak, Dariusz
    Macikowski, Kacper
    [J]. PLOS ONE, 2021, 16 (09):
  • [6] A large-scale empirical exploration on refactoring activities in open source software projects
    Vassallo, Carmine
    Grano, Giovanni
    Palomba, Fabio
    Gall, Harald C.
    Bacchelli, Alberto
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2019, 180 : 1 - 15
  • [7] A large-scale study of architectural evolution in open-source software systems
    Pooyan Behnamghader
    Duc Minh Le
    Joshua Garcia
    Daniel Link
    Arman Shahbazian
    Nenad Medvidovic
    [J]. Empirical Software Engineering, 2017, 22 : 1146 - 1193
  • [8] A large-scale study of architectural evolution in open-source software systems
    Behnamghader, Pooyan
    Duc Minh Le
    Garcia, Joshua
    Link, Daniel
    Shahbazian, Arman
    Medvidovic, Nenad
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2017, 22 (03) : 1146 - 1193
  • [9] From Aristotle to Ringelmann: a large-scale analysis of team productivity and coordination in Open Source Software projects
    Ingo Scholtes
    Pavlin Mavrodiev
    Frank Schweitzer
    [J]. Empirical Software Engineering, 2016, 21 : 642 - 683
  • [10] From Aristotle to Ringelmann: a large-scale analysis of team productivity and coordination in Open Source Software projects
    Scholtes, Ingo
    Mavrodiev, Pavlin
    Schweitzer, Frank
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2016, 21 (02) : 642 - 683