Phase-Type Modeling Approaches for Software Reliability Modeling with Debugging Process

Reflecting the software fault debugging procedure or environment of testing activities on software reliability models is often discussed as the approaches for improving assessment accuracy for model-based reliability assessment. We discuss a modeling approach reflecting software debugging procedure based on phase-type modeling scheme and propose probability models for software reliability measurement. Further, we give brief consideration for the usefulness of this modeling approach by using a few data sets


Introduction
For conducting estimation of the failure-free operation probability of software system and other useful reliability assessment measures, it is known software reliability models (Yamada, 2014) is utilized practically in reliability assessment of software system. Actually, a lot of discussions on software reliability modeling by considering actual testing environment for improving the quality of model-based assessment of software reliability. For examples, discretization of continuous time models and discretized models, which has been derived by discretizing the continuous-time models, have been focused as one of the approaches for considering software fault-counting data collection activities (Inoue and Yamada, 2006). And change-point software reliability modeling approaches have been proposed by considering the change of testing environment and the influence on stochastic behavior of reliability growth process during the testing phase (Inoue and Yamada, 2015). Considering other factors, such as software fault debugging process and software complexity, must be useful for developing more useful software reliability models which enables us to reliability assessment with increased accuracy (Inoue and Yamada, 2007). Recently, as one of the approaches for improving the quality of assessment and for yielding unified modeling scheme, a phase-type modeling approach (Okamura and Dohi, 2016) has been proposed. In this modeling approach, the perfect fault-correction time follows a phase-type probability distribution describing the uncertainty of the time to absorption in a CTMC, which is the abbreviation of a continuous-time Markov chain. It is known several probability distribution functions are described by considering the counterpart to the absorbing CTMC. However, we need to assume the appropriate continuous-time Markov chain representing possible situation of software debugging process when we obtain a software reliability model by following this modeling approach.
This paper gives one of the solutions on applying the phase-type approach for reflecting actual testing environment in software reliability assessment. That is, we apply this probability distribution to describing the uncertainty of the fault elimination procedure in the test activities. Then, we give several discussions on how to apply the phase-type modeling scheme to a software debugging procedures by considering several types of possible software debugging processes. This paper is expected to contribute to applying practically the phase-type modeling scheme for developing useful software reliability models reflecting actual debugging process.

Modeling Framework
In our discussion, we assume the following situations for developing a mathematical model in software reliability assessment (Langberg and Singpurwalla, 1985): (A1) 0 (> 0) faults have been introduced before testing. And 0 (> 0) is a random variable. (A2) Successive software failure observation and its perfect fault-correction follows an i.i.d.
probability distribution function ( ), which is a phase-type probability distribution function. (A3) We do not consider any fault introduction during the debugging process.
From the assumptions above, we formulate the time dependent uncertainty for the number of detected faults, which is denoted by { ( ), ≥ 0}, as follows: under the condition that 0 is a Poisson random variable taking mean (> 0). From Eq. (1), it is possible to obtain the failure free probability in operation during the time-interval ( , + ]( ≥ 0), for example.

Phase-Type Modeling Approach
The phase-type distribution (Buchholz et al., 2014) describes the uncertainty of the time by considering an absorbing CTMC. Considering an absorbing CTMC with the set of transient states = {1, 2, ⋯ , } and the absorption = { + 1}, we can characterize the behavior of the absorbing CTMC by the infinitesimal generator shown as In Eq.
(2), × submatrix represents the transition rates within the transient states. The transition rates to the absorption from the transient states are expressed by , × 1 vector. There is no transition from the absorption by the row vector in Eq. (2). Analyzing the CTMC, we can formulate the uncertainty of the time to reach the absorption from transient states as In Eq. (3), is the initial state vector, is the column vector in which the all elements are 1.
We discuss descriptions of a software debugging process, and also discuss the relationship to the existing models. Now, we consider the absorbing CTMC shown in Figure 1. Actually, Figure 1 depicts the state transition diagram for the debugging situation of existing well-known exponential software reliability growth model (Musa et al., 1987). In Figure 1, the debugging process consists of just one process, which is the software failure detection process, denoted by (P1). Further this model involves the assumption that the fault is immediately and perfectly debugged. From Figure  1, we obtain and = (1), respectively. Then, ( ) in Eq.
(1) follows the exponential distribution with mean from Eq. (3). Consequently, an exponential model: can be obtained by following the modeling framework shown in Eq. (1). Further we give another explanation of our notion in describing debugging process by analyzing a delayed S-shaped model (Yamada, 2014). This model assumes the consecutive failure detection and the fault removal debugging processes. Based on the assumption, we obtain

Our Models Considering Debugging Process Scenario
We consider several kinds of possible debugging process in practical debugging situation and its difficulties on the software detection and removal. And we show how to apply the phase-type modeling scheme for obtaining a useful software reliability model for developing a stochastic model in software reliability assessment. Now we consider the case of Figure 3 representing a debugging process. The debugging process in Figure 3 consists of the following three debugging processes: failure-detection (P1), cause analysis where the null elements represent 0. We also obtain = (1 0 0). Then, we obtain ( ) for Figure 3 as by Eq. (1). We call Eq. (8) "Model A".
Considering the difficulties on software fault debugging, we propose another model. This model is a hybrid of the debugging processes in Figures 2 and 3. Figure 4 shows the phase structure for the debugging process of this model. In this model, we consider high and low classification in software debugging procedure. Concretely, software failures classified into the high difficulty and the faults are detected and removed through the failure detection (P1) and fault removal (P2) with probability . On the other hand, the failures classified into the low difficulty are removed immediately by the fault removal (P3) with probability (1 − ). From Figure 4, we obtain where the null elements represent 0. And the initial state vector is obtained as = (0 1). Then, the mean value function is We call Eq. (10) "Model B".

Comparisons with Existing Model
We do comparisons of our models and existing delayed S-shaped model (Delayed S-shaped) (Yamada, 2014), which has been introduced in Section 2, in terms of the MSE, MLL, and AIC (Yamada, 2014). The MLL means the maximum likelihood. Now we apply the following three fault count data: D1, D2, and D3 (Inoue and Yamada, 2006). The fault-counting data D1 and DS3 show S-shaped curves and D2 shows an exponential growth curve, respectively.
In Table 1 the best values in terms of each criterion show by using the bold fonts. We can say our Model B is expected to show better fitting performance to the observed data than other models from Table 1. From these results, we can see the importance of focusing on the debugging procedure when we do software reliability modeling. And we can see that the usefulness of the phase-type modeling scheme in describing several kinds of debugging situations which must be observed in actual testing activities.

Conclusion
We discussed how to apply the phase-type modeling scheme for developing a specific software reliability model. Concretely, we applied this modeling scheme to describing the uncertainty of the software debugging procedures. Further, we developed new types of software reliability models reflecting a possible software debugging procedures with the difficulty in debugging activities. As we discussed, we can say that the phase-type modeling scheme is expected to yield some other models in software reliability assessment by describing a lot of kinds of software debugging procedures and physical meanings in debugging activities. In model comparisons, we recognize the software debugging process-oriented approach described by the phase-type probability distribution is expected to obtain more plausible models for software reliability assessment. However, we need more investigations for making sure the usefulness of modeling approach discussed in this paper. And we are interested in seeking some other models developed by following this modeling approach.