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

10/06/2022
by   Junjie Li, et al.
0

Static bug detection tools help developers detect problems in the code, including bad programming practices and potential defects. However, it is known that static bug detectors remain underutilized due to various reasons. Recent advances to incorporate static bug detectors in modern software development workflows, such as in code review and continuous integration, are shown capable of better motivating developers to fix the reported warnings on the fly. Moreover, tracking the static code warnings will benefit many downstream software engineering tasks, such as learning the fix patterns for automated program repair and learning which warnings are of more interest, so they can be prioritized automatically. Hence, precisely tracking the warnings by static bug detectors is critical to improve the utilization of static bug detectors further. In this paper, we study the effectiveness of the state-of-the-art (SOA) solution in tracking the warnings by static bug detectors and propose a better solution based on our analysis of the insufficiencies of the SOA solution. In particular, we examined over 2000 commits in four large-scale open-source systems (i.e., JClouds, Kafka, Spring-boot, and Guava) and crafted a dataset of 3,452 static code warnings by two static bug detectors (i.e., Spotbugs and PMD). We manually uncover the ground-truth evolution status of the static warnings: persistent, resolved, or newly-introduced. Moreover, upon manual analysis, we identified the main reasons behind the insufficiencies of the SOA solution. Finally, we propose a better approach to improving the tracking of static warnings over software development history. Our evaluation shows that our proposed approach provides a significant improvement in terms of the precision of the tracking, i.e., from 66.9

READ FULL TEXT

page 3

page 9

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
03/08/2022

Learning to Reduce False Positives in Analytic Bug Detectors

Due to increasingly complex software design and rapid iterative developm...
research
11/02/2022

ADPTriage: Approximate Dynamic Programming for Bug Triage

Bug triaging is a critical task in any software development project. It ...
research
11/17/2021

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

Automated Static Analysis Tools (ASATs) are part of software development...
research
06/01/2021

Studying Duplicate Logging Statements and Their Relationships with Code Clones

In this paper, we focus on studying duplicate logging statements, which ...
research
01/28/2021

A Spatial-Temporal Graph Neural Network Framework for Automated Software Bug Triaging

The bug triaging process, an essential process of assigning bug reports ...
research
03/22/2020

Annotation-Based Static Analysis for Personal Data Protection

This paper elaborates the use of static source code analysis in the cont...

Please sign up or login with your details

Forgot password? Click here to reset