Estimating the Parameters of Software Reliability Growth Models Using the Grey Wolf Optimization Algorithm Alaa F. Sheta and Amal Abdel-Raouf †‡ Computers and Systems Department, Electronics Research Institute, Giza, Egypt Computer Science Department, Southern Connecticut State University, USA Abstract—In this age of technology, building quality software is essential to competing in the business market. One of the major principles required for any quality and business software product for value fulfillment is reliability. Estimating software reliability early during the software development life cycle saves time and money as it prevents spending larger sums fixing a defective soft- ware product after deployment. The Software Reliability Growth Model (SRGM) can be used to predict the number of failures that may be encountered during the software testing process. In this paper we explore the advantages of the Grey Wolf Optimization (GWO) algorithm in estimating the SRGM’s parameters with the objective of minimizing the difference between the estimated and the actual number of failures of the software system. We evaluated three different software reliability growth models: the Exponential Model (EXPM), the Power Model (POWM) and the Delayed S-Shaped Model (DSSM). In addition, we used three different datasets to conduct an experimental study in order to show the effectiveness of our approach. Index Terms—Software Reliability, Reliability Growth Models, Grey Wolf Optimizer, Exponential Model, Power Model, Delayed S-Shaped Model I. I NTRODUCTION With the increasing importance of software systems in almost all aspects of our lives, there is a great need for the production of high quality software systems. The traditional model of software quality factors, suggested by McCall [1], consists of eleven different factors that should be considered in determining the quality of software. Subsequent models include Evans and Marciniak [2], which consists of twelve factors, and Deutsch and Willis [3], which consists of fifteen factors. All of these models incorporate reliability as one of the software quality factors. Software reliability is defined according to [4] as: ”the probability, over a given period of time, that the system will correctly deliver services as expected by the user.” A more precise definition of software reliability is given by [5], [6] as: ”the probability of failure-free operation over a specified time, in a given environment, for a specific purpose.” Unfortunately, the task of identifying and repairing software faults is costly. Moreover, the cost of finding the remaining faults increases as the number of faults decreases until the cost exceeds the benefit [7], [8]. Therefore, there is no software system that is failure-free, which is why the reliability requirements should be included in any software development contract. Software reliability is measured based on the maximum allowable rate of failure and can represent an entire system or one or more of its parts [9]–[11]. The cost of software development is always higher for more reliable systems. Consequently, the desired reliability should be determined depending on the criticalness of failure-free operation of the system. For example, the failure rate of a life-threatening system such as heart-monitor should be very low while a company website may have a higher failure rate. In the literature, many methods are introduced to esti- mate and predict software reliability [12]–[20]. The proposed methods can be classified into two main categories [9]. The first category is Software Reliability Prediction Models and the second category is Software Reliability Growth Models (SRGM). Software reliability prediction models consider pre- dicting the reliability early in the development life cycle. In the requirements, design or implementation phases, the model uses historical data and some quantitative measurements like Lines of code (LOC) and depth of nesting loops to estimate the failure rate. Examples of software reliability prediction models include the orthogonal defect classification model [21] and the constructive quality model [22], [23]. Some reliability models may be based on software architecture and others on modified adaptive testing [24], [25]. The second category, SRGM, represents how the system reliability changes over time during the testing phase and based on test data. SRGMs collect defect data and statistically correlate this data with known mathematical functions to predict software reliability [26]–[29]. Many SRGMs are proposed to represent the relationship between software reliability and time. SRGMs can be classi- fied as either parametric or non-parametric models. The most famous parametric models are the Non-Homogeneous Poisson Process (NHPP) models used in [30]–[32]. Non-parametric models have less restricted assumptions as they can predict reliability based only on defect data [33]. Other SRGMs are introduced using Neural Networks in [14], [34], [35], using Bayesian learning in [36], [37] and using particle swarm optimization in [38], [39]. In this paper, we utilize the Grey Wolf Optimization (GWO) algorithm to predict faults during the software testing process using software faults historical data. The rest of this paper is organized as follows: In Section II, we briefly introduce (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 7, No. 4, 2016 499 | P a g e www.ijacsa.thesai.org