Open Access Open Access  Restricted Access Subscription Access

Software Quality Assurance and the Transformative Role of Machine Learning in Testing

Sumya Akter, Israt Jahan Sarker

Abstract


Software defects can affect software quality and increase the cost of software maintenance. Machine learning can help identify defective software modules and support software testing. This study compares three machine learning models for software defect prediction using the NASA PROMISE JM1 dataset. The models are Decision Tree, Bagged Trees, and Support Vector Machine (SVM). The dataset contains 13,204 software modules, including 2,103 defective modules and 11,101 clean modules. Exploratory data analysis was performed to examine the class distribution, missing values, software metrics, outliers, and correlations. The models were evaluated using accuracy, precision, recall, F1-score, and the area under the receiver operating characteristic curve (ROC-AUC). Bagged Trees achieved the highest accuracy of 85.19% and the highest ROC-AUC of 0.741. However, its recall was only 8.57%, which means that it failed to identify many defective modules. SVM achieved an accuracy of 83.30%, a recall of 34.05%, an F1-score of 39.34%, and a ROC-AUC of 0.671. Decision Tree achieved an accuracy of 80.72% and a ROC-AUC of 0.620. Among the three models, SVM achieved the highest recall and F1-score. These results show that high accuracy does not always mean that a model can identify defective software modules effectively. Therefore, several performance measures should be considered when evaluating machine learning models for software defect prediction.

 


Full Text:

PDF

References


C. Catal and B. Diri, “A systematic review of software fault prediction studies,” Expert Systems with Applications, vol. 36, no. 4, pp. 7346–7355, 2009. doi: 10.1016/j.eswa.2008.10.027.

T. Hall, S. Beecham, D. Bowes, D. Gray, and S. Counsell, “A systematic literature review on fault prediction performance in software engineering,” IEEE Transactions on Software Engineering, vol. 38, no. 6, pp. 1276–1304, 2012. doi: 10.1109/TSE.2011.103.

T. Menzies, J. Greenwald, and A. Frank, “Data mining static code attributes to learn defect predictors,” IEEE Transactions on Software Engineering, vol. 33, no. 1, pp. 2–13, 2007. doi: 10.1109/TSE.2007.256941.

D. Radjenović, M. Heričko, R. Torkar, and A. Živkovič, “Software fault prediction metrics: A systematic literature review,” Information and Software Technology, vol. 55, no. 8, pp. 1397–1418, 2013. doi: 10.1016/j.infsof.2013.02.009.

R. Malhotra, “A systematic review of machine learning techniques for software fault prediction,” Applied Soft Computing, vol. 27, pp. 504–518, 2015. doi: 10.1016/j.asoc.2014.11.023.

T. Menzies and M. Shepperd, “PROMISE repository of software engineering databases,” NASA PROMISE Software Engineering Repository, dataset JM1, 2004. Available: https://openscience.us/repo/defect/mccabehalsted/jm1.html.

M. Shepperd, Q. Song, Z. Sun, and C. Mair, “Data quality: Some comments on the NASA software defect datasets,” IEEE Transactions on Software Engineering, vol. 39, no. 9, pp. 1208–1215, 2013. doi: 10.1109/TSE.2013.11.

J. R. Quinlan, “Induction of decision trees,” Machine Learning, vol. 1, pp. 81–106, 1986. doi: 10.1007/BF00116251.

C. Cortes and V. Vapnik, “Support-vector networks,” Machine Learning, vol. 20, pp. 273–297, 1995. doi: 10.1007/BF00994018.

L. Breiman, “Bagging predictors,” Machine Learning, vol. 24, pp. 123–140, 1996. doi: 10.1007/BF00058655.


Refbacks

  • There are currently no refbacks.