Skip to content
Related Articles
Open in App
Not now

Related Articles

Software Engineering | Goel-Okumoto Model

Improve Article
Save Article
  • Difficulty Level : Hard
  • Last Updated : 05 Oct, 2018
Improve Article
Save Article

The Goel-Okumoto model (also called as exponential NHPP model) is based on the following assumptions:

  1. All faults in a program are mutually independent of the failure detection point of view.
  2. The number of failures detected at any time is proportional to the current number of faults in a program. This means that the probability of the failures for faults actually occurring, i.e., detected, is constant.
  3. The isolated faults are removed prior to future test occasions.
  4. Each time a software failure occurs, the software error which caused it is immediately removed, and no new errors are introduced.

This is shown in the following differential equation:

    $$\frac{\partial m(t)}{\partial t} = b[a-m(t)]$$  \null\hfill    Eqn(1)

where a is the expected total number of faults that exist in the software before testing and b is the failure detection rate or the failure intensity of a fault.


The mean value function solution of the differential equation 1 is given by

    $$m(t) = a(1-e^{-bt})$$

This model is known as the Goel-Okumoto model

For Type-I data, the estimate of parameters a and b of the Goel-Okumoto model using the MLE method can be obtained by solving the following equations simultaneously:

    $$a= \frac{y_n}{(1-e^{-bt_n})}\\$$ $$\frac{y_nt_ne^{-bt_n}}{1-e^{-bt_n}} = \sum_{k=1}^n  \frac{(y_k-y_{k-1})(t_ke^{-bt_k}-t_{k-1}e^{-bt_{k-1}})}{(e^{-bt_{k-1}}-e^{-bt_k})}  \\ $$

Similarly, for Type-II data, the estimate of parameters a and b using the MLE
method can be obtained by solving the following equations:

    $$a= \frac{n}{(1-e^{-bS_n})}\\$$ $$\frac{n}{b} = \sum_{k=1}^n S_i + \frac{nS_ne^{(-bS_n)}}{1-e^{-bS_n})}  \\ $$

Let  $\hat{a}$ and $ \hat{b} $ be the MLE of parameters a and b, respectively. We can then obtain the MLE of the mean value function (MVF) and the reliability function as follows:

    $$\hat{m} (t)=\hat{a} [1-e^{-\hat{b}t}]$$ $$ \hat{R} (x|t)=e^{-\hat{a}[e^{-\hat{b}t}-e^{-\hat{b}(t+x)}]}$$

It is of interest to determine the variability of the number of failures at time t, N(t). One can approximately obtain the confidence intervals for N(t) based on the Poisson distribution as

    $$\hat{m}-z_{\alpha} \sqrt{\hat{m}(t)}\leq N(t)\leq \hat{m}(t) + z_{\alpha}  \sqrt{\hat{m}(t)}  $$

where $z_a$ is $100(1+\alpha)/2$ percentile of the standard normal distribution, i.e., N(0, 1).

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!