Several studies have experimented with data mining algorithms to predict the fix-time of reported bugs. Unfortunately, the fix-times as reported in typical open-source cases are heavily skewed with a significant amount of reports registering fix-times less than a few minutes. Consequently, we propose to include an additional filtering step to improve the quality of the underlying data in order to gain better results. Using a small-scale replication of a previously published bug fix-time prediction experiment, we show that the additional filtering of reported bugs indeed improves the outcome of the results.
1. Proceedings of the 16th European Conference on Software Maintenance and
Reengineering
Filtering Bug Reports for Fix-Time
Analysis
Ahmed Lamkanfi, Serge Demeyer
Antwerp Systems and Software Modelling
Ansymo 1 /13
2. Bug Report Fix-Time Prediction
Predicting Eclipse Bug Lifetimes A Comparative Exploration of FreeBSD Bug Lifetimes Predicting the Fix Time of Bugs
Panjer et al. Bougie et al. Giger et al.
2 /13
3. Bug Report Fix-Time Prediction
Predicting Eclipse Bug Lifetimes A Comparative Exploration of FreeBSD Bug Lifetimes Predicting the Fix Time of Bugs
Panjer et al. Bougie et al. Giger et al.
2 /13
4. Bug Report Fix-Time Prediction
Predicting Eclipse Bug Lifetimes A Comparative Exploration of FreeBSD Bug Lifetimes Predicting the Fix Time of Bugs
Panjer et al. Bougie et al. Giger et al.
2 /13
5. History of all reported bugs
Bug Database Uncover facts about history
Make predictions about future
3 /13
6. History of all reported bugs
Bug Database Uncover facts about history
Make predictions about future
Fix-time of a bug?
✓ Time between opening and resolving a bug.
3 /13
12. Ask a
developer!
➡“the developer has already the
necessary code changes ready to fix a
bug, then files a bug to make sure it's
getting tracked in the system”
8 /13
14. Filtering out unreliable reports?
✓ How does this impact the accuracy?
Small experiment
✓ Based on experiment from “Predicting the Fix
Time of Bugs” from Giger et al. (2010)
9 /13
15. Train from the history of bug reports
✓ Fields are extracted from the reports
day opened, month opened, platform, reporter,
➡
severity,...
✓ Naïve Bayes classifiers learns the
characteristics from the reports
✓ 10-fold cross validation
10/13
16. Train from the history of bug reports
✓ Fields are extracted from the reports
day opened, month opened, platform, reporter,
➡
severity,...
✓ Naïve Bayes classifiers learns the
characteristics from the reports
✓ 10-fold cross validation
Bugs are grouped in two sets
✓ Fast: fixtime ≤ median
✓ Slow: fixtime > median
10/13
17. Evaluation:
✓ Receiver Operating Characteristic(ROC) curve
✓ Area Under Curve(AUC): 0.5 is random
prediction; 1.0 perfect classification
11/13
18. Evaluation:
✓ Receiver Operating Characteristic(ROC) curve
✓ Area Under Curve(AUC): 0.5 is random
prediction; 1.0 perfect classification
Two-fold experiment
✓ With and without the filtering of bug reports
✓ Threshold for filtering set to 1/2 of the first
quartile
11/13
20. Conclusions
✓ More investigation needed when dealing
with real-world data
✓ Some bugs are fixed conspicuously fast!
✓ More preprocessing/filtering may lead to
improved results
13/13