# Stochastic Differential Equation-Based Flexible Software Reliability Growth Model

Authors: P. K. Kapur; Sameer Anand; Shigeru Yamada; Venkata S. S. Yadavalli
Journal: Mathematical Problems in Engineering
 (2009)

---

## Abstract

Several software reliability growth models (SRGMs) have been developed by software developers in tracking and measuring the growth of reliability. As the size of software system is large and the number of faults detected during the testing phase becomes large, so the change of the number of faults that are detected and removed through each debugging becomes sufficiently small compared with the initial fault content at the beginning of the testing phase. In such a situation, we can model the software fault detection process as a stochastic process with continuous state space. In this paper, we propose a new software reliability growth model based on Itô type of stochastic differential equation. We consider an SDE-based generalized Erlang model with logistic error detection function. The model is estimated and validated on real-life data sets cited in literature to show its flexibility. The proposed model integrated with the concept of stochastic differential equation performs comparatively better than the existing NHPP-based models.


---

## Body

## 1. Introduction

Software reliability engineering is a fast growing field. More than 60% of critical applications are dependent on software. The complexity of business software application is also increasing.Customers need products with high performance that can be sustained over time. Due to high cost of fixing failures, safety concerns, and legal liabilities organizations need to produce software that is reliable. There are several methodologies to develop software but questions that need to be addressed are how many times will the software fail and when, how to estimate testing effort, when to stop testing, and when to release the software. Also, for a software product we need to predict/estimate the maintenance effort; for example, how long must the warranty period must be, once the software is released, how many defects can be expected at what severity levels, how many engineers are required to support the product, for how long, and so forth. Software reliability engineering (SRE) addresses all these issues, from design to testing to maintenance phases.The Software Reliability Growth Model (SRGM) is a tool of SRE that can be used to evaluate the software quantitatively, develop test status, schedule status, and monitor the changes in reliability performance [1]. In the last two decades several Software Reliability models have been developed in the literature showing that the relationship between the testing time and the corresponding number of faults removed is either Exponential or S-shaped or a mix of the two [1–7]. The software includes different types of faults, and each fault requires different strategies and different amounts of testing effort to remove it.Ohba [6] refined the Goel-Okumoto model by assuming that the fault detection/removal rate increases with time and that there are two types of faults in the software. SRGM proposed by Bittanti et al. [2] and Kapur and Garg [5] has similar forms as that of Ohba [6] but is developed under different set of assumptions. Bittanti et al. [2] proposed an SRGM exploiting the fault removal (exposure) rate during the initial and final time epochs of testing. Whereas, Kapur and Garg [5] describe a fault removal phenomenon, where they assume that during a removal process of a fault some of the additional faults might be removed without these faults causing any failure. These models can describe both exponential and S-shaped growth curves and therefore are termed as flexible models [2, 5, 6].The systems with distributed computing improve performance of a computing system and individual users through parallel execution of programs, load balancing and sharing, and replication of programs and data. Ohba [6] proposed the Hyper-exponential SRGM, assuming that software consists of different modules. Each module has its characteristics and thus the faults detected in a particular module have their own peculiarities. Therefore, the Fault Removal Rate for each module is not the same. He suggested that the fault removal process for each module is modeled separately and that the total fault removal phenomenon is the addition of the fault removal process of all the modules. Kapur et al. [1] proposed an SRGM with three types of fault. The first type is modeled by an Exponential model of Goel and Okumoto [4]. The second type is modeled by Delayed S-shaped model of Yamada et al. [7]. The third type is modeled by a three-stage Erlang model proposed by Kapur et al. [1]. The total removal phenomenon is again modeled by the superposition of the three SRGMs [1, 8]. Later they extended their model to cater for more types of faults [9] by incorporating logistic rate during the removal process. We have used different forms of FDR used in Kapur et al. [9] while modeling our proposed SRGM.A number of faults are detected and removed during the long-testing period before the system is released to the market. However, the users then find number of faults and the software company then releases an updated version of the system. Thus in this case the number of faults that remain in the system can be considered to be a stochastic process with continuous state space [10]. Yamada et al. [11] proposed a simple software reliability growth model to describe the fault detection process during the testing phase by applying Itô type Stochastic Differential Equation (SDE) and obtain several software reliability measures using the probability distribution of the stochastic process. Later on, they proposed a flexible Stochastic Differential Equation Model describing a fault-detection process during the system-testing phase of the distributed development environment [12]. Lee et al. [13] used SDEs to represent a per-fault detection rate that incorporate an irregular fluctuation instead of an NHPP, and consider a per-fault detection rate that depends on the testing time t. In this paper, we will use SDEs to represent fault-detection rate that incorporate an irregular fluctuation. We consider a composite model called generalized SRGM that includes three different types of faults, for example, simple, hard, and complex. Fault detection rates for hard and complex faults are assumed to be time dependent that can incorporate learning as the testing progresses. In practice, it is more realistic to describe different rates for three different types of faults. This model can further be extended to n-type of faults.For the estimation of the parameters of the proposed model, Statistical Package for Social Sciences (SPSS) is used. The goodness-of-fit of the proposed model is compared with NHPP-based Generalised Erlang Model [1, 8]. The proposed model provides significant improved goodness-of-fit results. The paper is organized as follows. Section 2 presents the model formulation for the proposed model. Sections 3 and 4 give the method used for parameter estimation and criteria used for validation and evaluation of the proposed model. We conclude the paper in Section 5.


## 2. Framework for Modeling

### 2.1. Notations for the Proposed SRGM using SDE

(N(t)): The number of faults detected during the testing time t and is a random variable.E(N(t)): Expected number of faults detected in the time interval (0,t] during testing phase.a: Total fault content.a1,a2,a3: Initial fault content for simple, hard, and complex types of faults.b1,b2,b3: Fault detection rates for simple, hard, and complex faults.E(N1(t)),E(N2(t)),E(N3(t)): Mean number of fault for simple, hard, and complex faults.σ1,σ2,σ3: Positive constant that represents the magnitude of the irregular fluctuations for simple, hard, and complex faults.γ1(t),γ2(t),γ3(t): Standardized Gaussian White Noise for simple, hard, and complex faults.P1,P2,P3: Proportion of simple, hard, and complex faults in total fault content  of the software.β: Constant parameter representing a learning phenomenon in the Fault Removal Rate function.


### 2.2. Assumptions for the Proposed SRGM using SDE

(1)
The Software fault-detection process is modeled as a stochastic process with a continuous state space.(2)
The number of faults remaining in the software system gradually decreases as the testing procedure goes on.(3)
Software is subject to failures during execution caused by faults remaining in the software.(4)
The faults existing in the software are of three types: simple, hard, and complex. They are distinguished by the amount of testing effort needed to remove them.(5)
During the fault isolation/removal, no new fault is introduced into the system and the faults are debugged perfectly.


### 2.3. SDE Modeling for Different Categories of Faults

#### 2.3.1. Framework for Modeling for Proposed SRGM

Several SRGMs are based on the assumption of NHPP, treating the fault detection process during the testing phase as a discrete counting process. Recently Yamada et al. [11] asserted that if the size of the software system is large then the number of the faults detected during the testing phase is also large and change in the number of faults, which are corrected and removed through each debugging, becomes small compared with the initial faults content at the beginning of the testing phase.  So, in order to describe the stochastic behavior of the fault detection process, we can use a Stochastic Model with continuous state space. Since the latent faults in the software system are detected and eliminated during the testing phase, the number of faults remaining in the software system gradually decreases as the testing progresses. Therefore, it is reasonable to assume the following differential equation:
(2.1)dN(t)dt=r(t)[a-N(t)],
where r(t) is a fault-detection rate per remaining fault at testing time t.However, the behavior ofr(t) is not completely known since it is subject to random effects such as the testing effort expenditure, the skill level of the testers, and the testing tools and thus might have irregular fluctuation. Thus, we have
(2.2)r(t)=b(t)+noise.
Let γ(t) be a standard Gaussian white noise and σ a positive constant representing a magnitude of the irregular fluctuations. So (2.2) can be written as
(2.3)r(t)=b(t)+σγ(t).
Hence, (2.1) becomes
(2.4)dN(t)dt=[b(t)+σγ(t)][a-N(t)].
Equation (2.4) can be extended to the following stochastic differential equation of an Itô Type [10, 11]:
(2.5)dN(t)=[b(t)-12σ2][a-N(t)]dt+σ[a-N(t)]dw(t),
where W(t) is a one-dimensional Wiener process, which is formally defined as an integration of the white noise γ(t) with respect to time t. Use Itô formula solution to (2.5); and use initial condition N(0)=0 as follows [10, 11]:
(2.6)N(t)=a[1-exp{-∫0tb(x)dx-σW(t)}].
The Wiener process W(t) is a Gaussian process and it has the following properties:
(2.7)Pr[w(0)=0]=1,E[w(t)]=0,E[w(t)w(t′)]=min[t,t′].
In this paper, we consider three different fault detection rates, that is, constant for simple and time dependent for hard and complex faults. In practical situation it has been observed that a large number of simple (trivial) faults are easily detected at the early stages of testing while fault removal may become extremely difficult in the later stages.We now briefly describe the Generalised Erlang model with logistic error detection function. The proposed model is based on Generalised Erlang model with logistic error detection function and SDE as described below.Generalized Erlang Model with Logistic Error Detection Function [9, 14–16]
The model assumes that the testing phase consists of three processes, namely, failure, observation, fault detection, and fault removal. The software faults are categorized into three types according to the amount of testing effort needed to remove them. The time delay between the failure observation and the subsequent fault removal is assumed to represent the testing effort. The faults are classified as simple if the time delay between the failure observation, fault detection and removal is negligible. For the simple faults, the fault removal phenomenon is modeled by the exponential model of Goel and Okumoto [4], that is,
(2.8)m1(t)=a1(1-e-b1t).
It is assumed that the hard faults consume more testing effort when compared with simple faults. This means that the testing team will have to spend more time to analyze the cause of the failure and therefore requires greater efforts to remove them. Hence the removal process for such faults is modeled as a two-stage process. The first stage describes the failure observation process. The second stage of the two-stage process describes the delayed fault removal process. During this stage the fault removal rate is assumed to be time dependent. The reason for this assumption is to incorporate the effect of learning on the removal process. With each fault removal insight is gained into the nature of faults present and function described, called logistic function, can account for that. So its mean value function will be given by [9, 14–16]
(2.9)m2(t)=a2[1-{1+b2t}e-b2t]1+βe-b2t.
There can be components still having harder faults or complex faults. These faults can require more effort for removal after isolation. Hence they need to be modeled with greater time lag between failure observation and removal. The first stage describes the failure observation process, the second stage describes the fault isolation process, and the third stage describes the fault removal process. During this stage the fault removal rate is assumed to be time dependent. Logistic learning function is used again to represent the knowledge gained by the removal team. Hence its mean value function will be given by [9, 14–16]
(2.10)m3(t)=a3[1-(1+b3t+b32t2/2)e-b3t]1+βe-b3t.
The total removal phenomenon is modeled by the superposition of the three NHPP, that is,
(2.11)m(t)=m1(t)+m2(t)+m3(t),m(t)=a1(1-e-b1t)+a2[1-(1+b2t)e-b2.t]1+βe-b2t+a3[1-(1+b3t+b32t2/2)e-b3.t]1+βe-b3t,
where a1=ap1,a2=ap2, and a3=ap3,wherep3=(1-p1-p2).
From (2.8), (2.9), and (2.10), it has been observed that the removal rate per fault for simple faults is a constant b1, whereas for hard and complex faults, these rates are function of time t and are given, respectively, by
(2.12)b2(t)=m2′(t)a2-m2(t)=b2(1+β+b2t)-b2(1+βe-b2t)(1+β+b2t)(1+βe-b2t),b3(t)=m3′(t)a3-m3(t)=b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t)(1+β+b3t+b32t2/2)(1+βe-b3t).
Note that b2(t) and b3(t) increases monotonically with time and tend to constantsb2 and b3, respectively, as t→∞.Proposed SRGM
Now in the proposed model considering the three forms ofb(t), that is, for simple represented by a constant FDR, hard and complex faults represented by time dependent FDR’s, respectively, we have
(2.13)b1(t)=b1,b2(t)=b2(1+β+b2t)-b2(1+βe-b2t)(1+β+b2t)(1+βe-b2t),b3(t)=b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t)(1+β+b3t+b32t2/2)(1+βe-b3t).
Now considering (2.6) and using the above form of b(t) for different type of faults, we have the number of faults detected at testing time t given by the following expression for three types of faults:
(2.14)N1(t)=a1[1-{e-b1t-σ1W1(t)}],N2(t)=a2[1-(1+β+b2t){e-b2t-σ2W2(t)}1+βe-b2t],N3(t)=a3[1-(1+β+b3t+b32t2/2){e-b3t-σ3W3(t)}1+βe-b3t].
Taking Expectation of N1(t),N2(t),andN3(t), respectively, we have
(2.15)E(N1(t))=a1[1-{e-b1t+σ12t/2}],E(N2(t))=a2[1-(1+β+b2t){e-b2t+σ22t/2}1+βe-b2t],E(N3(t))=a3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}1+βe-b3t].


### 2.4. Modeling Total Fault Removal Phenomenon

Total fault removal phenomenon of the proposed model is the sum of mean removal phenomenon for simple, hard, and complex faults, that is,(2.16)E(N(t))=E(N1(t))+E(N2(t))+E(N3(t)).
This is the mean value function of superimposed removal phenomenon of  simple, hard, and complex faults, respectively.For proposed SRGM,(2.17)E(N(t))=a1[1-{e-b1t+σ12t/2}]+a2[1-(1+β+b2t){e-b2t+σ22t/2}1+βe-b2t]+a3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}1+βe-b3t],
where a1=ap1,a2=ap2, and a3=ap3,wherep3=(1-p1-p2).


### 2.5. Software Reliability Measures

In this section, we present expression for various software reliability measures. Information on the current number of detected faults in the system is important to estimate the situation of the progress on the software testing procedures. Since it is a random variable in our models, so its expected value can be useful measures. We have already calculated the expected value for our models in (2.15).Instantaneous MTBF for Proposed SRGM
The instantaneous MTBF (denoted byMTBFI) is Average Time Between Failure in an interval dt. The instantaneous mean time between software failures is useful to measure the property of the frequency of software failure occurrence. The instantaneous MTBF for the proposed models is given by the following.
For simple faults,(2.18)(MTBF)I=1a1(b1-(1/2)σ2)e-(b1-(1/2)σ2)t.
For hard faults,(2.19)(MTBF)I=1a2[(1+β+b2t)/(1+βe-b2t)][𝔄]e-(b2-(1/2)σ22)t,
where 𝔄 = (b2(1+β+b2t)-b2(1+βe-b2t))/((1+β+b2t)(1+βe-b2t))-(1/2)σ22.
For complex faults,(2.20)(MTBF)I=1a3[(1+β+b3t+b32t2/2)/(1+βe-b3t)][𝔅-(1/2)σ32]e-(b3-(1/2)σ32)t,
where 𝔅 denotes (b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t))/((1+β+b3t+b32t2/2) (1+βe-b3t))Cumulative MTBF for Proposed SRGM
The cumulative MTBF is the Average Time Between Failure from the beginning of the test (i.e.,t=0) up to time t. We have the following cumulative mean time between software failures (denoted by MTBFC) for the proposed models:
(2.21)(MTBF)C=tE(N(t)).The cumulative MTBF of the model is given as follows.Simple faults:(2.22)(MTBF)C=ta1[1-{e-b1t+σ12t/2}].Hard faults:(2.23)(MTBF)C=ta2[1-(1+β+b2t){e-b2t+σ22t/2}/(1+βe-b2t)].Complex faults:(2.24)(MTBF)C=ta3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}/(1+βe-b3t)].


## 2.1. Notations for the Proposed SRGM using SDE

