A Critical Comparison on Six Static Analysis Tools: Detection, Agreement, and Precision

01/21/2021
by   Valentina Lenarduzzi, et al.
0

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 SonarQube. Method. We analyze 47 Java projects and derive a taxonomy of warnings raised by 6 state-of-the-practice ASATs. To assess their agreement, we compared them by manually analyzing - at line-level - whether they identify the same issues. Finally, we manually evaluate the precision of the tools. Results. The key results report a comprehensive taxonomy of ASATs warnings, show little to no agreement among the tools and a low degree of precision. Conclusions. We provide a taxonomy that can be useful to researchers, practitioners, and tool vendors to map the current capabilities of the tools. Furthermore, our study provides the first overview on the agreement among different tools as well as an extensive analysis of their precision.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/05/2021

An Empirical Study of Rule-Based and Learning-Based Approaches for Static Application Security Testing

Background: Static Application Security Testing (SAST) tools purport to ...
research
04/29/2021

Test Smell Detection Tools: A Systematic Mapping Study

Test smells are defined as sub-optimal design choices developers make wh...
research
01/11/2023

Enhancing Comprehension and Navigation in Jupyter Notebooks with Static Analysis

Jupyter notebooks enable developers to interleave code snippets with ric...
research
09/28/2018

A Systematic Study on Static Control Flow Obfuscation Techniques in Java

Control flow obfuscation (CFO) alters the control flow path of a program...
research
07/06/2022

Using Microservice Telemetry Data for System Dynamic Analysis

Microservices bring various benefits to software systems. They also brin...
research
10/12/2021

Does it matter who pays back Technical Debt? An empirical study of self-fixed TD

Context: Technical Debt (TD) can be paid back either by those that incur...
research
08/10/2017

More Accurate Recommendations for Method-Level Changes

During the life span of large software projects, developers often apply ...

Please sign up or login with your details

Forgot password? Click here to reset