A critical comparison on six static analysis tools: Detection, agreement, and precision?

被引:14
作者
Lenarduzzi, Valentina [1 ]
Pecorelli, Fabiano [2 ]
Saarimaki, Nyyti [2 ]
Lujan, Savanna [2 ]
Palomba, Fabio [3 ]
机构
[1] Univ Oulu, Res Unit M3S, Oulu, Finland
[2] Tampere Univ, Clowee Res Grp, Tampere, Finland
[3] Univ Salerno, SeSa Lab, Salerno, Italy
基金
瑞士国家科学基金会;
关键词
Static analysis tools; Software quality; Empirical study; METRIC THRESHOLDS; BUG PREDICTION;
D O I
10.1016/j.jss.2022.111575
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Background: Developers use Static Analysis Tools (SATs) to control for potential quality issues in source code, including defects and technical debt. Tool vendors have devised quite a number of tools, which makes it harder for practitioners to select the most suitable one for their needs. To better support developers, researchers have been conducting several studies on SATs to favor the understanding of their actual capabilities.Aims: Despite the work done so far, there is still a lack of knowledge regarding (1) what is their agreement, and (2) what is the precision of their recommendations. We aim at bridging this gap by proposing a large-scale comparison of six popular SATs for Java projects: Better Code Hub, CheckStyle, Coverity Scan, FindBugs, PMD, and SonarQube.Methods: We analyze 47 Java projects applying 6 SATs. To assess their agreement, we compared them by manually analyzing - at line - and class-level - whether they identify the same issues. Finally, we evaluate the precision of the tools against a manually-defined ground truth.Results: The key results show little to no agreement among the tools and a low degree of precision.Conclusion: Our study provides the first overview on the agreement among different tools as well as an extensive analysis of their precision that can be used by researchers, practitioners, and tool vendors to map the current capabilities of the tools and envision possible improvements.(c) 2022 The Author(s). Published by Elsevier Inc. This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/).
引用
收藏
页数:19
相关论文
共 66 条
[1]  
Al Mamun M.A., 2010, 3 SWEDISH WORKSHOP M
[2]   SATT: Tailoring Code Metric Thresholds for Different Software Architectures [J].
Aniche, Mauricio ;
Treude, Christoph ;
Zaidman, Andy ;
van Deursen, Arie ;
Gerosa, Marco Aurelio .
2016 IEEE 16TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2016, :41-50
[3]  
[Anonymous], 2010, P INT S SOFTW TEST A, DOI DOI 10.1145/1831708.1831738
[4]  
[Anonymous], 2000, Experimentation in Software Engineering
[5]  
Antoine J.-Y., 2014, 14 C EUR CHAPT ASS C, P550
[6]   Comparing the Effectiveness of Penetration Testing and Static Code Analysis on the Detection of SQL Injection Vulnerabilities in Web Services [J].
Antunes, Nuno ;
Vieira, Marco .
IEEE 15TH PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING, PROCEEDINGS, 2009, :301-306
[7]   An Overview and Comparison of Technical Debt Measurement Tools [J].
Avgeriou, Paris ;
Taibi, Davide ;
Ampatzoglou, Apostolos ;
Fontana, Francesca Arcelli ;
Besker, Terese ;
Chatzigeorgiou, Alexander ;
Lenarduzzi, Valentina ;
Martini, Antonio ;
Moschou, Athanasia ;
Pigazzini, Ilaria ;
Saarimaki, Nyyti ;
Sas, Darius ;
de Toledo, Saulo Soares ;
Tsintzira, Angeliki .
IEEE SOFTWARE, 2021, 38 (03) :61-71
[8]   Using static analysis to find bugs [J].
Ayewah, Nathaniel ;
Pugh, William ;
Hovemeyer, David ;
Morgenthaler, J. David ;
Penix, John .
IEEE SOFTWARE, 2008, 25 (05) :22-29
[9]   Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software [J].
Beller, Moritz ;
Bholanath, Radjino ;
McIntosh, Shane ;
Zaidman, Andy .
2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, :470-481
[10]   State of the Systems Security [J].
Bodden, Eric .
PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, :550-551