Which warnings should I fix first?
Top Cited Papers
- 7 September 2007
- proceedings article
- Published by Association for Computing Machinery (ACM)
Abstract
Automatic bug-finding tools have a high false positive rate: most warnings do not indicate real bugs. Usually bug-finding tools assign important warnings high priority. However, the prioritization of tools tends to be ineffective. We observed the warnings output by three bug-finding tools, FindBugs, JLint, and PMD, for three subject programs, Columba, Lucene, and Scarab. Only 6%, 9%, and 9% of warnings are removed by bug fix changes during 1 to 4 years of the software development. About 90% of warnings remain in the program or are removed during non-fix changes - likely false positive warnings. The tools' warning prioritization is little help in focusing on important warnings: the maximum possible precision by selecting high-priority warning instances is only 3%, 12%, and 8% respectively. In this paper, we propose a history-based warning prioritization algorithm by mining warning fix experience that is recorded in the software change history. The underlying intuition is that if warnings from a category are eliminated by fix-changes, the warnings are important. Our prioritization algorithm improves warning precision to 17%, 25%, and 67% respectively. Copyright 2007 ACMKeywords
This publication has 17 references indexed in Scilit:
- Predicting Faults from Cached HistoryPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2007
- Memories of bug fixesPublished by Association for Computing Machinery (ACM) ,2006
- Have things changed now?Published by Association for Computing Machinery (ACM) ,2006
- Tracking defect warnings across versionsPublished by Association for Computing Machinery (ACM) ,2006
- A Comparison of Bug Finding Tools for JavaPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Finding bugs is easyPublished by Association for Computing Machinery (ACM) ,2004
- Open-Source Change LogsEmpirical Software Engineering, 2004
- Where the bugs arePublished by Association for Computing Machinery (ACM) ,2004
- Extended static checking for JavaPublished by Association for Computing Machinery (ACM) ,2002
- Predicting fault incidence using software change historyIEEE Transactions on Software Engineering, 2000