Understanding Static Code Warnings: an Incremental AI Approach
Xueqi Yang, Zhe Yu, Junjie Wang, Tim Menzies

TL;DR
This paper presents an incremental AI system that learns from developers' interactions with static code warnings to effectively distinguish between actionable and false alarms, improving developer efficiency.
Contribution
It introduces an incremental support vector machine approach that adapts based on developer feedback to identify critical static code warnings.
Findings
Over 90% of actionable warnings identified
Can ignore 70-80% of false alarms effectively
Evaluated on nine open-source projects
Abstract
Knowledge-based systems reason over some knowledge base. Hence, an important issue for such systems is how to acquire the knowledge needed for their inference. This paper assesses active learning methods for acquiring knowledge for "static code warnings". Static code analysis is a widely-used method for detecting bugs and security vulnerabilities in software systems. As software becomes more complex, analysis tools also report lists of increasingly complex warnings that developers need to address on a daily basis. Such static code analysis tools are usually over-cautious; i.e. they often offer many warnings about spurious issues. Previous research work shows that about 35% to 91% of warnings reported as bugs by SA tools are actually unactionable (i.e., warnings that would not be acted on by developers because they are falsely suggested as bugs). Experienced developers know which…
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 Testing and Debugging Techniques · Advanced Malware Detection Techniques
