Skip to main content
Log in

Code quality control by bug report classification

  • Published:
Software Quality Journal Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Data availability

The data will be available on demand.

Notes

  1. available at: https://www.bugzilla.org (accessed 06 June 2018).

  2. available at: https://www.atlassian.com/software/jira?bundle=jira-software&edition=free (accessed 06 June 2018).

  3. available at: https://github.com/Ziba-Ghane/CQC.git (accessed 09 June 2022).

  4. available at: https://code.google.com/archive/p/word2vec/ (accessed 08 June 2022).

  5. 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Kramer, O. (2013). Dimensionality reduction with unsupervised nearest neighbors. Springer.

    Book  MATH  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Mamone, S. (1994). The IEEE standard for software maintenance. ACM SIGSOFT Software Engineering Notes, 19(1), 75–76.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

Download references

Author information

Authors and Affiliations

Authors

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

Correspondence to Omid Bushehrian.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-023-09623-7

Keywords

Navigation