Which warnings should I fix first?

Download: PDF.

“Which warnings should I fix first?” by Sunghun Kim and Michael D. Ernst. In ESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Dubrovnik, Croatia), September 5-7, 2007, pp. 45-54.


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.

Download: PDF.

BibTeX entry:

   author = {Sunghun Kim and Michael D. Ernst},
   title = {Which warnings should {I} fix first?},
   booktitle = {ESEC/FSE 2007: Proceedings of the 11th European Software
	Engineering Conference and the 15th {ACM} {SIGSOFT} Symposium on
	the Foundations of Software Engineering},
   pages = {45--54},
   address = {Dubrovnik, Croatia},
   month = {September~5--7,},
   year = {2007}

(This webpage was created with bibtex2web.)

Back to Program Analysis Group publications.