Abstract

Software reliability is the probability of failure-free operations of software in a specific environment in a given time period. Various software reliability models have been designed by the researchers, but the JM model is the first influential model. The JM model was developed with the basic assumption that the faults are independent in this model and the debugging process is perfect. But practically, all debugging processes may not be perfect, especially when the faults are dependent; in this case, the fault that is actually to have been removed may also remove more than one fault and cause it to add some new faults. To handle this behavior of faults mutual dependency, we need a new model which may be less reliable or the result accuracy of the model may be lower than that of the existing ones, but it can handle more practical situations in the fault removal process. In this paper, we proposed a new software reliability model with the same assumption that at whatever time a failure is detected, it is not completely eradicated and there is a possibility of raising some new faults because of wrong analysis or inaccurate modifications in the software or the removal of the existing fault may also remove some other faults. The proposed model is more practical than the existing ones.

1. Introduction

Software reliability models are used to find the faults in a software product, and for the prediction of faults, these models predict and estimate the number of faults in the build. On behalf of this, one can take the decision whether this product has to be released or corresponding changes have to be made to improve the quality. Nowadays, due to the usage of software in real-time applications, even a single fault in the software becomes very critical, and it may result in the loss of life and other consequences. So, researchers are putting their best efforts in developing and improving the software reliability models so that it may help to provide more reliable software and better-quality software. Several software reliability models were proposed, but still the industry crept around the faults and unstable software. The JM model states that faults are independent of each other and equally likely to cause a failure during a test. The detected fault is eliminated immediately without the detection of any new fault. But these assumptions are not realistic. In our proposed work, we have extended the JM model by replacing these assumptions with the new assumptions that the faults are dependent and not equally likely to cause a failure in the test, and whenever a failure occurred, the identified faults are removed with probability p, and it may result in the removal and generation of some other faults, from the total number of faults, with random probabilities r, such that p > r, respectively.

This paper is organized into the following sections. Related work is given in Section 2. JM model, its assumptions, and the mathematical formulation are described in Section 3. In Section 4, we have proposed a new variant of the JM model. Results and discussions are given in Section 5. Finally, Section 6 concludes the work.

The first reliability model was reported in 1967 using the Weibull distribution of time between failures [1]. After this, in 1972, the first influential software reliability model [2] with initial N bugs was reported [2]. A similar Jelinski–Moranda (JM) model was developed in 1975 [3, 4]. Some researchers designed the first nonhomogeneous Poisson process model [5]. In 1983, Meinhold and Singpurwalla proposed a Bayesian software reliability model which was a variant of the JM model that used the prior distributions to the parameters [6]. Jewell used the Meinhold and Singpurwalla model to derive a new model that provides Bayesian analysis of the software reliability model of JM [7]. Tohma proposed a new software reliability model [8] for estimating the number of residual software faults based on the hypergeometric distribution [8, 9]. Brocklehurst improved reliability predictions by a process of recalibration [10]. Sahinoglu uses the probability density estimation of failures in the clustering event of the software failures [11]. Campodonico and Singpurwalla proposed a Bayesian approach using the logarithmic Poisson model to predict the number of failures in a software system [12]. Chen and Arlat proposed a fault correction history-based input domain reliability growth model [13]. A software reliability model using enhanced nonhomogeneous Poisson process (ENHPP) approach was reported in the literature [14]. Some authors considered the phenomena of failure correlation to develop a software reliability model framework [15]. Tian described a model for homogeneous failure intensities by grouping data into clusters [16]. Huang estimated the reliability with the unified scheme of some nonhomogeneous Poisson process models [17]. Some researchers proposed a model for individual component-based software reliability and the architecture of the system [18]. Advanced chaos theory to the stochastic models, an alternative approach of software reliability, is also there in the literature [19].

Raj Kiran and Ravi group different models to accurately forecast software reliability [20]. Jun-Gang proposed an RVM (relevance vector machine)-based model for software reliability prediction [21]. Some researchers addressed the issue of optimal selection of software reliability growth models [22].

