User:Lfiondella/My sandbox

The Goel-Okumoto (exponential) model is a nonhomogeneous Poisson process (NHPP) software reliability model, which can be used to predict the several quantities, including the number of faults present in software at the beginning of testing, the fault rate, the number of faults remaining, and the additional amount of testing time required to achieve a desired level of reliability for a mission of a specified duration.

Notation
$$m(t)$$ - expected number of faults detected by time t.

$$a$$ - estimated number of faults.

$$b$$ - estimated fault rate.

$$\lambda(t)$$ - faults intensity rate at time t.

$$n$$ - number of faults actually observed (failure times), or number of intervals (fault counts).

$$T$$ - failure time vector.

$$t_{n}$$ - time at which nth fault was detected (failure times), time at which nth interval ended (fault counts).

$$F$$ - fault count vector.

$$f_{i}$$ - number of faults observed in ith interval.

$$t_{m}$$ - mission duration.

$$R^{*}$$ - reliability target.

$$t_{test}$$ - additional testing time.

$$c(t)$$ - cost of releasing software at time t.

$$c_{1}$$ - average cost of removing a fault before release.

$$c_{2}$$ - average cost of removing a fault after release.

$$c_{3}$$ - average cost per unit time to conduct testing.

$$t_{opt}$$ - optimal release time.

Model formulation
The Goel-Okumoto model assumes that the instantaneous rate of change in the number of fault detected with respect to time is equivalent to the fault detection rate multiplied by the number of faults not detected. It is characterized by the following differential equation.

Mean value function
Solving differential equation in ($$) under the initial condition m(0)=0 is equivalent to assuming that no faults have been detected at the beginning of testing, which produces the mean value function

The fault intensity rate is

Maximum likelihood equations
The maximum likelihood equations for failure time data are

The maximum likelihood equations for failure count data are

Conditional reliability
The reliability function for a mission of duration $$t_{m}$$ is

Required testing time
The additional testing time needed to achieve reliability target $$R^{*}$$ given a mission time duration $$t_{m}$$ is

Optimal release
The optimal release time of cost function

is

Numerical example


The SYS1 data set consists of the following 136 observed failure times (unit in seconds)

T=<3, 33, 146, 227, 342, 351, 353, 444, 556, 571, 709, 759, 836, 860, 968, 1056, 1726, 1846, 1872, 1986, 2311, 2366, 2608, 2676, 3098, 3278, 3288, 4434, 5034, 5049, 5085, 5089, 5089, 5097, 5324, 5389, 5565, 5623, 6080, 6380, 6477, 6740, 7192, 7447, 7644, 7837, 7843, 7922, 8738, 10089, 10237, 10258, 10491, 10625, 10982, 11175, 11411, 11442, 11811, 12559, 12559, 12791, 13121, 13486, 14708, 15251, 15261, 15277, 15806, 16185, 16229, 16358, 17168, 17458, 17758, 18287, 18568, 18728, 19556, 20567, 21012, 21308, 23063, 24127, 25910, 26770, 27753, 28460, 28493, 29361, 30085, 32408, 35338, 36799, 37642, 37654, 37915, 39715, 40580, 42015, 42045, 42188, 42296, 42296, 45406, 46653, 47596, 48296, 49171, 49416, 50145, 52042, 52489, 52875, 53321, 53443, 54433, 55381, 56463, 56485, 56560, 57042, 62551, 62651, 62661, 63732, 64103, 64893, 71043, 74364, 75409, 76057, 81542, 82702, 84566, 88682>.

Applying Newton's method to ($$), the estimated fault rate is $$\hat{b}=0.0000342038$$. Substituting this value into ($$), the estimated number of faults is $$\hat{a}=142.881$$. Therefore the estimated number of faults remaining is $$\hat{a}-n=6.881$$.

If this same data set were collected by counting the number of faults in consecutive intervals of 1000 seconds the fault count vector is F=<15, 5, 4, 3, 1, 10, 4, 6, 1, 0, 6, 4, 3, 2, 1, 4, 3, 3, 3, 1, 1, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 0, 1, 0, 0, 1, 1, 3, 0, 1, 1, 0, 5, 0, 0,  1, 1, 1, 1, 2, 1, 0, 3, 2, 1, 1, 3, 1, 0, 0, 0, 0, 3, 1, 2, 0, 0, 0,  0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1>. Applying Newton's method to ($$), the estimated fault rate is $$\hat{b}=0.0000341721$$. Substituting this value into ($$), the estimated number of faults is $$\hat{a}=142.823$$, and the the estimated number of faults remaining is $$\hat{a}-n=6.823$$.

Utilizing the parameters estimates obtained from ($$) and ($$), ($$) indicates that the probability the software will operate failure free for one hour ($$t_{m}=3600$$ seconds) is $$R=0.450596$$, while ($$) suggests that an additional 16.435 hours ($$t_{test}=59165.9$$ seconds) are needed to achieve a reliability of $$R=0.9$$. Furthermore, if $$c_{1}=500$$, $$c_{2}=1000$$, and $$c_{3}=2$$ the optimal software release time determined from ($$) is after an additional 1.627 hours ($$t_{opt}=5856.02$$ seconds) of testing.