Abstract
A large number of bug reports received in bug tracking system causes a negative impact on software’s growth and maintenance. Non-Reproducible bugs are an additional overhead on bug fixing process as certain percentage of Non-Reproducible bugs get fixed and these are difficult to detect. Their fixation can enhance the efficiency of bug fixing process. Past studies had ignored Non-Reproducible bugs while investigating bugs with varied perspectives. In this paper, we investigate characteristics of Non-Reproducible bug reports to understand their behaviour so that overall bug fixing process can be improved. We have also build machine learning models to predict fixable bugs from the set of Non-Reproducible marked bugs. We mine four large, open-source projects of Bugzilla repository and analyze Non-Reproducible bugs with different dimensions: frequency distribution, time-series analysis, active fix time, developer discussions, severity, priority and component. This study shows that there exists a significant number of Non-Reproducible bugs in each project and their occurrence follows a normal distribution with project longevity. They possess higher severity and lower priority as compared to reproducible bugs. Also, there exist specific components which are more prone to have non-reproducible bugs. We found that Non-Reproducible bugs consume more fixation time thereby affecting bug fixing processes’ efficiency. The overall results suggested that efforts in Non-Reproducible bugs could be minimized by developing a fixability prediction model that can build confidence among developers. Hence, we learned 52 classifiers for prediction of fixability among NR bugs. Our results show that prediction models achieved F1-Score up to 89.2%, 93.7%, 93.8% and 98.4% for NetBeans, Eclipse, Open Office and Mozilla Firefox projects respectively.
Similar content being viewed by others
Notes
References
Akbarinasaji S, Caglayan B, Bener A (2017) Predicting bug-fixing time: a replication study using an open source software project. J Syst Softw 136:173–186
An open letter to github from the maintainers of open source projects. https://github.com/dear-github/dear-github, 2016. Accessed 30 March 2018
Anvik J, Murphy GC (2011) Reducing the effort of bug report triage: recommenders for development-oriented decisions. ACM Trans Softw Eng Methodol (TOSEM) 20(3):10:1–10:35
Anvik J, Hiew L, Murphy GC (2006) Who should fix this bug? In: Proceedings of the 28th international conference on Software engineering. ACM, pp 361–370
Artzi S, Kim S, Ernst MD (2008) Recrash: making software failures reproducible by preserving object states. In: Ecoop, vol 8. Springer, pp 542–565
Basili VR, Shull F, Lanubile F (1999) Building knowledge through families of experiments. IEEE Trans Softw Eng 25(4):456–473
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
Bhattacharya P, Neamtiu I (2010) Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging. In: 2010 IEEE international conference on software maintenance (ICSM). IEEE, pp 1–10
Boehm BW (1988) Understanding and controlling software costs. J Parametr 8(1):32–68
Challet D, DU YL (2005) Microscopic model of software bug dynamics: closed source versus open source. Int J Reliab Qual Saf Eng 12(06):521–534
Chaparro O, Lu J, Zampetti F, Moreno L, Di Penta M, Marcus A, Bavota G, Ng V (2017) Detecting missing information in bug descriptions. In: Proceedings of the 2017 11th joint meeting on foundations of software engineering. ACM, pp 396–407
Chen T-H, Nagappan M, Shihab E, Hassan AE (2014) An empirical study of dormant bugs. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 82–91
Chen T-H, Thomas SW, Hassan AE (2016) A survey on the use of topic models when mining software repositories. Empir Softw Eng 21(5):1843–1919
Demšar J (2006) Statistical comparisons of classifiers over multiple data sets. J Mach Learn Res 7:1–30
Destefanis G, Ortu M, Counsell S, Swift S, Marchesi M, Tonelli R (2016) Software development: do good manners matter? PeerJ Comput Sci 2:e73
Di Sorbo A, Spillner J, Canfora G, Panichella S (2019) Won’t we fix this issue? Qualitative characterization and automated identification of wontfix issues on github. arXiv preprint arXiv:1904.02414
DiStasi A (2019) Improving developer profiling and ranking to enhance bug report assignment. Master Thesis, Rochester Institute of Technology
Dixon WJ, Massey Frank J (1950) Introduction to statistical analsis. McGraw-Hill, New York
Efendioglu M, Sen A, Koroglu Y (2018) Bug prediction of systemc models using machine learning. IEEE Trans Comput Aided Des Integr Circuits Syst 38(3):419–429
Erfani Joorabchi M, Mirzaaghaei M, Mesbah A (2014) Works for me! characterizing non-reproducible bug reports. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 62–71
Fountaine A, Sharif B (2017) Emotional awareness in software development: theory and measurement. In: Proceedings of the 2nd international workshop on emotion awareness in software engineering. IEEE Press, pp 28–31
Goyal A, Sardana N (2017) Nrfixer: sentiment based model for predicting the fixability of non-reproducible bugs. e-Inform Softw Eng J 11(1):109–122
Goyal A, Sardana N (2017) Optimizing bug report assignment using multi criteria decision making technique. Intell Decis Technol 11(3):307–320
Graziotin D, Wang X, Abrahamsson P (2014) Happy software developers solve problems better: psychological measurements in empirical software engineering. PeerJ 2:e289
Guo PJ, Zimmermann T, Nagappan N, Murphy B (2010) Characterizing and predicting which bugs get fixed: an empirical study of microsoft windows. In: 2010 ACM/IEEE 32nd international conference on software engineering, vol 1. IEEE, pp 495–504
Guzman E, Azócar D, Li Y (2014) Sentiment analysis of commit comments in github: an empirical study. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 352–355
Hall M, Frank E, Holmes G, Pfahringer B, Reutemann P, Witten IH (2009) The weka data mining software: an update. ACM SIGKDD Explor Newslett 11(1):10–18
Hann I-H, Roberts J, Slaughter S, Fielding R (2002) Why do developers contribute to open source projects? First evidence of economic incentives. In: 2nd workshop on open source software engineering, Orlando, FL, pp 1–4
Hemetsberger A, Reinhardt C (2006) Learning and knowledge-building in open-source communities: a social-experiential approach. Manag Learn 37(2):187–214
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. ACM, pp 111–120
Jin W, Orso A (2012) Bugredux: reproducing field failures for in-house debugging. In: 2012 34th international conference on software engineering (ICSE). IEEE, pp 474–484
Jonsson L, Borg M, Broman D, Sandahl K, Eldh S, Runeson P (2016) Automated bug assignment: ensemble-based machine learning in large scale industrial contexts. Empir Softw Eng 21(4):1533–1578
Kaur A, Jindal SG (2019) Text analytics based severity prediction of software bugs for apache projects. Int J Syst Assur Eng Manag 1–18
Koponen T (2006) Life cycle of defects in open source software projects. Open Source Syst 195–200
Kumari M, Sharma M, Singh V (2018) Severity assessment of a reported bug by considering its uncertainty and irregular state. Int J Open Source Softw Process 9(4):20–46
Lal S, Sardana N, Sureka A (2017) Eclogger: cross-project catch-block logging prediction using ensemble of classifiers. e-Inform Softw Eng J 11(1):7–38
Lamkanfi A, Demeyer S, Giger E, Goethals B (2010) Predicting the severity of a reported bug. In: 2010 7th IEEE working conference on mining software repositories (MSR). IEEE, pp 1–10
Lamkanfi A, Demeyer S, Soetens QD, Verdonck T (2011) Comparing mining algorithms for predicting the severity of a reported bug. In: 2011 15th European conference on software maintenance and reengineering (CSMR). IEEE, pp 249–258
Lazar A, Ritchey S, Sharif B (2014) Improving the accuracy of duplicate bug report detection using textual similarity measures. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 308–311
Marks L, Zou Y, Hassan AE (2011) Studying the fix-time for bugs in large open source projects. In: Proceedings of the 7th international conference on predictive models in software engineering. ACM, p 11
Mockus A, Fielding RT, Herbsleb J (2000) A case study of open source software development: the apache server. In: Proceedings of the 22nd international conference on software engineering. ACM, pp 263–272
Moustafa S, ElNainay MY, El Makky N, Abougabal MS (2018) Software bug prediction using weighted majority voting techniques. Alex Eng J 57(4):2763–2774
Nguyen HA, Nguyen AT, Nguyen TT, Nguyen TN, Rajan H (2013) A study of repetitiveness of code changes in software evolution. In: Proceedings of the 28th IEEE/ACM international conference on automated software engineering. IEEE Press, pp 180–190
Perry DE, Stieg CS (1993) Software faults in evolving a large, real-time system: a case study. In: European software engineering conference. Springer, pp 48–67
Pressman RS (2005) Software engineering: a practitioner’s approach. Palgrave Macmillan, London
Pushpalatha M, Mrunalini M (2019) Predicting the severity of open source bug reports using unsupervised and supervised techniques. Int J Open Source Softw Process 10(1):1–15
Python NLTK library. http://www.nltk.org/. Accessed 30 March 2018
Qin F, Zheng Z, Qiao Y, Trivedi KS (2018) Studying aging-related bug prediction using cross-project models. IEEE Trans Reliab 1–20
Qu Y, Zheng Q, Chi J, Jin Y, He A, Cui D, Zhang H, Liu T (2019) Using k-core decomposition on class dependency networks to improve bug prediction model’s practical performance. IEEE Trans Softw Eng
Rastkar S, Murphy GC, Murray G (2014) Automatic summarization of bug reports. IEEE Trans Softw Eng 40(4):366–380
Rastogi A, Gupta A, Sureka A (2013) Samiksha: mining issue tracking system for contribution and performance assessment. In: Proceedings of the 6th India software engineering conference. ACM, pp 13–22
Saha RK, Khurshid S, Perry DE (2015) Understanding the triaging and fixing processes of long lived bugs. Inf Softw Technol 65:114–128
Sbih A, Akour M (2018) Towards efficient ensemble method for bug triaging. J Multiple Valued Log Soft Comput 31(5–6):567–590
Schröter A, Zimmermann T, Zeller A (2006) Predicting component failures at design time. In: Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering. ACM, pp 18–27
Shihab E, Ihara A, Kamei Y, Ibrahim WM, Ohira M, Adams B, Hassan AE, Matsumoto K-I (2013) Studying re-opened bugs in open source software. Empir Softw Eng 18(5):1005–1042
Shokripour R, Anvik J, Kasirun ZM, Zamani S (2015) A time-based approach to automatic bug report assignment. J Syst Softw 102:109–122
Sun J (2011) Why are bug reports invalid? In: 2011 IEEE fourth international conference on software testing, verification and validation (ICST). IEEE, pp 407–410
Sureka A (2012) Learning to classify bug reports into components. In: Objects, models, components, patterns, pp 288–303
Sureka A, Jalote P (2010) Detecting duplicate bug report using character n-gram-based features. In: 2010 17th Asia Pacific software engineering conference (APSEC). IEEE, pp 366–374
Tamrawi A, Nguyen TT, Al-Kofahi J, Nguyen TN (2011) Fuzzy set-based automatic bug triaging: Nier track. In: 2011 33rd international conference on software engineering (ICSE). IEEE, pp 884–887
Tian Y, Lo D, Xia X, Sun C (2015) Automated prediction of bug report priority using multi-factor analysis. Empir Softw Eng 20(5):1354–1383
Tian Y, Lo D, Sun C (2012) Information retrieval based nearest neighbor classification for fine-grained bug severity prediction. In: 2012 19th working conference on reverse engineering (WCRE). IEEE, pp 215–224
Tian Y, Lo D, Sun C (2013) Drone: predicting priority of reported bugs by multi-factor analysis. In: 2013 29th IEEE international conference on software maintenance (ICSM). IEEE, pp 200–209
Umer Q, Liu H, Sultan Y (2019) Sentiment based approval prediction for enhancement reports. J Syst Softw 155:57–69
Valdivia Garcia, H, Shihab E (2014) Characterizing and predicting blocking bugs in open source projects. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 72–81
White M, Linares-Vásquez M, Johnson P, Bernal-Cárdenas C, Poshyvanyk D (2015) Generating reproducible and replayable bug reports from android application crashes. In: 2015 IEEE 23rd international conference on program comprehension (ICPC). IEEE, pp 48–59
Witten IH, Frank E, Hall MA, Pal CJ (2016) Data mining: practical machine learning tools and techniques. Morgan Kaufmann, San Francisco
Xia X, Lo D, Shihab E, Wang X, Yang X (2015) Elblocker: predicting blocking bugs with ensemble imbalance learning. Inf Softw Technol 61:93–106
Xia X, Lo D, Wang X, Zhou B (2015) Dual analysis for recommending developers to resolve bugs. J Softw Evol Process 27(3):195–220
Xia X, Lo D, Ding Y, Al-Kofahi JM, Nguyen TN, Wang X (2017) Improving automated bug triaging with specialized topic model. IEEE Trans Softw Eng 43(3):272–297
Yadav A, Singh SK, Suri JS (2019) Ranking of software developers based on expertise score for bug triaging. Inf Softw Technol 112:1–17
Yang G, Min K, Lee J-W, Lee B (2019) Applying topic modeling and similarity for predicting bug severity in cross projects. KSII Trans Internet Inf Syst 13(3):1583–1598
Yin Z, Ma X, Zheng J, Zhou Y, Bairavasundaram LN, Pasupathy S (2011) An empirical study on configuration errors in commercial and open source systems. In: Proceedings of the twenty-third ACM symposium on operating systems principles. ACM, pp 159–172
Yin Z, Yuan D, Zhou Y, Pasupathy S, Bairavasundaram L (2011) How do fixes become bugs? In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on foundations of software engineering. ACM, pp 26–36
Zaman S, Adams B, Hassan AE (2012) A qualitative study on performance bugs. In: 2012 9th IEEE working conference on mining software repositories (MSR). IEEE, pp 199–208
Zhang T, Chen J, Yang G, Lee B, Luo X (2016) Towards more accurate severity prediction and fixer recommendation of software bugs. J Syst Softw 117:166–184
Zhao Y, He T, Chen Z (2019) A unified framework for bug report assignment. Int J Softw Eng Knowl Eng 29(04):607–628
Zhao X, Xia X, Kochhar PS, Lo D, Li S (2014) An empirical study of bugs in build process. In: Proceedings of the 29th annual ACM symposium on applied computing. ACM, pp 1187–1189
Acknowledgements
The authors would like to acknowledge Late Prof. Ashish Sureka whose contribution to this work was of great significance. He conceived and designed the experiments of this empirical study.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Goyal, A., Sardana, N. An empirical study of non-reproducible bugs. Int J Syst Assur Eng Manag 10, 1186–1220 (2019). https://doi.org/10.1007/s13198-019-00850-5
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-019-00850-5