Software Fault Prediction Using Deep Learning Algorithms

Software Fault Prediction Using Deep Learning Algorithms

Osama Al Qasem (Yarmouk University, Irbid, Jordan) and Mohammed Akour (Al Yamamah University, Riyadh, Saudi Arabia & Yarmouk University, Irbid, Jordan)
Copyright: © 2019 |Pages: 19
DOI: 10.4018/IJOSSP.2019100101

Abstract

Software faults prediction (SFP) processes can be used for detecting faulty constructs at early stages of the development lifecycle, in addition to its being used in several phases of the development process. Machine learning (ML) is widely used in this area. One of the most promising subsets from ML is deep learning that achieves remarkable performance in various areas. Two deep learning algorithms are used in this paper, the Multi-layer perceptrons (MLPs) and Convolutional Neural Network (CNN). In order to evaluate the studied algorithms, four commonly used datasets from NASA are used i.e. (PC1, KC1, KC2 and CM1). The experiment results show how the CNN algorithm achieves prediction superiority of the MLP algorithm. The accuracy and detection rate measurements when using CNN has reached the standard ratio respectively as follows: PC1 97.7% - 73.9%, KC1 100% - 100%, KC2 99.3% - 99.2% and CM1 97.3% - 82.3%. This study provides promising results in using the deep learning for software fault prediction research.
Article Preview
Top

1. Introduction

Software testing and quality assurance activities are performed to discover faults in the software prior to its delivery to the customer. During design or development phases some faults might be passed through to the next level without detecting and fixing them, so it is important to predict not just detect the occurrence of the fault as a pre-activity to prevent the fault before it becomes real. Software fault prediction (SFP) `is one of the quality models that help to conduct the software development life cycle healthily. To reduce the software failure, fault prediction aids in planning, controlling and executing software development activities, classify any software module as faulty or non- faulty which serve as a shield that might avoid any later unforeseen risk, which leads eventually to increase the efficiency and effectiveness of software Rana, R. (2015). The SFP also reduce the costs, time, and effort should be spent on software Rana, R. (2015).

The evolution of software engineering has led to the development of many fault prediction algorithms using machine learning (supervised and unsupervised learning) techniques. Different fault prediction algorithms utilize diverse metrics to measure the performance of these algorithms like accuracy, error rate, precision, time is taken, recall, F-measure, etc.

Previous SFP models use ML techniques to predict the faults of software. The optimal faults prediction model to be succeed and be more accurate in predicting the faults hinges on three factors that are a selection of data have more faulty units that be used for identifying the relationship between software code metrics and faults; selection of quality metrics, and applying feature selection that reduce the time; and selecting the appropriate techniques that known (Nisa & Ahsan, 2015).

The literature is rich with many perdition models that used for SFP. Some of the frequently used ML algorithms include Decision Tree, Naïve Bayes classification, and neural network. Using these algorithms has offered improvements in prediction accuracy. However, it has limitations as expert knowledge is needed to process data, the comparatively high level of human expert interaction required, and a massive amount of training data is required for operation (considered time overheads), which can become challenging in a dynamic environment (Zhao, Yan, Chen, Mao, Wang, & Gao, 2019).

To address the above restrictions, the area of research that currently concerns across multiple domains is deep learning. Deep Learning is a set of techniques used for learning from multi-layers in Neural Networks; it is a subfield of machine learning that uses supervised and/or unsupervised strategies. This has magnificent success in various domains such as computer vision, bioinformatics, etc. (Peng, Jiang, Wang, Alwageed, & Yao, 2017). Deep learning lets computational models that are made from multi layers to learn representations of data with multiple levels of abstraction (LeCun, Bengio, & Hinton, 2015), It automatically extracts essential features from raw data and makes it robust, with respect to variations in input (Paul, & Singh, 2015). It attempts to learn on multi-layer where each layer is defined from a lower layer by using a set of algorithms. The essential example of a deep learning model is the deep feedforward network or multi-layer perceptrons (MLPs). Generally, the usefulness of deep learning becomes better when the amount of training data increases. As a result, the capabilities to solve the complicated applications and its accuracy continually increase (Bengio, Goodfellow & Courville, 2017).

Deep learning overcomes the AI community by making improvements to solve problems that have been resisted for many years. It introduces more successes in the future because it requires very little engineering by hand. The new learning algorithms and architectures that are currently being developed depend on deep learning (LeCun, Bengio, & Hinton, 2015). Some of these techniques are Deep Belief Network (DBN), Convolutional Neural Network (CNN), Autoencoder (AE) and Multilayer Perceptrons (MLPs).

The main objective behind this research work is to implement different deep learning algorithms for SFP purposes and then investigate the performance of the application of studied deep learning approaches in this work over traditional approaches. Authors try to explicitly compare the evaluation results of MLP and CNN with several previously studied approach.

Complete Article List

Search this Journal:
Reset
Open Access Articles
Volume 11: 4 Issues (2020): Forthcoming, Available for Pre-Order
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 1 Issue (2015)
Volume 5: 3 Issues (2014)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing