Abstract
Software maintenance phase involves successive code changes due to the reported bugs causing the emergence of bad smells in the code. Gradual code deterioration is the result of such practice and brings about hard to maintain code by affecting the code quality adversely. The purpose is to alert the project manager to the presumptive quality critical bugs (QCB) as soon as the bug reports are recorded in the issue tracking system (ITS) and help treat them more carefully by assigning those to the more experienced developers to be fixed or by prioritizing those QCBs in the quality control list. One-phased and two-phased bug classification models are proposed in this paper. The former makes the predictions using a convolutional neural network and the latter is based on the bug localization algorithms (as the first step) and time series prediction techniques (as the second step). Using four large-size open-source Apache products, it was observed that the two-phased approach could reach 78% prediction accuracy. The two-phased method was able to identify unpredictable bug reports by analyzing the time series of its target classes. The two-phased method outperformed the one-phased method in products involving highly predictable classes’ time series. In contrast, the simpler one-phased method performed comparable to the two-phased method in low-predictable products. Code quality control (CQC) is a vital task over bug-fixing process to delay the code deterioration by refactoring activities. Bug classification techniques have already been applied in the bug severity prediction and bug triaging areas but not in the CQC applications.
Similar content being viewed by others
Data availability
The data will be available on demand.
Notes
available at: https://www.bugzilla.org (accessed 06 June 2018).
available at: https://www.atlassian.com/software/jira?bundle=jira-software&edition=free (accessed 06 June 2018).
available at: https://github.com/Ziba-Ghane/CQC.git (accessed 09 June 2022).
available at: https://code.google.com/archive/p/word2vec/ (accessed 08 June 2022).
available at: https://pmd.github.io/latest/pmd_rules_java.html (accessed 07 June 2022).
References
Bán, D., & Ferenc, R. (2014). Recognizing antipatterns and analyzing their effects on software maintainability. In Murgante, B., Misra, S., Rocha, A. M. A. C., Torre, C., Rocha, J. G., Falcão, M. I., Taniar, D., Apduhan, B. O .& Gervasi, O. (Ed.s), 14th International Conference on Computational Science and Its Applications, ICCSA 2014. Springer International Publishing, Cham, pp 337–352.
Bushehrian, O., Sayari, M., & Shamsinejad, P. (2021). Software deterioration control based on issue reports, e-Informatica Software Engineering Journal, 15, 1.
Chen, C., Lin, S., Shoga, M., Wang, Q., & Boehm, B. (2018). How do defects hurt qualities? An empirical study on characterizing a software maintainability ontology in open source software, 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS), IEEE, 226–237.
Christopher, D. M., Prabhakar, R., & Hinrich, S. (2008). Introduction to information retrieval, Cambridge University Press.
Fontana, F. A., & Zanoni, M. (2017). Code smell severity classification using machine learning techniques. Knowledge-Based Systems, 128, 43–58.
Fowler, M. (2018). Refactoring: Improving the design of existing code, Addison-Wesley Professional.
Guo, S., Zhang, X., Yang, X., Chen, R., Guo, C., Li, H., & Li, T. (2020). Developer activity motivated bug triaging: Via convolutional neural network. Neural Processing Letters, 51(3), 2589–2606.
Khomh, F., Penta, M. D., Guéhéneuc, Y.-G., & Antoniol, G. (2012). An exploratory study of the impact of antipatterns on class change- and fault-proneness. Empirical Software Engineering, 17(3), 243–275.
Kim, D., Tao, Y., Kim, S., & Zeller, A. (2013). Where should we fix this bug? A Two-Phase Recommendation Model, IEEE Transactions on Software Engineering, 39(11), 1597–1610.
Kramer, O. (2013). Dimensionality reduction with unsupervised nearest neighbors. Springer.
Le, Q., & Mikolov, T. (2014). Distributed representations of sentences and documents, International conference on machine learning, PMLR, 1188–1196.
Limsettho, N., Hata, H., Monden, A., & Matsumoto, K. (2016). Unsupervised bug report categorization using clustering and labeling algorithm. International Journal of Software Engineering and Knowledge Engineering, 26(07), 1027–1053.
Malhotra, R., & Chug, A. (2016). Software maintainability: Systematic literature review and current trends. International Journal of Software Engineering and Knowledge Engineering, 26(08), 1221–1253.
Mamone, S. (1994). The IEEE standard for software maintenance. ACM SIGSOFT Software Engineering Notes, 19(1), 75–76.
Mushtaq, R. (2011). Augmented Dickey Fuller test, SSRN Electronic Journal.
Palomba, F., Bavota, G., Penta, M. D., Fasano, F., Oliveto, R., & Lucia, A. D. (2018). On the diffuseness and the impact on maintainability of code smells: A large scale empirical investigation. Empirical Software Engineering, 23(3), 1188–1221.
Palomba, F., Zanoni, M., Fontana, F. A., Lucia, A. D., & Oliveto, R. (2019). Toward a smell-aware bug prediction model. IEEE Transactions on Software Engineering, 45(2), 194–218.
Piotrowski, P., & Madeyski, L. (2020). Software defect prediction using bad code smells: A systematic literature review. Data-Centric Business and Applications, 77–99.
Ramay, W. Y., Umer, Q., Yin, X. C., Zhu, C., & Illahi, I. (2019). Deep neural network-based severity prediction of bug reports. IEEE Access, 7, 46846–46857.
Taba, S. E. S., Khomh, F., Zou, Y., Hassan, A. E., & Nagappan, M. (2013). Predicting bugs using antipatterns. 2013 IEEE International Conference on Software Maintenance, 270–279.
Ubayawardana, G. M., & Karunaratna, D. D. (2018). Bug prediction model using code smells. 2018 18th international conference on advances in ICT for emerging regions (ICTer), IEEE, 70–77.
Vidal, S. A., Marcos, C., & Díaz-Pace, J. A. (2016). An approach to prioritize code smells for refactoring. Automated Software Engineering, 23(3), 501–532.
Wang, B., Xu, L., Yan, M., Liu, C., & Liu, L. (2020). Multi-dimension convolutional neural network for bug localization. IEEE Transactions on Services Computing.
Yang, L., & Shami, A. (2020). On hyperparameter optimization of machine learning algorithms: Theory and practice, Neurocomputing, 415, 295–316, ISSN0925–2312. https://doi.org/10.1016/j.neucom.2020.07.061
Yu, L., Schach, S. R., & Chen, K. (2005). Measuring the maintainability of open-source software. 2005 International Symposium on Empirical Software Engineering, IEEE, 7.
Zaidi, S. F. A., Awan, F. M., Lee, M., Woo, H., & Lee, C.-G. (2020). Applying convolutional neural networks with different word representation techniques to recommend bug fixers. IEEE Access, 8, 213729–213747.
Zhang, X., Zhou, Y., & Zhu, C. (2017). An empirical study of the impact of bad designs on defect proneness. 2017 International Conference on Software Analysis, Testing and Evolution (SATE), 1–9.
Author information
Authors and Affiliations
Contributions
The first author conducted the research methodology and wrote the manuscript. The second author prepared the figures and tables and did the implementations. Both authors worked on the experimental results and reviewed the manuscript.
Corresponding author
Ethics declarations
Conflict of interest
The authors declare no competing interests.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Bushehrian, O., Ghane, Z. Code quality control by bug report classification. Software Qual J 31, 991–1007 (2023). https://doi.org/10.1007/s11219-023-09623-7
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-023-09623-7