Correlation exploitation in error ranking
Authors:
Open Access
- 31 October 2004
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGSOFT Software Engineering Notes
- Vol. 29 (6) , 83-93
Abstract
Static program checking tools can find many serious bugs in software, but due to analysis limitations they also frequently emit false error reports. Such false positives can easily render the error checker useless by hiding real errors amidst the false. Effective error report ranking schemes mitigate the problem of false positives by suppressing them during the report inspection process [17, 19, 20]. In this way, ranking techniques provide a complementary method to increasing the precision of the analysis results of a checking tool. A weakness of previous ranking schemes, however, is that they produce static rankings that do not adapt as reports are inspected, ignoring useful correlations amongst reports. This paper addresses this weakness with two main contributions. First, we observe that both bugs and false positives frequently cluster by code locality. We analyze clustering behavior in historical bug data from two large systems and show how clustering can be exploited to greatly improve error report ranking. Second, we present a general probabilistic technique for error ranking that (1) exploits correlation behavior amongst reports and (2) incorporates user feedback into the ranking process. In our results we observe a factor of 2-8 improvement over randomized ranking for error reports emitted by both intra-procedural and inter-procedural analysis tools.Keywords
This publication has 15 references indexed in Scilit:
- Where the bugs are2004
- MOPS2002
- Improving security using extensible lightweight static analysisIEEE Software, 2002
- A system and language for building system-specific, static analyses2002
- Extended static checking for Java2002
- ESP2002
- Tracking down software bugs using automatic anomaly detection2002
- An empirical study of operating systems errors2001
- Type-based race detection for Java2000
- LCLint1994