(N(t)): The number of faults detected during the testing time t and is a random variable.E(N(t)): Expected number of faults detected in the time interval (0,t] during testing phase.a: Total fault content.a1,a2,a3: Initial fault content for simple, hard, and complex types of faults.b1,b2,b3: Fault detection rates for simple, hard, and complex faults.E(N1(t)),E(N2(t)),E(N3(t)): Mean number of fault for simple, hard, and complex faults.σ1,σ2,σ3: Positive constant that represents the magnitude of the irregular fluctuations for simple, hard, and complex faults.γ1(t),γ2(t),γ3(t): Standardized Gaussian White Noise for simple, hard, and complex faults.P1,P2,P3: Proportion of simple, hard, and complex faults in total fault content  of the software.β: Constant parameter representing a learning phenomenon in the Fault Removal Rate function.


## 2.2. Assumptions for the Proposed SRGM using SDE

(1)
The Software fault-detection process is modeled as a stochastic process with a continuous state space.(2)
The number of faults remaining in the software system gradually decreases as the testing procedure goes on.(3)
Software is subject to failures during execution caused by faults remaining in the software.(4)
The faults existing in the software are of three types: simple, hard, and complex. They are distinguished by the amount of testing effort needed to remove them.(5)
During the fault isolation/removal, no new fault is introduced into the system and the faults are debugged perfectly.


## 2.3. SDE Modeling for Different Categories of Faults

### 2.3.1. Framework for Modeling for Proposed SRGM

Several SRGMs are based on the assumption of NHPP, treating the fault detection process during the testing phase as a discrete counting process. Recently Yamada et al. [11] asserted that if the size of the software system is large then the number of the faults detected during the testing phase is also large and change in the number of faults, which are corrected and removed through each debugging, becomes small compared with the initial faults content at the beginning of the testing phase.  So, in order to describe the stochastic behavior of the fault detection process, we can use a Stochastic Model with continuous state space. Since the latent faults in the software system are detected and eliminated during the testing phase, the number of faults remaining in the software system gradually decreases as the testing progresses. Therefore, it is reasonable to assume the following differential equation:
(2.1)dN(t)dt=r(t)[a-N(t)],
where r(t) is a fault-detection rate per remaining fault at testing time t.However, the behavior ofr(t) is not completely known since it is subject to random effects such as the testing effort expenditure, the skill level of the testers, and the testing tools and thus might have irregular fluctuation. Thus, we have
(2.2)r(t)=b(t)+noise.
Let γ(t) be a standard Gaussian white noise and σ a positive constant representing a magnitude of the irregular fluctuations. So (2.2) can be written as
(2.3)r(t)=b(t)+σγ(t).
Hence, (2.1) becomes
(2.4)dN(t)dt=[b(t)+σγ(t)][a-N(t)].
Equation (2.4) can be extended to the following stochastic differential equation of an Itô Type [10, 11]:
(2.5)dN(t)=[b(t)-12σ2][a-N(t)]dt+σ[a-N(t)]dw(t),
where W(t) is a one-dimensional Wiener process, which is formally defined as an integration of the white noise γ(t) with respect to time t. Use Itô formula solution to (2.5); and use initial condition N(0)=0 as follows [10, 11]:
(2.6)N(t)=a[1-exp{-∫0tb(x)dx-σW(t)}].
The Wiener process W(t) is a Gaussian process and it has the following properties:
(2.7)Pr[w(0)=0]=1,E[w(t)]=0,E[w(t)w(t′)]=min[t,t′].
In this paper, we consider three different fault detection rates, that is, constant for simple and time dependent for hard and complex faults. In practical situation it has been observed that a large number of simple (trivial) faults are easily detected at the early stages of testing while fault removal may become extremely difficult in the later stages.We now briefly describe the Generalised Erlang model with logistic error detection function. The proposed model is based on Generalised Erlang model with logistic error detection function and SDE as described below.Generalized Erlang Model with Logistic Error Detection Function [9, 14–16]
The model assumes that the testing phase consists of three processes, namely, failure, observation, fault detection, and fault removal. The software faults are categorized into three types according to the amount of testing effort needed to remove them. The time delay between the failure observation and the subsequent fault removal is assumed to represent the testing effort. The faults are classified as simple if the time delay between the failure observation, fault detection and removal is negligible. For the simple faults, the fault removal phenomenon is modeled by the exponential model of Goel and Okumoto [4], that is,
(2.8)m1(t)=a1(1-e-b1t).
It is assumed that the hard faults consume more testing effort when compared with simple faults. This means that the testing team will have to spend more time to analyze the cause of the failure and therefore requires greater efforts to remove them. Hence the removal process for such faults is modeled as a two-stage process. The first stage describes the failure observation process. The second stage of the two-stage process describes the delayed fault removal process. During this stage the fault removal rate is assumed to be time dependent. The reason for this assumption is to incorporate the effect of learning on the removal process. With each fault removal insight is gained into the nature of faults present and function described, called logistic function, can account for that. So its mean value function will be given by [9, 14–16]
(2.9)m2(t)=a2[1-{1+b2t}e-b2t]1+βe-b2t.
There can be components still having harder faults or complex faults. These faults can require more effort for removal after isolation. Hence they need to be modeled with greater time lag between failure observation and removal. The first stage describes the failure observation process, the second stage describes the fault isolation process, and the third stage describes the fault removal process. During this stage the fault removal rate is assumed to be time dependent. Logistic learning function is used again to represent the knowledge gained by the removal team. Hence its mean value function will be given by [9, 14–16]
(2.10)m3(t)=a3[1-(1+b3t+b32t2/2)e-b3t]1+βe-b3t.
The total removal phenomenon is modeled by the superposition of the three NHPP, that is,
(2.11)m(t)=m1(t)+m2(t)+m3(t),m(t)=a1(1-e-b1t)+a2[1-(1+b2t)e-b2.t]1+βe-b2t+a3[1-(1+b3t+b32t2/2)e-b3.t]1+βe-b3t,
where a1=ap1,a2=ap2, and a3=ap3,wherep3=(1-p1-p2).
From (2.8), (2.9), and (2.10), it has been observed that the removal rate per fault for simple faults is a constant b1, whereas for hard and complex faults, these rates are function of time t and are given, respectively, by
(2.12)b2(t)=m2′(t)a2-m2(t)=b2(1+β+b2t)-b2(1+βe-b2t)(1+β+b2t)(1+βe-b2t),b3(t)=m3′(t)a3-m3(t)=b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t)(1+β+b3t+b32t2/2)(1+βe-b3t).
Note that b2(t) and b3(t) increases monotonically with time and tend to constantsb2 and b3, respectively, as t→∞.Proposed SRGM
Now in the proposed model considering the three forms ofb(t), that is, for simple represented by a constant FDR, hard and complex faults represented by time dependent FDR’s, respectively, we have
(2.13)b1(t)=b1,b2(t)=b2(1+β+b2t)-b2(1+βe-b2t)(1+β+b2t)(1+βe-b2t),b3(t)=b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t)(1+β+b3t+b32t2/2)(1+βe-b3t).
Now considering (2.6) and using the above form of b(t) for different type of faults, we have the number of faults detected at testing time t given by the following expression for three types of faults:
(2.14)N1(t)=a1[1-{e-b1t-σ1W1(t)}],N2(t)=a2[1-(1+β+b2t){e-b2t-σ2W2(t)}1+βe-b2t],N3(t)=a3[1-(1+β+b3t+b32t2/2){e-b3t-σ3W3(t)}1+βe-b3t].
Taking Expectation of N1(t),N2(t),andN3(t), respectively, we have
(2.15)E(N1(t))=a1[1-{e-b1t+σ12t/2}],E(N2(t))=a2[1-(1+β+b2t){e-b2t+σ22t/2}1+βe-b2t],E(N3(t))=a3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}1+βe-b3t].


