An Approach to Detecting Bugs in Pattern-Based Bug Detectors
Junjie Wang, Yuchao Huang, Song Wang, Qing Wang

TL;DR
This paper introduces a differential testing approach to identify bugs in static bug finders' rules, revealing significant issues and proposing bug patterns to improve rule reliability.
Contribution
It presents a novel differential testing method for static bug finders and a heuristic rule mapping technique, uncovering bugs and patterns in widely-used tools.
Findings
Detected 46 bugs in static bug finders, with 24 fixed or confirmed.
Developed a heuristic-based rule mapping method for differential testing.
Identified 13 bug patterns in static analysis rules.
Abstract
Static bug finders have been widely-adopted by developers to find bugs in real world software projects. They leverage predefined heuristic static analysis rules to scan source code or binary code of a software project, and report violations to these rules as warnings to be verified. However, the advantages of static bug finders are overshadowed by such issues as uncovered obvious bugs, false positives, etc. To improve these tools, many techniques have been proposed to filter out false positives reported or design new static analysis rules. Nevertheless, the under-performance of bug finders can also be caused by the incorrectness of current rules contained in the static bug finders, which is not explored yet. In this work, we propose a differential testing approach to detect bugs in the rules of four widely-used static bug finders, i.e., SonarQube, PMD, SpotBugs, and ErrorProne, and…
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 Engineering Research · Software Reliability and Analysis Research · Software Testing and Debugging Techniques
