Software fault prediction using data mining, machine learning and deep learning techniques: A systematic literature review. (May 2022) - Batool, Iqra; Khan, Tamim Ahmed
Abstract: Software fault/defect prediction assists software developers to identify faulty constructs, such as modules or classes, early in the software development life cycle. There are data mining, machine learning, and deep learning techniques used for software fault prediction. We perform analysis of previously published reviews, surveys, and related studies to distill a list of questions. These questions were either answered in the past but needed a fresh look or they were not considered at all. We justify why answers to newly added questions are important and divide previous work based on data mining, machine learning, and deep learning and compare their performance. We study which datasets were commonly used and what comparison criteria were mostly adopted for software fault prediction. We select 68 primary studies from a wide list of initially selected set following our quality assessment criteria and present answers to our research questions. Graphical abstract: Highlights: We study fault prediction using data mining, machine learning and deep learning. Data mining and machine learning techniques as widely used ones for software fault prediction. Most commonly used metrics are CK, McCabe and Halstead metrics. NASA and PROMISE datasets are widely used repositories. Common performance measures used include Accuracy, Precision, Recall, F1-Score and AUC.