Department of Computer Engineering, Istanbul Kültür University, Istanbul 34158, Turkey.
Department of Computer Science and Engineering, Qatar University, Doha 2713, Qatar.
Sensors (Basel). 2022 Mar 26;22(7):2551. doi: 10.3390/s22072551.
Software defect prediction studies aim to predict defect-prone components before the testing stage of the software development process. The main benefit of these prediction models is that more testing resources can be allocated to fault-prone modules effectively. While a few software defect prediction models have been developed for mobile applications, a systematic overview of these studies is still missing. Therefore, we carried out a Systematic Literature Review (SLR) study to evaluate how machine learning has been applied to predict faults in mobile applications. This study defined nine research questions, and 47 relevant studies were selected from scientific databases to respond to these research questions. Results show that most studies focused on Android applications (i.e., 48%), supervised machine learning has been applied in most studies (i.e., 92%), and object-oriented metrics were mainly preferred. The top five most preferred machine learning algorithms are Naïve Bayes, Support Vector Machines, Logistic Regression, Artificial Neural Networks, and Decision Trees. Researchers mostly preferred Object-Oriented metrics. Only a few studies applied deep learning algorithms including Long Short-Term Memory (LSTM), Deep Belief Networks (DBN), and Deep Neural Networks (DNN). This is the first study that systematically reviews software defect prediction research focused on mobile applications. It will pave the way for further research in mobile software fault prediction and help both researchers and practitioners in this field.
软件缺陷预测研究旨在预测软件开发过程测试阶段之前易出错的组件。这些预测模型的主要好处是可以有效地将更多的测试资源分配给故障模块。虽然已经为移动应用程序开发了一些软件缺陷预测模型,但这些研究的系统概述仍然缺失。因此,我们进行了系统文献综述 (SLR) 研究,以评估机器学习在预测移动应用程序故障方面的应用。这项研究定义了九个研究问题,并从科学数据库中选择了 47 篇相关研究来回答这些研究问题。结果表明,大多数研究都集中在 Android 应用程序上(即 48%),大多数研究都应用了监督机器学习(即 92%),并且主要倾向于面向对象的指标。最受欢迎的前五名机器学习算法是朴素贝叶斯、支持向量机、逻辑回归、人工神经网络和决策树。研究人员主要倾向于面向对象的指标。只有少数研究应用了深度学习算法,包括长短期记忆 (LSTM)、深度置信网络 (DBN) 和深度神经网络 (DNN)。这是第一项系统地审查专注于移动应用程序的软件缺陷预测研究的研究。它将为移动软件故障预测的进一步研究铺平道路,并帮助该领域的研究人员和从业者。