A User-Guided Approach to Program Analysis - Mangal, Ravi; Zhang, Xin; Naik, Mayur; Nori, Aditya (Foundations of Software Engineering (FSE), 2015)
Program analysis tools often produce undesirable output due to various approximations. We present an approach and a system that allows user feedback to guide such approximations towards producing the desired output. We formulate the problem of user-guided program analysis in terms of solving a combination of hard rules and soft rules: hard rules capture soundness while soft rules capture degrees of approximations and preferences of users. Our technique solves the rules using an off-the-shelf solver in a manner that is sound (satisfies all hard rules), optimal (maximally satisfies soft rules), and scales to real-world analyses and programs. We evaluate EUGENE on two different analyses with labeled output on a suite of seven Java programs of size [131]–[198] KLOC. We also report upon a user study involving nine users who employ EUGENE to guide an information-flow analysis on three Java micro-benchmarks. In our experiments, EUGENE significantly reduces misclassified reports upon providing limited amounts of feedback.
ACM SIGSOFT Distinguished Paper