## 2.3.1. Framework for Modeling for Proposed SRGM

Several SRGMs are based on the assumption of NHPP, treating the fault detection process during the testing phase as a discrete counting process. Recently Yamada et al. [11] asserted that if the size of the software system is large then the number of the faults detected during the testing phase is also large and change in the number of faults, which are corrected and removed through each debugging, becomes small compared with the initial faults content at the beginning of the testing phase.  So, in order to describe the stochastic behavior of the fault detection process, we can use a Stochastic Model with continuous state space. Since the latent faults in the software system are detected and eliminated during the testing phase, the number of faults remaining in the software system gradually decreases as the testing progresses. Therefore, it is reasonable to assume the following differential equation:
(2.1)dN(t)dt=r(t)[a-N(t)],
where r(t) is a fault-detection rate per remaining fault at testing time t.However, the behavior ofr(t) is not completely known since it is subject to random effects such as the testing effort expenditure, the skill level of the testers, and the testing tools and thus might have irregular fluctuation. Thus, we have
(2.2)r(t)=b(t)+noise.
Let γ(t) be a standard Gaussian white noise and σ a positive constant representing a magnitude of the irregular fluctuations. So (2.2) can be written as
(2.3)r(t)=b(t)+σγ(t).
Hence, (2.1) becomes
(2.4)dN(t)dt=[b(t)+σγ(t)][a-N(t)].
Equation (2.4) can be extended to the following stochastic differential equation of an Itô Type [10, 11]:
(2.5)dN(t)=[b(t)-12σ2][a-N(t)]dt+σ[a-N(t)]dw(t),
where W(t) is a one-dimensional Wiener process, which is formally defined as an integration of the white noise γ(t) with respect to time t. Use Itô formula solution to (2.5); and use initial condition N(0)=0 as follows [10, 11]:
(2.6)N(t)=a[1-exp{-∫0tb(x)dx-σW(t)}].
The Wiener process W(t) is a Gaussian process and it has the following properties:
(2.7)Pr[w(0)=0]=1,E[w(t)]=0,E[w(t)w(t′)]=min[t,t′].
In this paper, we consider three different fault detection rates, that is, constant for simple and time dependent for hard and complex faults. In practical situation it has been observed that a large number of simple (trivial) faults are easily detected at the early stages of testing while fault removal may become extremely difficult in the later stages.We now briefly describe the Generalised Erlang model with logistic error detection function. The proposed model is based on Generalised Erlang model with logistic error detection function and SDE as described below.Generalized Erlang Model with Logistic Error Detection Function [9, 14–16]
The model assumes that the testing phase consists of three processes, namely, failure, observation, fault detection, and fault removal. The software faults are categorized into three types according to the amount of testing effort needed to remove them. The time delay between the failure observation and the subsequent fault removal is assumed to represent the testing effort. The faults are classified as simple if the time delay between the failure observation, fault detection and removal is negligible. For the simple faults, the fault removal phenomenon is modeled by the exponential model of Goel and Okumoto [4], that is,
(2.8)m1(t)=a1(1-e-b1t).
It is assumed that the hard faults consume more testing effort when compared with simple faults. This means that the testing team will have to spend more time to analyze the cause of the failure and therefore requires greater efforts to remove them. Hence the removal process for such faults is modeled as a two-stage process. The first stage describes the failure observation process. The second stage of the two-stage process describes the delayed fault removal process. During this stage the fault removal rate is assumed to be time dependent. The reason for this assumption is to incorporate the effect of learning on the removal process. With each fault removal insight is gained into the nature of faults present and function described, called logistic function, can account for that. So its mean value function will be given by [9, 14–16]
(2.9)m2(t)=a2[1-{1+b2t}e-b2t]1+βe-b2t.
There can be components still having harder faults or complex faults. These faults can require more effort for removal after isolation. Hence they need to be modeled with greater time lag between failure observation and removal. The first stage describes the failure observation process, the second stage describes the fault isolation process, and the third stage describes the fault removal process. During this stage the fault removal rate is assumed to be time dependent. Logistic learning function is used again to represent the knowledge gained by the removal team. Hence its mean value function will be given by [9, 14–16]
(2.10)m3(t)=a3[1-(1+b3t+b32t2/2)e-b3t]1+βe-b3t.
The total removal phenomenon is modeled by the superposition of the three NHPP, that is,
(2.11)m(t)=m1(t)+m2(t)+m3(t),m(t)=a1(1-e-b1t)+a2[1-(1+b2t)e-b2.t]1+βe-b2t+a3[1-(1+b3t+b32t2/2)e-b3.t]1+βe-b3t,
where a1=ap1,a2=ap2, and a3=ap3,wherep3=(1-p1-p2).
From (2.8), (2.9), and (2.10), it has been observed that the removal rate per fault for simple faults is a constant b1, whereas for hard and complex faults, these rates are function of time t and are given, respectively, by
(2.12)b2(t)=m2′(t)a2-m2(t)=b2(1+β+b2t)-b2(1+βe-b2t)(1+β+b2t)(1+βe-b2t),b3(t)=m3′(t)a3-m3(t)=b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t)(1+β+b3t+b32t2/2)(1+βe-b3t).
Note that b2(t) and b3(t) increases monotonically with time and tend to constantsb2 and b3, respectively, as t→∞.Proposed SRGM
Now in the proposed model considering the three forms ofb(t), that is, for simple represented by a constant FDR, hard and complex faults represented by time dependent FDR’s, respectively, we have
(2.13)b1(t)=b1,b2(t)=b2(1+β+b2t)-b2(1+βe-b2t)(1+β+b2t)(1+βe-b2t),b3(t)=b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t)(1+β+b3t+b32t2/2)(1+βe-b3t).
Now considering (2.6) and using the above form of b(t) for different type of faults, we have the number of faults detected at testing time t given by the following expression for three types of faults:
(2.14)N1(t)=a1[1-{e-b1t-σ1W1(t)}],N2(t)=a2[1-(1+β+b2t){e-b2t-σ2W2(t)}1+βe-b2t],N3(t)=a3[1-(1+β+b3t+b32t2/2){e-b3t-σ3W3(t)}1+βe-b3t].
Taking Expectation of N1(t),N2(t),andN3(t), respectively, we have
(2.15)E(N1(t))=a1[1-{e-b1t+σ12t/2}],E(N2(t))=a2[1-(1+β+b2t){e-b2t+σ22t/2}1+βe-b2t],E(N3(t))=a3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}1+βe-b3t].


## 2.4. Modeling Total Fault Removal Phenomenon

Total fault removal phenomenon of the proposed model is the sum of mean removal phenomenon for simple, hard, and complex faults, that is,(2.16)E(N(t))=E(N1(t))+E(N2(t))+E(N3(t)).
This is the mean value function of superimposed removal phenomenon of  simple, hard, and complex faults, respectively.For proposed SRGM,(2.17)E(N(t))=a1[1-{e-b1t+σ12t/2}]+a2[1-(1+β+b2t){e-b2t+σ22t/2}1+βe-b2t]+a3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}1+βe-b3t],
where a1=ap1,a2=ap2, and a3=ap3,wherep3=(1-p1-p2).


## 2.5. Software Reliability Measures

In this section, we present expression for various software reliability measures. Information on the current number of detected faults in the system is important to estimate the situation of the progress on the software testing procedures. Since it is a random variable in our models, so its expected value can be useful measures. We have already calculated the expected value for our models in (2.15).Instantaneous MTBF for Proposed SRGM
The instantaneous MTBF (denoted byMTBFI) is Average Time Between Failure in an interval dt. The instantaneous mean time between software failures is useful to measure the property of the frequency of software failure occurrence. The instantaneous MTBF for the proposed models is given by the following.
For simple faults,(2.18)(MTBF)I=1a1(b1-(1/2)σ2)e-(b1-(1/2)σ2)t.
For hard faults,(2.19)(MTBF)I=1a2[(1+β+b2t)/(1+βe-b2t)][𝔄]e-(b2-(1/2)σ22)t,
where 𝔄 = (b2(1+β+b2t)-b2(1+βe-b2t))/((1+β+b2t)(1+βe-b2t))-(1/2)σ22.
For complex faults,(2.20)(MTBF)I=1a3[(1+β+b3t+b32t2/2)/(1+βe-b3t)][𝔅-(1/2)σ32]e-(b3-(1/2)σ32)t,
where 𝔅 denotes (b3(1+β+b3t+b32t2/2)-b3(1+βe-b3t)(1+b3t))/((1+β+b3t+b32t2/2) (1+βe-b3t))Cumulative MTBF for Proposed SRGM
The cumulative MTBF is the Average Time Between Failure from the beginning of the test (i.e.,t=0) up to time t. We have the following cumulative mean time between software failures (denoted by MTBFC) for the proposed models:
(2.21)(MTBF)C=tE(N(t)).The cumulative MTBF of the model is given as follows.Simple faults:(2.22)(MTBF)C=ta1[1-{e-b1t+σ12t/2}].Hard faults:(2.23)(MTBF)C=ta2[1-(1+β+b2t){e-b2t+σ22t/2}/(1+βe-b2t)].Complex faults:(2.24)(MTBF)C=ta3[1-(1+β+b3t+b32t2/2){e-b3t+σ32t/2}/(1+βe-b3t)].


