## 2 A New Software Reliability Model
### Weibull Fault Detection Rate Function Model  
A generalized NHPP model incorporating the uncertainty of operating environments can be formulated as follows [19]:  
\[\frac{d\ m(t)}{dt}=\eta[b(t)][\mathrm{N}-m(t)], \tag{2}\]  
where \(\eta\) is a random variable that represents the uncertainty of the system fault detection rate in the operating environments with a probability density function \(g\), \(\mathrm{N}\) is the expected number of faults that exists in the software before testing, \(b(t)\) is the fault detection rate function, which also represents the average failure rate of a fault, and \(m(t)\) is the expected number of errors detected by time \(t\) or the mean value function. We propose an NHPP software reliability model, including the uncertainty of the operating environment using Equation (2) and the following assumptions [19; 23]:  
1. The occurrence of software failures follows an NHPP.
2. Software can fail during execution, caused by faults in the software.
3. The software-failure detection rate at any time is proportional to the number of remaining faults in the software at that time.
4. When a software failure occurs, a debugging effort removes the faults immediately.
5. For each debugging effort, regardless of whether the faults are successfully removed, some new faults may be introduced into the software system.
6. The environment affects the unit failure detection rate, \(b(t)\), by multiplying by a factor \(\eta\).  
The solution for the mean value function m(t), where the initial condition m(0) = 0, is given by [19]:  
\[\mathrm{m(t)}=\int_{\eta}\mathrm{N}(1-\mathrm{e}^{-\eta\int_{0}^{t}\mathrm{b(x)dx }})\mathrm{dg}(\eta). \tag{3}\]  
[PERSON] [22] recently developed a generalized software reliability model incorporating the uncertainty of fault detection rate per unit of time in the operating environments where the random variable \(\eta\) has a generalized probability density function g with two parameters, \(\alpha\geq 0\) and \(\beta\geq 0\), and the mean value function from Equation (3) is given by:  
\[\mathrm{m(t)}=\mathrm{N}(1-\frac{\beta}{\beta+\int_{0}^{t}\mathrm{b(s)ds}})^{ \alpha}, \tag{4}\]  
where b(t) is the fault detection rate per fault per unit of time.  
The Weibull distribution is one of the most commonly used distributions for modeling irregular data, is very easy to interpret and very useful. The Weibull distribution is a distribution that can be used instead of a normal distribution for data with a bias, and used lifetime distributions in reliability engineering. Weibull distribution has been applied in the area of reliability quality control duration, and failure time modelling. This distribution can be widely and effectively used in reliability applications because it has wide variety of shapes in its density and failure rate functions, making it useful for fitting many types of data. In the modelling software development was often described by Weibull-type curves. The discrete Weibull distribution can describe flexibility stochastic behavior of the failure occurrence times. The Weibull-based method is significantly better than the Laplacian-based rate prediction. Both logistic and Weibull distributions will result in a cumulative distribution function with an S-shaped for the lifetime software product [25; 26].  
In this paper, we consider a Weibull fault detection rate function b(t) to be as follows:  
\[\mathrm{b(t)}=\mathrm{a}^{\mathrm{b}}\mathrm{b}\mathrm{t}^{\mathrm{b-1}},\ \mathrm{a},\mathrm{b}>0, \tag{5}\]  
where a and b are known as the scale and shape parameters, respectively. A Weibull fault detection rate function b(t) is decreasing for b \(<\) 1, increasing for b \(>\) 1, and constant when b = 1. We obtain a new NHPP software reliability model subject to the uncertainty of the environments, m(t), that can be used to determine the expected number of software failures detected by time t by substituting the function b(t) above into Equation (4):  
\[\mathrm{m(t)}=\mathrm{N}(1-\frac{\beta}{\beta+\left(\mathrm{at}\right)^{ \mathrm{b}}})^{\alpha}, \tag{6}\]