Adaptively ranking alerts generated from automated static analysis
Author:
- Sarah Smith HeckmanSHSarah Smith Heckman
Open Access
- 1 September 2007
- journal article
- Published by Association for Computing Machinery (ACM) in XRDS: Crossroads, The ACM Magazine for Students
- Vol. 14 (1) , 1-11
Abstract
Static analysis tools are useful for finding common programming mistakes that often lead to field failures. However, static analysis tools regularly generate a high number of false positive alerts, requiring manual inspection by the developer to determine if an alert is an indication of a fault. The adaptive ranking model presented in this paper utilizes feedback from developers about inspected alerts in order to rank the remaining alerts by the likelihood that an alert is an indication of a fault. Alerts are ranked based on the homogeneity of populations of generated alerts, historical developer feedback in the form of suppressing false positives and fixing true positive alerts, and historical, application-specific data about the alert ranking factors. The ordering of alerts generated by the adaptive ranking model is compared to a baseline of randomly-, optimally-, and static analysis tool-ordered alerts in a small role-based health care application. The adaptive ranking model provides developers with 81% of true positive alerts after investigating only 20% of the alerts whereas an average of 50 random orderings of the same alerts found only 22% of true positive alerts after investigating 20% of the generated alerts.Keywords
This publication has 9 references indexed in Scilit:
- Mining metrics to predict component failures2006
- A Comparison of Bug Finding Tools for Java2005
- Static analysis for securityIEEE Security & Privacy, 2004
- Correlation exploitation in error ranking2004
- Finding bugs is easy2004
- Finding latent code errors via machine learning over program executions2004
- Z-Ranking: Using Statistical Analysis to Counter the Impact of Static Analysis Approximations2003
- Prioritizing test cases for regression testingIEEE Transactions on Software Engineering, 2001
- Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions2000