## 3. Parameter Estimation

Parameter estimation and model validation are important aspects of modeling. The mathematical equations of the proposed SRGM are nonlinear. Technically, it is more difficult to find the solution for non-linear models using Least Square method and requires numerical algorithms to solve it. Statistical software packages such as SPSS help to overcome this problem. SPSS is a Statistical Package for Social Sciences. For the estimation of the parameters of the proposed model, Method of Least Square (Nonlinear Regression method) has been used. Nonlinear Regression is a method of finding a nonlinear model of the relationship between the dependent variable and a set of independent variables. Unlike traditional linear regression, which is restricted to estimating linear models, nonlinear regression can estimate models with arbitrary relationships between independent and dependent variables.


## 4. Comparison Criteria for SRGM

The performance of SRGM is judged by its ability to fit the past software fault data (goodness of fit).


### 4.1. Goodness of Fit Criteria

The term goodness of fit is used in two different contexts. In one context, it denotes the question if a sample of data came from a population with a specific distribution. In another context, it denotes the question of “How good does a mathematical model (e.g., a linear regression model) fit to the data”?(a) The Mean Square Fitting Error (MSE)
The model under comparison is used to simulate the fault data, the difference between the expected values,m̂(ti), and the observed data yi is measured by MSE [1] as follows. MSE=∑i=1k((m̂(ti)-yi)2/k), where k is the number of observations. The lower MSE indicates less fitting error, thus better goodness of fit.(b) Coefficient of Multiple Determination (R2)
We define this coefficient as the ratio of the sum of squares resulting from the trend model to that from constant model subtracted from 1 [1], that is,  R2=1-residualSS/correctedSS. R2 measures the percentage of the total variation about the mean accounted for the fitted curve. It ranges in value from 0 to 1. Small values indicate that the model does not fit the data well. The larger R2 is, the better the model explains the variation in the data.(c) Prediction Error (PE)
The difference between the observation and prediction of number of failures at any instant of timei is known as PEi. Lower the value of Prediction Error, better the goodness of fit [17].(d) Bias
The average of PEs is known as bias. Lower the value of Bias, better the goodness of fit [17].(e) Variation
The standard deviation of PE is known as variation.Variation=(1/(N-1))∑(PEi-Bias)2. Lower the value of Variation, better the goodness of fit [17].(f) Root Mean Square Prediction Error
It is a measure of closeness with which a model predicts the observation.RMSPE=(Bias2+Variation2). Lower the value of Root Mean Square Prediction Error, better the goodness of fit [17].


## 4.1. Goodness of Fit Criteria

The term goodness of fit is used in two different contexts. In one context, it denotes the question if a sample of data came from a population with a specific distribution. In another context, it denotes the question of “How good does a mathematical model (e.g., a linear regression model) fit to the data”?(a) The Mean Square Fitting Error (MSE)
The model under comparison is used to simulate the fault data, the difference between the expected values,m̂(ti), and the observed data yi is measured by MSE [1] as follows. MSE=∑i=1k((m̂(ti)-yi)2/k), where k is the number of observations. The lower MSE indicates less fitting error, thus better goodness of fit.(b) Coefficient of Multiple Determination (R2)
We define this coefficient as the ratio of the sum of squares resulting from the trend model to that from constant model subtracted from 1 [1], that is,  R2=1-residualSS/correctedSS. R2 measures the percentage of the total variation about the mean accounted for the fitted curve. It ranges in value from 0 to 1. Small values indicate that the model does not fit the data well. The larger R2 is, the better the model explains the variation in the data.(c) Prediction Error (PE)
The difference between the observation and prediction of number of failures at any instant of timei is known as PEi. Lower the value of Prediction Error, better the goodness of fit [17].(d) Bias
The average of PEs is known as bias. Lower the value of Bias, better the goodness of fit [17].(e) Variation
The standard deviation of PE is known as variation.Variation=(1/(N-1))∑(PEi-Bias)2. Lower the value of Variation, better the goodness of fit [17].(f) Root Mean Square Prediction Error
It is a measure of closeness with which a model predicts the observation.RMSPE=(Bias2+Variation2). Lower the value of Root Mean Square Prediction Error, better the goodness of fit [17].


## 5. Model Validation

