Abstract
Daily large number of bug reports are received in large open and close source bug tracking systems. Dealing with these reports manually utilizes time and resources which leads to delaying the resolution of important bugs. As an important process in software maintenance, bug triaging process carefully analyze these bug reports to determine, for example, whether the bugs are duplicate or unique, important or unimportant, and who will resolve them. Assigning bug reports based on their priority or importance may play an important role in enhancing the bug triaging process. The accurate and timely prioritization and hence resolution of these bug reports not only improves the quality of software maintenance task but also provides the basis to keep particular software alive. In the past decade, various studies have been conducted to prioritize bug reports using data mining techniques like classification, information retrieval and clustering that can overcome incorrect prioritization. Due to their popularity and importance, we survey the automated bug prioritization processes in a systematic way. In particular, this paper gives a small theoretical study for bug reports to motivate the necessity for work on bug prioritization. The existing work on bug prioritization and some possible problems in working with bug prioritization are summarized.
Similar content being viewed by others
References
Abdelmoez W et al (2012) Bug fix-time prediction model using Naïve Bayes classifier. In: 22nd International conference on computer theory and applications, IEEE, October, pp 167–172. doi:10.1109/ICCTA.2012.6523564
Alenezi M, Banitaan S (2013) Bug reports prioritization: which features and classifier to use? In: 12th International conference on machine learning and applications, IEEE, pp 112–116. doi:10.1109/ICMLA.2013.114
Anvik J et al (2005) Coping with an open bug repository technical report UBC-CS-TR-2005-20. In: Proceedings of the OOPSLA workshop on eclipse technology eXchange. ACM, pp 1–5
Anvik J et al (2006) Who should fix this bug? In: Proceedings of the 28th international conference on software engineering, pp 361–370
Anvik J, Murphy GC (2011) Reducing the effort of bug report triage. ACM Trans Softw Eng Methodol 20(3):1–35. doi:10.1145/2000791.2000794
Behl D et al (2014) A bug mining tool to identify and analyze security bugs using Naive Bayes and TF-IDF. In: International conference on reliability optimization and information technology, IEEE, pp 294–299. doi:10.1109/ICROIT.2014.6798341
Bennett K, Rajlich V (1999) Software maintenance and evolution: a roadmap. In: Proceeding ICSE’00 proceedings of the conference on the future of software engineering, pp 73–87
Bhattacharya P, Neamtiu I, Shelton CR (2012) Automated, highly-accurate, bug assignment using machine learning and tossing graphs. J Syst Softw 85(10):2275–2292. doi:10.1016/j.jss.2012.04.053
Brereton P et al (2007) Lessons from applying the systematic literature review process within the software engineering domain. J Syst Softw 80:571–583. doi:10.1016/j.jss.2006.07.009
Chapin N (2000) Software maintenance Types-A fresh view. In: International conference on software maintenance, pp 247–252. doi:10.1109/ICSM.2000.883056
Chaturvedi KK, Singh VB (2012) Determining bug severity using machine learning techniques. In: CSI sixth international conference on software engineering, IEEE, pp 1–6. doi:10.1109/CONSEG.2012.6349519
Chawla I, Singh SK (2014) Automatic bug labeling using semantic information from LSI. In: Seventh international conference on contemporary computing, IEEE, pp 376–381. doi:10.1109/IC3.2014.6897203
Cubranic M (2004) Automatic bug triage using text categorization. In: International conference of software engineering and knowledge engineering, pp 1–6
Dommati SJ et al (2012) Bug classification: feature extraction and comparison of event model using Naïve Bayes approach. In: International conference on recent trends in computer and information engineering, pp 8–12
Garcia HV, Shihab E (2014) Characterizing and predicting blocking bugs in open source projects categories and subject descriptors. In: Proceedings of the 11th working conference on mining software repositories, pp 72–81
Giger E et al (2010) Predicting the fix time of bugs. In: Proceedings of the 2nd international workshop on recommendation systems for software engineering—RSSE. ACM Press, New York, NY, USA, pp 52–56. doi:10.1145/1808920.1808933
Goyal N et al (2015) Advances in intelligent informatics, advances in intelligent systems and computing, vol 320. Springer International Publishing, Cham. doi:10.1007/978-3-319-11218-3
Guo PJ et al (2010) Characterizing and predicting which bugs get fixed: an empirical study of Microsoft Windows. In: Proceedings of the 32nd ACM/IEEE international conference on software engineering, pp 495–504
Herraiz I et al (2008) Towards a simplification of the bug report form in eclipse. In: Proceedings of the international working conference on mining software repositories, pp 145–148
Hooimeijer P, Weimer W (2007) Modeling bug report quality categories and subject descriptors. In: Proceedings of the twenty-second IEEE/ACM international conference on automated software engineering, pp 34–43
Jalbert N, Weimer W (2008) Automated duplicate detection for bug tracking systems. In: IEEE international conference on dependable systems and networks With FTCS and DCC (DSN) pp 52–61. doi:10.1109/DSN.2008.4630070
Jaweria Kanwal OM (2010) Managing open bug repositories through bug report prioritization using SVMs. In: Proceedings of the 4th international conference on open-source systems and technologies, ICOSST, pp 1–7
Jeong G, Kim S, Zimmermann T (2009) Improving bug triage with bug tossing graphs. In: Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering, pp 111–120
Jianhong Z et al (2010) A neural network based approach for modeling of severity of defects in function based software systems. In: International conference on electronics and information engineering, vol 2(Iceie), pp V2-568–V2-575. doi:10.1109/ICEIE.2010.5559743
Kanwal J, Maqbool O (2012) Bug prioritization to facilitate bug report triage. J Comput Sci Technol 27(2):397–412. doi:10.1007/s11390-012-1230-3
Karaboga D, Ozturk C (2011) A novel clustering approach: Artificial Bee Colony (ABC) algorithm. Appl Soft Comput 11(1):652–657. doi:10.1016/j.asoc.2009.12.025
Kaur M, Garg SK (2014) Survey on clustering techniques in data mining for software engineering. Int J Adv Innov Res 3(4):238–243
Kim S, Ernst MD (2007a) Prioritizing warning categories by analyzing software history. In: Fourth international workshop on mining software repositories, pp 27–27. doi:10.1109/MSR.2007.26
Kim S, Ernst MD (2007b) Which warnings should I fix first? Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering—ESEC-FSE, p 45. doi:10.1145/1287624.1287633
Kitchenham B, Charters S (2007) Guidelines for performing systematic literature reviews in software engineering. Engineering 2:1051. doi:10.1145/1134285.1134500
Kremenek T, Engler D (2003) Z-ranking: using statistical analysis to counter the impact of static analysis approximations. In: Static analysis. doi:10.1007/3-540-44898-5_16
Lamkanfi A et al (2010) Predicting the severity of a reported bug. In: 7th IEEE working conference on mining software repositories, IEEE, pp 1–10. doi:10.1109/MSR.2010.5463284
Lamkanfi A et al (2011) Comparing mining algorithms for predicting the severity of a reported bug. In: 15th European conference on software maintenance and reengineering, pp 249–258. doi:10.1109/CSMR.2011.31
Lazar A et al (2014) Generating duplicate bug datasets. In: Proceedings of the 11th working conference on mining software repositories, pp 392–395. doi:10.1145/2597073.2597128
Menzies T, Marcus A (2008) Automated severity assessment of software defect reports. In: IEEE international conference on software maintenance, pp 346–355. doi:10.1109/ICSM.2008.4658083
Mishra S, Kumar S (2015) Survey on types of bug reports and general classification techniques in data mining. Int J Comput Sci Inf Technol 6(2):1578–1583
Nagwani NK, Verma S (2011) Software bug classification using suffix tree clustering (STC) algorithm. Int J Comput Sci Technol 4333:36–41
Nagwani NK, Verma S (2012) CLUBAS: an algorithm and Java based tool for software bug classification using bug attributes similarities. J Softw Eng Appl 5(6):436–447. doi:10.4236/jsea.2012.56050
Naseem R et al (2013) Cooperative clustering for software modularization. J Syst Softw 86(8):2045–2062. doi:10.1016/j.jss.2013.03.080
Nigam A et al (2012) Classifying the bugs using multi-class semi supervised support vector machine. In: International conference on pattern recognition, informatics and medical engineering, pp 393–397. doi:10.1109/ICPRIME.2012.6208378
Pawlak Z et al (1995) Rough sets. Commun ACM 38(11):88–95. doi:10.1145/219717.219791
Podgurski A et al (2003) Automated support for classifying software failure reports. In: Proceedings of 25th international conference on software engineering, vol 6, pp 465–475. doi:10.1109/ICSE.2003.1201224
Punitha K, Chitra S (2013) Software defect prediction using software metrics—a survey. In: International conference on information communication and embedded systems, pp 2–5
Rus V et al (2009) Towards architecture-centric collaborative software development. In: Zhurnal Eksperimental’noi i Teoreticheskoi Fiziki
Saha RK et al (2014) An empirical study of long lived bugs. In: Software evolution week—IEEE conference on software maintenance, reengineering, and reverse engineering, IEEE, pp 144–153. doi:10.1109/CSMR-WCRE.2014.6747164
Sharma M et al (2012) Predicting the priority of a reported bug using machine learning techniques and cross project validation. In: 12th International conference on intelligent systems design and applications (ISDA), IEEE, pp 539–545. doi:10.1109/ISDA.2012.6416595
Somasun D, Murphy GC (2012) Automatic categorization of bug reports using latent Dirichlet allocation. In: Proceedings of the 5th India software engineering conference, pp 125–130. doi:10.1145/2134254.2134276
Thung F et al (2012) When would this bug get reported? In: 28th IEEE international conference on software maintenance, IEEE, pp 420–429. doi:10.1109/ICSM.2012.6405302
Tian Y et al (2012) Information retrieval based nearest neighbor classification for fine-grained bug severity prediction. In: 19th Working conference on reverse engineering, pp 215–224. doi:10.1109/WCRE.2012.31
Tian Y et al (2013) DRONE: predicting priority of reported bugs by multi-factor analysis. In: IEEE International conference on software maintenance, IEEE, pp 200–209. doi:10.1109/ICSM.2013.31
Vans AM (1999) Program understanding behavior during corrective maintenance of large-scale software. Int J Hum Comput Stud 51:31–70
Xia X et al (2014) An empirical study of bug report field reassignment. In: Software evolution week—IEEE conference on software maintenance, reengineering, and reverse engineering, IEEE, pp 174–183. doi:10.1109/CSMR-WCRE.2014.6747167
Xuan J et al (2012) Developer prioritization in bug repositories. In: 34th International conference on software engineering (ICSE), IEEE, pp 25–35. doi:10.1109/ICSE.2012.6227209
Yang G et al (2014) Towards Semi-automatic bug triage and severity prediction based on topic model and multi-feature of bug reports. In: IEEE 38th annual computer software and applications conference, IEEE, pp 97–106. doi:10.1109/COMPSAC.2014.16
Yu L et al (2010) Predicting defect priority based on neural networks. Adv Data Min Appl Lect Notes Comput Sci 6441:356–367
Zanetti MS et al (2013) Categorizing bugs with social networks: a case study on four open source software communities. In: 35th International conference on software engineering, IEEE, pp 1032–1041. doi:10.1109/ICSE.2013.6606653
Zhang J et al (2015) A survey on bug-report analysis. Sci China Inf Sci 58(2):1–24. doi:10.1007/s11432-014-5241-2
Zhang T, Lee B (2013) A hybrid bug triage algorithm for developer recommendation. In: Proceedings of the 28th annual ACM symposium on applied computing, p 1088. doi:10.1145/2480362.2480568
Acknowledgments
Authors whose names appear on the submission have contributed sufficiently to the scientific work and therefore share collective responsibility and accountability for the results.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Informed consent
Consent to submit has been received explicitly from all co-authors, as well as from the responsible authorities—tacitly or explicitly—at the institute/organization where the work has been carried out, before the work is submitted.
Rights and permissions
About this article
Cite this article
Uddin, J., Ghazali, R., Deris, M.M. et al. A survey on bug prioritization. Artif Intell Rev 47, 145–180 (2017). https://doi.org/10.1007/s10462-016-9478-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10462-016-9478-6