Are automated static analysis tools worth it? An investigation into relative warning density and external software quality

11/17/2021
by   Alexander Trautsch, et al.
0

Automated Static Analysis Tools (ASATs) are part of software development best practices. ASATs are able to warn developers about potential problems in the code. On the one hand, ASATs are based on best practices so there should be a noticeable effect on software quality. On the other hand, ASATs suffer from false positive warnings, which developers have to inspect and then ignore or mark as invalid. In this article, we ask the question if ASATs have a measurable impact on external software quality, using the example of PMD for Java. We investigate the relationship between ASAT warnings emitted by PMD on defects per change and per file. Our case study includes data for the history of each file as well as the differences between changed files and the project in which they are contained. We investigate whether files that induce a defect have more static analysis warnings than the rest of the project. Moreover, we investigate the impact of two different sets of ASAT rules. We find that, bug inducing files contain less static analysis warnings than other files of the project at that point in time. However, this can be explained by the overall decreasing warning density. When compared with all other changes, we find a statistically significant difference in one metric for all rules and two metrics for a subset of rules. However, the effect size is negligible in all cases, showing that the actual difference in warning density between bug inducing changes and other changes is small at best.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/02/2019

A Longitudinal Study of Static Analysis Warning Evolution and the Effects of PMD on Software Quality in Apache Open Source Projects

Automated static analysis tools (ASATs) have become a major part of the ...
research
09/08/2021

On the differences between quality increasing and other changes in open source Java projects

Static software metrics, e.g., size, complexity and coupling are used in...
research
10/06/2022

Tracking the Evolution of Static Code Warnings: the State-of-the-Art and a Better Approach

Static bug detection tools help developers detect problems in the code, ...
research
03/25/2021

A Better Approach to Track the Evolution of Static Code Warnings

Static bug detection tools help developers detect code problems. However...
research
08/25/2021

RefactorInsight: Enhancing IDE Representation of Changes in Git with Refactorings Information

Inspection of code changes is a time-consuming task that constitutes a b...
research
10/27/2021

From Complexity Measurement to Holistic Quality Evaluation for Automotive Software Development

In recent years, the role and the importance of software in the automoti...
research
11/20/2019

Issues with SZZ: An empirical assessment of the state of practice of defect prediction data collection

Defect prediction research has a strong reliance on published data sets ...

Please sign up or login with your details

Forgot password? Click here to reset