An improved additive model to reliability estimation of modular structure-based software is there to study [23]. Inoue and Yamada discussed discrete software reliability measurement based on a discredited (NHPP) model [24]. Kiyoshi Honda prosposed a stochastic process based software reliability model [25], and Kim HeeCheul proposed a comparative problem of a reliability model for Lomax and Gompertz distribution property [26]. Shinji Inoue proposed a new software reliability model with the effect of a change point for the Markovian software reliability model having an imperfect debugging environment [27]. This proposed model shows that the observed time-dependent behavior of the expected number of failures occurred after the change point has more practical situations compared to the other existing models. Kwang Yoon Song proposed a new nonhomogeneous Poisson process (NHPP) software reliability model [28]. An explicit mean value function solution for the proposed model is presented. Jinyong Wang and Xiaoping Mi proposed a new software reliability model [29] considering the decreasing trend of fault detection rate. This model has better predictive performance and better fitting than the previous existing models in this field. Yoshinobu Tamura and Shigeru Yamada proposed a deep learning-based scheme for the optimal selection of a software reliability model [30]. As model selection affects the optimal release time and total software cost, in this paper we also discussed these two criteria for the selection of a software reliability model. Subhashis Chatterjee and Ankur Shukla developed a new software reliability method with the imperfect debugging phenomenon [31]. A new ranking method has been proposed to improve the accuracy of model ranking. Da Hye Lee proposed a software reliability model based on NHPP [32]. The proposed model has the same mean value functions and the testing coverage, but it considers the environment that is uncertain. There are unexpected variables like syntax error considered in the proposed model. Shozab Khurshid designed a generalized framework to develop an effort-based software reliability model [33] with fault reduction factor (FRF), change point, and error generation. Yunlu Zhao, Tadashi Dohi, and Hiroyuki Okamura proposed a nonhomogeneous binomial processes (NHBPs)-based framework [34] for test-run reliability modeling. This paper also demonstrates that Poisson binomial distribution has a vital role in reliability modeling. Barack and Huang [35] proposed software reliability growth models (SRGMs) to assess and predict the reliability of a mobile application. Through the analysis of bug reports, four software reliability models are used to assess the dependability of an open-source mobile application. Sun and Li [36] proposed a new nonhomogeneous Poisson process (NHPP) based on fault severity considerations. We categorise software faults into three levels based on their complexity: Level I denotes a simple fault, Level II a general fault, and Level III a severe fault. Raghuvanshi et al. [37] proposed a time-variant software reliability model (SRM) that takes fault detection and the highest number of faults in software into account. The time-variant genetic algorithm process is used to evaluate the SRM parameters. The proposed model is based on a nonhomogeneous Poisson process (NHPP) and includes fault-dependent detection, software failure intensity, and unremoved error in the software. Van Driel et al. [38] predict the software reliability in agile testing environments and attempt to model this way of working by extending the Jelinski–Moranda model to a “stack” of feature-specific models, assuming that bugs are labelled with the feature to which they belong.

3. Jelinski–Moranda (JM) Model

The Jelinski–Moranda (JM) model [4] is a Markov model, and this model has strongly influenced many later models. Numerous software reliability models have been proposed by assuming this model as the base model.

Characteristics of the JM model are as follows:(1)It is a binomial type model(2)It is probably the first and definitely one of the well-recognized black-box models(3)This model always produces an overoptimistic reliability prediction(4)JM model follows a perfect debugging process

3.1. Model Assumptions

The assumptions considered in the JM model are given as follows:(i)There are unknown numbers of faults in the software initially and these fault counts are fixed and constant(ii)The faults are not dependent on each other and equally likely to cause a failure during a test(iii)There are independent time intervals among the occurrences of failures, exponentially distributed random variables(iv)The software failure rate remains constant over the intervals between fault occurrences(v)The failure rate is directly proportional to the number of faults that linger in the software(vi)A detected fault is eliminated immediately, and no new faults are initiated during the elimination of the detected fault(vii)When a failure occurs, the corresponding fault is removed with certainty

3.2. Mathematical Formulation of the JM Model

(i)Software fault rate: it is defined as the faults per unit timein which ϕ is a constant of proportionality representing the failure rate contributed by each fault, N is the initial number of faults in the software, and ti is the time between (i − 1) th and ith failure.(ii)Failure density function: it is the function that assigns to each number the probability that the random variable takes a value less than or equal to the given number.It is defined as the derivative of the failure probability.(iii)Distribution function is given as follows:(iv)Reliability function at the ith failure interval is given by(v)MTTF for the ith failure = 1/ϕ[N − (i − 1)].

4. Proposed Model

