A Critical Comparison on Six Static Analysis Tools: Detection, Agreement, and Precision
Valentina Lenarduzzi, Savanna Lujan, Nyyti Saarimaki, Fabio Palomba

TL;DR
This study compares six popular static analysis tools for Java, revealing their limited agreement and low precision, and provides a comprehensive taxonomy of their warnings to inform better tool selection and development.
Contribution
It offers the first large-scale comparison of six Java static analysis tools, analyzing their warning taxonomy, agreement, and precision.
Findings
Little to no agreement among tools
Low precision of static analysis warnings
Comprehensive taxonomy of tool warnings
Abstract
Background. Developers use Automated Static Analysis Tools (ASATs) 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 ASATs to favor the understanding of their actual capabilities. Aims. Despite the work done so far, there is still a lack of knowledge regarding (1) which source quality problems can actually be detected by static analysis tool warnings, (2) what is their agreement, and (3) what is the precision of their recommendations. We aim at bridging this gap by proposing a large-scale comparison of six popular static analysis tools for Java projects: Better Code Hub, CheckStyle, Coverity Scan, Findbugs, PMD, and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Advanced Malware Detection Techniques
