Effects of Automated Static Analysis Tools: A Multidimensional View on Quality Evolution
Leveraging and acting on the results of static analysis is a known best practice and should be part of every software development workflow. Static analysis is an integral part of software quality assurance which is highlighted by the inclusion of static analysis results in software quality models like ColumbusQM and Quamoco. Although there are studies that explore if tools for static analysis are used and how they are configured, few publications explore the longitudinal effects of acting on static analysis results on software and on the evolution of software. Especially effects on quality criteria, e.g., software quality metrics, defects, or readability are missing. Moreover, there is a general lack of empirical knowledge about reasons for acting or not acting on results of static analysis. With our research, we will bridge this gap and measure the effects of static analysis on software quality evolution. We will explore when and how warnings reported via static analysis tools are removed. At the point of removal we will measure their effect on software quality metrics and try to identify the developers intent. Furthermore, we will measure long term effects on external quality attributes, e.g., reported issues and defects. Finally, we want to predict false positives of static analysis warnings by training predictive models on our collected data.