An Empirical Study of False Negatives and Positives of Static Code Analyzers From the Perspective of Historical Issues
Han Cui, Menglei Xie, Ting Su, Chengyu Zhang, and Shin Hwei Tan

TL;DR
This study systematically analyzes 350 confirmed false negatives and positives in static code analyzers from issue repositories, revealing root causes and characteristics, and proposes a metamorphic testing approach that discovered 14 new issues.
Contribution
It provides the first comprehensive analysis of historical FNs and FPs in static analyzers and introduces a new testing strategy to detect such issues.
Findings
Identified root causes of FNs and FPs in static analyzers.
Discovered 14 new issues using metamorphic testing.
Revealed weaknesses in rule specifications and implementation.
Abstract
Static code analyzers are widely used to help find program flaws. However, in practice the effectiveness and usability of such analyzers is affected by the problems of false negatives (FNs) and false positives (FPs). This paper aims to investigate the FNs and FPs of such analyzers from a new perspective, i.e., examining the historical issues of FNs and FPs of these analyzers reported by the maintainers, users and researchers in their issue repositories -- each of these issues manifested as a FN or FP of these analyzers in the history and has already been confirmed and fixed by the analyzers' developers. To this end, we conduct the first systematic study on a broad range of 350 historical issues of FNs/FPs from three popular static code analyzers (i.e., PMD, SpotBugs, and SonarQube). All these issues have been confirmed and fixed by the developers. We investigated these issues' root…
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 Reliability and Analysis Research · Software Engineering Research · Advanced Computational Techniques and Applications