To check the validity of the proposed model and to find out its software reliability growth, it has been tested on three Data Sets. The Proposed Model has been compared with NHPP-based Generalised Erlang Model [1, 8]. For the proposed SRGM, the results are better for given data sets.DS-I
This data is cited from Brooks and Motley (1980) [18].  The fault data set is for a radar system of size 124 KLOC (Kilo Lines of Code) tested for 35 weeks in which 1301 faults were removed. Parameters of SRGM (2.17) were estimated using SPSS software tool. The Parameter Estimation result and the goodness of fit results for the proposed SRGM are given in Table 2. The goodness of fit curve for DS-1 is given in Figure 1.Figure 1
Goodness of Fit Curve for DS-I.DS-II
This data is cited from Misra [19]. The software was tested for 38 weeks during which 2456.4 computer hours were used and 231 faults were removed. Parameters of SRGM (2.17) were estimated using SPSS software tool. The Parameter Estimation result and the goodness of fit results for the proposed SRGM are given in Table 3. The goodness of fit curve for DS-II is given in Figure 2. Values of p1,p2, and p3 are computed from the actual data set since data was available separately for each type of fault.Figure 2
Goodness of Fit Curve for DS-II.DS-III
This data is cited from Fedora Core Linux [20, 21], which is one of the operating systems developed under an open source project. The Fedora project is made up of many small-sized projects. Fedora is a set of projects, sponsored by Red Hat and guided by the Fedora project board.   These projects are developed by a large community of people, who strive to provide and maintain the very best in free, open source software and standards. The fault count data collected in this paper are collected in the bug tracking system on the website of Fedora project in May, 2007. The schedule of release candidate version in Fedora core 7 is shown as in Table 1.Table 1
Schedule of release candidate version in Fedora core 7.
DateEvent1 February 2007Test 1 release29 February 2007Test 2 release27 March 2007Test 3 release24 April 2007Test 4 release31 May 2007Fedora 7 general availabilityTable 2
(a)
Parameter for DS-I (Brooks DS-2 1301 faults)
Models under comparisonsParameter estimationab1b2b3βp1p2p3σ1σ2σ3Proposed SRGM1339.089.248.25148.264.669.067.194.001.111Generalized Erlang model [1, 8]1453.376.000.165—.011.000.989———(b)
Parameter for DS-I
Models under comparisonComparison criteriaR2MSEBiasVariationRMSPEProposed SRGM1.0081.3734−0.069759.204699.204957Generalised Erlang model  [1, 8].9941200.5220.93914835.1414835.15403Table 3
(a)
Parameter for DS-II (Misra 231 faults)
Models under comparisonsParameter estimationab1b2b3βp1p2p3σ1σ2σ3Proposed SRGM420.059.104.37866.593.64.342.018.048.185.599Generalised Erlang model [1, 8]561.022.012.041—.64.342.018———(b)
Parameter for DS-II
Models under ComparisonComparison criteriaR2MSEBiasVariationRMSPEProposed SRGM.9987.22−0.71042.6262312.720631Generalised Erlang model [1, 8].99522.090.69434.7117964.762687In this paper, the test data for the end of Test 3 Release version is considered, where 164 faults were detected. The Parameter Estimation result and the goodness of fit results for the proposed SRGM are given in Table4. The goodness of fit curve for DS-III is given in Figure 3.Table 4
(a)
Parameter for DS-III
Models under comparisonsParameter estimationab1b2b3βp1p2p3σ1σ2σ3Proposed SRGM215.189.135.1138.220.640.140.328.072.346Generalised Erlang model [1, 8]195.063.011.075—.212.004.784———(b)
Parameter for DS-III
Models under comparisonComparison criteriaR2MSEBiasVariationRMSPEProposed SRGM.9985.880100.0705832.5412942.54227Generalised Erlang model [1, 8].9977.959050.1498162.842242.84618Figure 3
Goodness of Fit Curve for DS-III.The values of initial fault contentsa1,a2,a3 can be calculated from Tables 2, 3, and 4 for the given datasets, that is, DS-I, DS-II, and DS-III using ai=api;i=1,2,3.Description of Tables
Tables2(a), 3(a), and 4(a) show  the parameter estimates of proposed model and generalized Erlang model for data sets DS-I, DS-II, and DS-III, respectively. For data set DS-II, the proportions of different types of faults are given in the data set and for other data sets proportions of different types of faults are estimated. With the prior knowledge of proportion of different types of faults, programmer can act with better strategy for removing these faults.
Tables2(b), 3(b), and 4(b) describe the comparison criteria results for proposed model and generalized Erlang model. It is clear from the table that proposed model results are better in comparison with generalized Erlang model for different comparison criteria parameters.Goodness of Fit Curves for DS-I, DS-II, and DS-III
The curves given in Figures1 and 2 reflect the initial learning curve at the beginning, as test members become familiar with the software, followed by growth and then leveling off as the residual faults become more difficult to uncover.


## 6. Conclusion

This paper presents an SRGM for different categories of faults based on Itô type Stochastic Differential Equations. In this paper, we have extended the SDE approach adopted by Yamada et al. [12] to the case where the faults are simple, hard, and complex in nature. The goodness of the fit analysis has been done on three real software failure datasets. The goodness-of-fit of the proposed Model is compared with NHPP-based Generalized Erlang model [1, 8]. The results obtained show better fit and wider applicability of the model to different types of failure datasets. From the numerical illustrations, we see that the Proposed Model provides improved results with better predictability because of lower MSE, Variation, RMSPE, Bias and higher R2. The usability of SDE is not only restricted to the model described in this paper but it can also be extended to improve the results of any other SRGM. The Proposed Model can also be used by incorporating error generation and various Testing Effort functions.



---

*Source: 581383-2009-07-02.xml*