Title
User-guided program reasoning using Bayesian inference.
Abstract
Program analyses necessarily make approximations that often lead them to report true alarms interspersed with many false alarms. We propose a new approach to leverage user feedback to guide program analyses towards true alarms and away from false alarms. Our approach associates each alarm with a confidence value by performing Bayesian inference on a probabilistic model derived from the analysis rules. In each iteration, the user inspects the alarm with the highest confidence and labels its ground truth, and the approach recomputes the confidences of the remaining alarms given this feedback. It thereby maximizes the return on the effort by the user in inspecting each alarm. We have implemented our approach in a tool named Bingo for program analyses expressed in Datalog. Experiments with real users and two sophisticated analyses---a static datarace analysis for Java programs and a static taint analysis for Android apps---show significant improvements on a range of metrics, including false alarm rates and number of bugs found.
Year
DOI
Venue
2018
10.1145/3192366.3192417
PLDI
Keywords
Field
DocType
Bayesian inference, Static analysis, alarm ranking, belief networks
False alarm,Bayesian inference,Computer science,ALARM,Static analysis,Theoretical computer science,Ground truth,Taint checking,Artificial intelligence,Statistical model,Datalog,Machine learning
Conference
Volume
Issue
ISSN
53
4
0362-1340
Citations 
PageRank 
References 
4
0.41
32
Authors
4
Name
Order
Citations
PageRank
Mukund Raghothaman11198.30
Sulekha Kulkarni240.41
Kihong Heo3181.64
Mayur Naik4123.87