The assumptions (ii) and (vi) of the JM model states that faults are independent of each other and equally likely to cause a failure at some point in a test. The detected fault is removed immediately without the detection of any new fault. But these assumptions are not realistic. We extended the JM model by replacing the assumptions (ii) and (vi) with the new assumptions that the faults are dependent and not equally likely to cause a failure during a test, and whenever a failure occurred, the detected faults are eliminated with probability p, and it may result in the removal and generation of some other faults, from the total number of faults, with random probabilities r, such that p > r, respectively.

4.1. Model Assumptions of the Proposed Model

The assumptions in the proposed model include the following:(i) to (v) Assumptions (i) to (v) are the same as of the JM modelvi) Whenever a failure occurred, the detected faults are removed with some probability and it may result first in the removal of some other faults with the random probability p and second in the generation of some other new faults with the random probability r, such that p > r.

4.2. Mathematical Formulation of the Proposed Model

(i)Failure rate:where φ is the proportionality constant representing the failure rate contributed by each fault, N is the initial no. of faults in the software, ti is the time between (i − 1)th and ith failure, pj is the random probability to remove the faults, rk is the random probability to add some new faults, and m is the number of faults added such that pj > rk and m < N − (i − 1).(ii)Failure density is defined as “at any point in the life of a system, the incremental change in the number of failures per associated incremental change in time”The failure distribution function is the integral of the failure density function.(iii)Distribution function (cumulative density function):or(iv)The mean time to failure (MTTF) is the average time between observed failures: MTTF = 1 − Fi(ti).(v)Reliability function:

4.3. Parameter Estimation

We have to estimate the number of remaining faults N′ and the constant of proportionality Φ. Our proposed model parameters are estimated using the maximum likelihood estimation method.(i)Parameter estimation:

We have obtained maximum likelihood estimation N′ by solving the equation (10) and put this value into (11) to obtain the maximum likelihood estimation Φ.

A program has been implemented in MATLAB to find the value of N′ from (5) (Algorithm 1)

(1)for n = 3 to 136
 begin
(2)  for N′ = 3 to 150
   begin
(3)    r = f(N′)
   end
(4)Find the minimum value of r and print N′ for that value.
 end

Now find the reliability for the next time interval.(i)Reliability:

5. Results and Discussion

In this paper, we proposed and implemented a new variant of the JM model. The failure vs. time graph based on the dataset used by Musa [9] is shown in Figure 1.

We estimate the parameters . With the help of these parameters, we calculate the mean time to failure (MTTF) and the reliability for the JM model and the proposed model using MATLAB R 2015a.

The model validation is given in Table 1.

It is concluded from this table that the reliability of the proposed model is not as expected as the JM model. But the proposed model assumptions are more realistic and will act as a new approach for software reliability estimation.

A response graph has been used to show the effect of individual input failure parameters on selected responses. The effect of the following one factor graphs (Figures 24) was studied on output.(a)Reliability vs. failure number(b)Failure rate vs. failure number(c)Failure rate vs. MTTF

In Figure 2, we have compared the software reliability with the failure numbers. The result shows that the proposed model exhibits almost similar behavior as the JM model, and the proposed model is found to be more practical than the JM model. Figure 3 shows that the failure rate for the proposed model is greater than that for the JM model, as the proposed model is for imperfect debugging. Figure 4 compares MTTF and failure rate, and at some point, MTTF for the proposed model is less than that for the JM model.

We have compared the proposed model and the JM model in terms of average MTTF and the average reliability of the system and the results are shown in Figures 56.

From Figure 5, it has been found that the average mean time to failure (MTTF) for the proposed model is less than that for the JM model. This shows that, using the proposed model, we have improved the system.

From Figure 6, it has been found that the average reliability for the JM model is more than that for the proposed model, but the proposed model is more practical and has a better real-world approach.

6. Conclusion

The proposed model is an imperfect debugging process model with fault dependency. In this model, the removal of the existing fault can also remove some other faults with the random probability of an individual and it may also generate some new faults with some probability. Reliability for the JM model and the proposed model is 0.6 and 0.4, respectively. The mean time to failure (MTTF) for the JM model and the proposed model is 1118.596 and 371.5370972, respectively. Experimental results indicate that MTTF for the proposed model is found to be better than that for the JM model. But the reliability of the proposed model is not as good as the JM model, but it has a more real-world approach and practical nature.

Data Availability

The data that support the findings of this study are available on request from the corresponding author.

Conflicts of Interest

The authors declare that they do not have any conflicts of interest.