Static analysis tools have been widely used to detect potential defects without executing programs. It helps programmers raise the awareness about subtle correctness issues in the early stage. However, static defect detection tools face the high false positive rate problem. Therefore, programmers have to spend a considerable amount of time on screening out real bugs from a large number of reported warnings, which is time-consuming and inefficient. To alleviate the above problem during the report inspection process, we present EFindBugs to employ an effective two-stage error ranking strategy that suppresses the false positives and ranks the true error reports on top, so that real bugs existing in the programs could be more easily found and fixed by the programmers. In the first stage, EFindBugs initializes the ranking by assigning predefined defect likelihood for each bug pattern and sorting the error reports by the defect likelihood in descending order. In the second stage, EFindbugs optimizes the initial ranking self-adaptively through the feedback from users. This optimization process is executed automatically and based on the correlations among error reports with the same bug pattern. Our experiment on three widely-used Java projects (AspectJ, Tomcat, and Axis) shows that our ranking strategy outperforms the original ranking in Find Bugs in terms of precision, recall and F1-score.
|ホスト出版物のタイトル||Proceedings - 4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011|
|出版ステータス||出版済み - 2011|
|イベント||4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011 - Berlin, ドイツ|
継続期間: 3 21 2011 → 3 25 2011
|その他||4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011|
|Period||3/21/11 → 3/25/11|
All Science Journal Classification (ASJC) codes