ACWRecommender: A Tool for Validating Actionable Warnings with Weak Supervision
Zhipeng Xue, Zhipeng Gao, Xing Hu, Shanping Li

TL;DR
ACWRecommender is a two-stage machine learning tool that improves the detection and prioritization of actionable warnings in static analysis, reducing false alarms and aiding developers in bug identification.
Contribution
This work introduces a novel two-stage framework using weak supervision and a large dataset to enhance actionable warning validation and bug recommendation in static analysis.
Findings
Outperforms baseline methods in F1-score for warning detection
Achieves higher nDCG and MRR for bug recommendation
Successfully validated real bugs in in-the-wild evaluation
Abstract
Static analysis tools have gained popularity among developers for finding potential bugs, but their widespread adoption is hindered by the accomnpanying high false alarm rates (up to 90%). To address this challenge, previous studies proposed the concept of actionable warnings, and apply machine-learning methods to distinguish actionable warnings from false alarms. Despite these efforts, our preliminary study suggests that the current methods used to collect actionable warnings are rather shaky and unreliable, resulting in a large proportion of invalid actionable warnings. In this work, we mined 68,274 reversions from Top-500 Github C repositories to create a substantia actionable warning dataset and assigned weak labels to each warning's likelihood of being a real bug. To automatically identify actionable warnings and recommend those with a high probability of being real bugs (AWHB), we…
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 Engineering Techniques and Practices · Information and Cyber Security
