# Optimizing Testing-Resource Allocation Using Architecture-Based Software Reliability Model

Authors: Hiroyuki Okamura; Tadashi Dohi
Journal: Journal of Optimization
 (2018)

---

## Abstract

In the management of software testing, testing-recourse allocation is one of the most important problems due to the tradeoff between development cost and reliability of released software. This paper presents the model-based approach to design the testing-resource allocation. In particular, we employ the architecture-based software reliability model with operational profile to estimate the quantitative software reliability in operation phase and formulate the multiobjective optimization problems with respect to cost, testing effort, and software reliability. In numerical experiment, we investigate the difference of the presented optimization problem from the existing testing-resource allocation model.


---

## Body

## 1. Introduction

Software testing is one of the most important phases to develop the highly reliable software products in software developments. In software testing, many developers, often called testers, try to find software bugs through the execution of test cases. As the number of test cases executed in software testing increases, the reliability of software product also increases by removing software bugs introduced in design and implement phases. However, it requires much efforts to increase the number of test cases executed in software testing. Thus from both cost and reliability points of view, it is important to make a plan for the allocation of testing resources such as the number of testers before software testing.For this purpose, several papers have tried to solve the testing-resource problem with the probabilistic models. Ohtera and Yamada [1] first considered a simple software reliability model dependent on the testing effort and formulated a testing-resource allocation problem. The basic idea comes from the classical reliability allocation problems for component-based systems (e.g., see [2]). Zaheidi and Ashrafi [3] used AHP (Analytic Hierarchy Process) to solve a software reliability allocation model and determined reliability goals at the planning and design stages of the software project. Ashrafi and Berman [4], Berman and Ashrafi [5], Yamada et al. [6], and Nishiwaki et al. [7] extended the original works in [1, 8] and gave nonlinear programming algorithms for more complex resource allocation problems with constraints. Leung [9–11] discussed different optimization problems with various objective functions such as worst case failure probability, software development cost, and worst case utility. Hou et al. [12] considered a different testing-resource allocation problem based on the hypergeometric distribution software reliability model. Jha et al. [13], Wadekar and Gokhale [14], Lyu et al. [15], and Yang and Xie [16] also formulated various optimization problems for the software resource allocation and the software reliability allocation. Helander et al. [17] developed two problems: reliability-constrained cost minimization and budget-constrained reliability maximization under a software development scenario. Though their approach is quite similar to the classical nonlinear programming in the earlier works, it gives the detailed procedure with reality in applying the software resource allocation problem to the real problem. Ngo-The and Ruh [18] formulated a somewhat different problem for the software release planning by allocating the software development resources and gave an interesting case study. Recently, Pietrantuono et al. [19] used an architecture-based software reliability model and considered a reliability and testing time allocation problem. They also gave an empirical study for a program developed in the European space agency. In this way, considerable attentions have been received for the software resource allocation problems.In this study, we focus on the testing-resource allocation with operational profile. The operational profile is a quantitative representation of how the system will be used in user environment [20]. In fact, there are several representations for the operational profile. Ukimoto et al. [21] considered the software testing-resource allocation where the operational profile is time fraction of execution for modules, and they regarded the operational environment as the testing environment with different time scale. This idea is based on the accelerated life testing model where the testing environment is assumed to be accelerated from the operational environment with only the elapsed time [21]. However, since software testing is the environment to detect software bugs, the testing environment might not be the time-accelerated environment of operational environment. Thus in the paper, we consider another representation of operational profile by using architecture-based software reliability model.The architecture-based software reliability model is based on the architecture of the targeted software. In general, software system consists of a number of modules and executes modules according to a programmed logic, namely, the currently executed module changes with the passage of time in operational phase, which is called the execution path. If an execution path does not include any faulty module, the software never fails. That is, the software failure essentially depends on the software architecture and its execution paths. This is the basic concept of architecture-based software reliability model. Littlewood [22, 23] developed the earliest architecture-based software reliability models in operational phase. In his models, the execution path in operational phase is generated by a continuous-time Markov chain (CTMC) and a semi-Markov process. Laprie [24] also provided the similar model to the Littlewood [23] in a different way. Cheung [25] modeled the execution path by a discrete-time Markov chain (DTMC). Ledoux and Rubino [26] and Ledoux [27] extend the original Littlewood models to represent failover operation. Goseva-Popstojanova et al. [28, 29] established a theoretical relationship among different architecture-based software reliability models and compared them through an empirical case study. Singh et al. [30] provided an approach with UML to analyze the component systems which consist of software modules. In this paper, we use the architecture-based software reliability model to estimate the software reliability in operational phase. Compared to Ukimoto’s method [21], our approach provides more accurate estimation of the software reliability in operational phase.The rest of this paper is organized as follows. In Section2, we first describe the models for testing cost and efforts in testing environment based on software reliability growth models (SRGM). After that, the architecture-based software reliability model is also introduced to formulate the quantitative software reliability measure. In particular, we assume two different situations for the system usage. In Section 3, we formulate the software testing-resource allocation problems: reliability-constrained cost minimization and budget-constrained reliability maximization. Section 4 is devoted to the numerical illustration of our models. In Section 4, we compare the optimal solutions of resource allocation by Ukimoto et al.’s model and our model and discuss the effect of representation of operational profiles on the testing-resource allocation. Finally, in Section 5, we conclude this paper with some remarks.


## 2. Model Description

### 2.1. Cost Model in Testing Environment

First we describe the testing cost model in testing environment, which is essentially the same as Ukimoto et al. [21]. The system consists of n components. The software testing starts at time t=0, and the system should be released at time t=tr. Let Ni(t) be the cumulative number of detected faults of component i before testing time t. Consider the following model assumptions:(i)
There are a finite number of faults in each component before testing.(ii)
The fault detection rate for a component is proportional to the amount of testing efforts for the component.Letai and Wi(t) be the expected number of faults before testing and the amount of testing efforts for component i at testing time t. Then the probability mass function (p.m.f.) of the cumulative number of faults is given by(1)PNit=k=Hitkk!exp⁡-Hit,(2)Hit=ai1-exp⁡-riWit,where ri is a fault detection rate per testing effort. The above equations are essentially same as the nonhomogeneous Poisson process (NHPP) based software reliability growth model (SRGM). By applying the testing effort function Wi(t), we can represent a variety of fault detection processes. For instance, (cumulative) Rayleigh curve is typically used to a testing effort function. For the same of simplicity, this paper assumes the following linear testing effort function for all the modules:(3)Wit=ωit+βi,where ωi is the testing effort per unit testing time and βi is a fixed effort for component i.Define the cost structure in testing environment:(i)
c1: fixing cost of a software fault detected in testing phase.(ii)
c2: testing cost per software testing effort.Then the expected total cost for componenti in software testing is given by(4)Citr=c1Hitr+c2Witr.Thus the total cost for software testing becomes(5)Ctr=∑i=1nCitr.Also the total amount of testing efforts for testing is given by(6)Wtr=∑i=1nWitr.


### 2.2. Reliability Model in Operational Environment

Ukimoto et al. [21] assumed the expected cumulative number of faults at time t, that is, the time after the release:(7)Hit=Hitr+ϕit-tr,t≥tr.This equation can be rewritten by (8)Hit=Hitr+Hitr+ϕit-tr-Hitr.This implies that the expected number of detected faults in operational phase is accelerated/decelerated by a parameter ϕ from the one in testing environment, because Hi(tr+Δt)-Hi(tr) means the expected number of faults detected in [tr,tr+Δt]. In [21], the parameter ϕi is given by time fraction of execution time of component i in operational phase. Also, they assumed that the number of detected faults after the releases causes maintenance costs to fix the faults. However, in general, the operational environment is quite different from the testing environment. Moreover, from the user perspective, the reliability of software product is more significant than maintenance costs. Thus in this paper, we use the quantitative software reliability in operational phase derived from architecture-based software reliability model.The architecture-based software reliability model represents a sequence of component executions in operational phase [29]. In most of architecture-based software reliability models, the execution sequence is defined by a discrete or continuous-time Markov chain. In this paper, we focus on the continuous-time Markov chain (CTMC) based model.The CTMC is a stochastic process with discrete state space on the continuous-time domain. In general, CTMC process{M(t);t≥0} is characterized by its infinitesimal generator. The infinitesimal generator is a square matrix whose dimension is same as the dimension of state space. The nondiagonal entries of the infinitesimal generator are transition rates between respective states, and diagonal entries represent the exit rates from corresponding states. Let Q be an infinitesimal generator of CTMC process M(t). The probability row vector of π(t)=[P(M(t)=i)]i is given by(9)ddtπt=πtQ.By using the matrix exponential, the probability vector is also given by(10)πt=π0exp⁡Qt.In particular, we consider two cases: (i) execution of the system has an end; i.e., the system is an application such as command-line application; (ii) execution is continued; i.e., the system courteously provides a service such as server application. For convenience, the first and second cases are discrete and continuous cases, respectively.(i) Discrete Case. Let pi,j be a transition probability to the execution of component j after finishing the execution of component i. Also pi,S is a probability that the execution is finished after component i. Furthermore, we assume each execution time of component i following an exponential distribution with rate λi. Then the sequence of component executions can be described by an absorbing CTMC with infinitesimal generator(11)
D
=
-
λ
1
p
1,2
λ
1
⋯
p
1
,
n
λ
1
p
1
,
S
λ
1
p
2,1
λ
2
-
λ
2
⋯
p
2
,
n
λ
2
p
2
,
S
λ
2
⋮
⋮
⋱
⋮
⋮
p
n
,
1
λ
n
p
n
,
2
λ
n
⋯
-
λ
n
p
n
,
S
λ
n
0
0
⋯
0
0
=
T
ξ
0
0where ∑j=1npi,j+pi,S=1 for i=1,…,n, T is a n-by-n matrix for transient states, and ξ is an exit rate vector from transient states to the absorbing state.To present the failure in operational phase, we definefi as the failure probability as the execution of component i. In this paper, we suppose that the failure probability is given by(12)fi=1-qiENi∞-Nitr.In the equation, E[Ni(∞)-Ni(tr)] means the expected number of residual faults in component i at the release time which is given by(13)ENi∞-Nitr=ai-Hitr.Also qi is the probability that a remaining fault does not cause a failure of component i; i.e., fi means the probability that at least one remaining fault causes a failure of component i. Then the underlying infinitesimal generator can be rewritten by(14)
D
f
=
T
f
ξ
f
f
0
0
0
0
0
0
,where Tf is the matrix generated by replacing λi with λi(1-fi) and f is a column vector whose i-th entry is λifi. Note that Df has two absorbing states corresponding to success and failure of execution, respectively.The quantitative software reliability is defined by the probability that an execution is successfully finished. From the mathematical argument of CTMC, we have the software reliability in the discrete case:(15)RD=π∫0∞exp⁡Tftξfdt=πlimu→∞∫0uexp⁡Tftξf=πTf-1limu→∞⁡exp⁡Tfu-Iξf=π-Tf-1ξf,where π is a probability vector to decide the initial component of execution.(ii) Continuous Case. In the continuous case, the sequence of execution can be described by a CTMC with infinitesimal generator:(16)C=-λ1p1,2λ1⋯p1,nλ1p2,1λ2-λ2⋯p2,nλ2⋮⋮⋱⋮pn,1λnpn,2λn⋯-λn Note that ∑j=1npi,j=1 for i=1,…,n. Similar to the discrete case, fi denotes the failure probability at component i. Then we have a CTMC with one absorbing state corresponding to the failure state.(17)Cf=Tff00.In this case, the software reliability is defined by the probability that the system does not fail during the mission time [tr,tr+tm]. From the mathematical argument of CTMC, the quantitative software reliability can be formulated by(18)RCtm=πexp⁡Tftm-tr1, where 1 is a column vector whose entries are 1.


## 2.1. Cost Model in Testing Environment

First we describe the testing cost model in testing environment, which is essentially the same as Ukimoto et al. [21]. The system consists of n components. The software testing starts at time t=0, and the system should be released at time t=tr. Let Ni(t) be the cumulative number of detected faults of component i before testing time t. Consider the following model assumptions:(i)
There are a finite number of faults in each component before testing.(ii)
The fault detection rate for a component is proportional to the amount of testing efforts for the component.Letai and Wi(t) be the expected number of faults before testing and the amount of testing efforts for component i at testing time t. Then the probability mass function (p.m.f.) of the cumulative number of faults is given by(1)PNit=k=Hitkk!exp⁡-Hit,(2)Hit=ai1-exp⁡-riWit,where ri is a fault detection rate per testing effort. The above equations are essentially same as the nonhomogeneous Poisson process (NHPP) based software reliability growth model (SRGM). By applying the testing effort function Wi(t), we can represent a variety of fault detection processes. For instance, (cumulative) Rayleigh curve is typically used to a testing effort function. For the same of simplicity, this paper assumes the following linear testing effort function for all the modules:(3)Wit=ωit+βi,where ωi is the testing effort per unit testing time and βi is a fixed effort for component i.Define the cost structure in testing environment:(i)
c1: fixing cost of a software fault detected in testing phase.(ii)
c2: testing cost per software testing effort.Then the expected total cost for componenti in software testing is given by(4)Citr=c1Hitr+c2Witr.Thus the total cost for software testing becomes(5)Ctr=∑i=1nCitr.Also the total amount of testing efforts for testing is given by(6)Wtr=∑i=1nWitr.


## 2.2. Reliability Model in Operational Environment

Ukimoto et al. [21] assumed the expected cumulative number of faults at time t, that is, the time after the release:(7)Hit=Hitr+ϕit-tr,t≥tr.This equation can be rewritten by (8)Hit=Hitr+Hitr+ϕit-tr-Hitr.This implies that the expected number of detected faults in operational phase is accelerated/decelerated by a parameter ϕ from the one in testing environment, because Hi(tr+Δt)-Hi(tr) means the expected number of faults detected in [tr,tr+Δt]. In [21], the parameter ϕi is given by time fraction of execution time of component i in operational phase. Also, they assumed that the number of detected faults after the releases causes maintenance costs to fix the faults. However, in general, the operational environment is quite different from the testing environment. Moreover, from the user perspective, the reliability of software product is more significant than maintenance costs. Thus in this paper, we use the quantitative software reliability in operational phase derived from architecture-based software reliability model.The architecture-based software reliability model represents a sequence of component executions in operational phase [29]. In most of architecture-based software reliability models, the execution sequence is defined by a discrete or continuous-time Markov chain. In this paper, we focus on the continuous-time Markov chain (CTMC) based model.The CTMC is a stochastic process with discrete state space on the continuous-time domain. In general, CTMC process{M(t);t≥0} is characterized by its infinitesimal generator. The infinitesimal generator is a square matrix whose dimension is same as the dimension of state space. The nondiagonal entries of the infinitesimal generator are transition rates between respective states, and diagonal entries represent the exit rates from corresponding states. Let Q be an infinitesimal generator of CTMC process M(t). The probability row vector of π(t)=[P(M(t)=i)]i is given by(9)ddtπt=πtQ.By using the matrix exponential, the probability vector is also given by(10)πt=π0exp⁡Qt.In particular, we consider two cases: (i) execution of the system has an end; i.e., the system is an application such as command-line application; (ii) execution is continued; i.e., the system courteously provides a service such as server application. For convenience, the first and second cases are discrete and continuous cases, respectively.(i) Discrete Case. Let pi,j be a transition probability to the execution of component j after finishing the execution of component i. Also pi,S is a probability that the execution is finished after component i. Furthermore, we assume each execution time of component i following an exponential distribution with rate λi. Then the sequence of component executions can be described by an absorbing CTMC with infinitesimal generator(11)
D
=
-
λ
1
p
1,2
λ
1
⋯
p
1
,
n
λ
1
p
1
,
S
λ
1
p
2,1
λ
2
-
λ
2
⋯
p
2
,
n
λ
2
p
2
,
S
λ
2
⋮
⋮
⋱
⋮
⋮
p
n
,
1
λ
n
p
n
,
2
λ
n
⋯
-
λ
n
p
n
,
S
λ
n
0
0
⋯
0
0
=
T
ξ
0
0where ∑j=1npi,j+pi,S=1 for i=1,…,n, T is a n-by-n matrix for transient states, and ξ is an exit rate vector from transient states to the absorbing state.To present the failure in operational phase, we definefi as the failure probability as the execution of component i. In this paper, we suppose that the failure probability is given by(12)fi=1-qiENi∞-Nitr.In the equation, E[Ni(∞)-Ni(tr)] means the expected number of residual faults in component i at the release time which is given by(13)ENi∞-Nitr=ai-Hitr.Also qi is the probability that a remaining fault does not cause a failure of component i; i.e., fi means the probability that at least one remaining fault causes a failure of component i. Then the underlying infinitesimal generator can be rewritten by(14)
D
f
=
T
f
ξ
f
f
0
0
0
0
0
0
,where Tf is the matrix generated by replacing λi with λi(1-fi) and f is a column vector whose i-th entry is λifi. Note that Df has two absorbing states corresponding to success and failure of execution, respectively.The quantitative software reliability is defined by the probability that an execution is successfully finished. From the mathematical argument of CTMC, we have the software reliability in the discrete case:(15)RD=π∫0∞exp⁡Tftξfdt=πlimu→∞∫0uexp⁡Tftξf=πTf-1limu→∞⁡exp⁡Tfu-Iξf=π-Tf-1ξf,where π is a probability vector to decide the initial component of execution.(ii) Continuous Case. In the continuous case, the sequence of execution can be described by a CTMC with infinitesimal generator:(16)C=-λ1p1,2λ1⋯p1,nλ1p2,1λ2-λ2⋯p2,nλ2⋮⋮⋱⋮pn,1λnpn,2λn⋯-λn Note that ∑j=1npi,j=1 for i=1,…,n. Similar to the discrete case, fi denotes the failure probability at component i. Then we have a CTMC with one absorbing state corresponding to the failure state.(17)Cf=Tff00.In this case, the software reliability is defined by the probability that the system does not fail during the mission time [tr,tr+tm]. From the mathematical argument of CTMC, the quantitative software reliability can be formulated by(18)RCtm=πexp⁡Tftm-tr1, where 1 is a column vector whose entries are 1.


## 3. Software Testing-Resource Allocation Problems

Based on the models described in Section2, we formulate the software testing-resource allocation problems. The problem is to decide test efforts for n modules ω1,…,ωn which minimizes testing cost or maximizes the software reliability in operational phase. Let C¯, W¯, and R_ be the upper limits of cost and efforts and the lower limits of reliability, respectively. The problems reliability-constrained cost minimization (RCCM) and budget-constrained reliability maximization (BCRM) can be formulated as follows.(i) RCCM in Discrete Case (19) m i n ω 1 , … , ω n  C t r s . t .  W t r ≤ W ¯ , R D ≥ R _(ii) RCCM in Continuous Case (20) m i n ω 1 , … , ω n  C t r s . t .  W t r ≤ W ¯ , R C t m ≥ R _(iii) BCRM in Discrete Case (21) m a x ω 1 , … , ω n  R D s . t .  C t r ≤ C ¯ , W t r ≤ W ¯(iv) BCRM in Continuous Case (22) m i n ω 1 , … , ω n  R C t m s . t .  C t r ≤ C ¯ , W t r ≤ W ¯They are nonlinear optimization problems and can be solved by numerical approaches such as Nelder-Mead method [31].


## 4. Numerical Illustration

In this section, we investigate the difference on the optimal testing-resource allocation between Ukimoto et al.’s model and our model. Suppose that the software consists of 10 modules and its architecture (module transition) is given in Figure1, which is a reference model of architecture model introduced in [25]. The number on each arrow means the transition probability pi,j. As seen in the figure, the system has an absorbing state as an output, and thus this is the discrete case. However, to compare our model with Ukimoto et al.’s model, we assume the execution restarts with INPUT just after the execution attains OUTPUT. In such situation, the system becomes the continuous case.Figure 1
Module architecture.Table1 shows the expected number of initial faults ai, the fault detection rate ri, the fixed effort βi, and the mean execution time 1/λi used in this example. Also, release time, mission time, fixing cost, and testing cost are set as tr=30.0, tm=60.0, c1=5.0, and c2=1.0, respectively. Moreover, in our model, we set the failure probability per fault as qi=0.99 for all i=1,…,n.Table 1
Model parameters.
Module a i r i β i 1 / λ i ϕ i M1 3.2 0.022 0.0 0.1 0.1297 M2 2.5 0.017 0.0 0.1 0.1177 M3 5.4 0.018 0.0 0.1 0.1181 M4 5.8 0.038 0.0 0.1 0.0543 M5 7.1 0.026 0.0 0.1 0.1751 M6 6.9 0.035 0.0 0.1 0.0326 M7 3.3 0.051 0.0 0.1 0.0798 M8 3.2 0.038 0.0 0.1 0.1133 M9 4.8 0.031 0.0 0.1 0.0497 M10 3.1 0.043 0.0 0.1 0.1297Ukimoto et al.’s model considers maintenance cost which depends on the expected number of faults detected in operational phase (warranty period). Concretely, whenc3 is the fixing cost per fault in operational phase, the maintenance cost is formulated by(23)CMtm,tr=∑i=1nc3Hitm-Hitr.Note that Hi(t) in the above equation is defined by (7); i.e., it requires the time fraction in execution ϕi. In this case, the time fraction is obtained from a steady-state probability of the CTMC. Define the row vector ϕ=(ϕ1,…,ϕn). Then the time fraction can be computed by finding the vector satisfying ϕ=ϕC and ∑i=1nϕi=1. The last column of Table 1 shows the time fraction of execution. By using the maintenance cost, one of the testing-resource allocation problems described in [21] is given by (24)minω1,…,ωnCtr+CMtm,trs.t.Wtr≤W¯,∑i=1nai-Hitr≤F¯.Note that Ukimoto et al.’s model uses the expected number of residual faults instead of quantitative software reliability. In the experiment, the fixing cost per fault is set as c3=1000.0.Table2 presents the optimal testing efforts obtained from RCCM problem in both models under W¯=5000.0, F¯=10.0, and R_=0.9. Also the column ‘Residual’ indicates the expected number of residual faults at release time. From the table, we find that the optimal testing efforts in our model are much greater than those in Ukimoto et al.’s model. Since much efforts are spent in our model, the expected number of residual faults becomes smaller than those in Ukimoto et al.’s model. The amount of testing efforts depends on the number of initial faults and the detection rate of respective components. For instance, the numbers of initial faults in components M5 and M6 are 7.1 and 6.9 which are relatively higher than others. Thus much effort is spent in these components. Also M5 is the most frequently executed among them in terms of ϕi. Therefore, the testing effort for M5 is greatest in Ukimoto et al.’s model. However, in our model, the module with the greatest testing effort is M3. In Figure 1, M3 is the module that is executed before M5. That is, this result is affected by considering detailed transition probabilities of operational profile. On the other hand, Table 3 indicates the minimum costs (testing cost and maintenance cost), total amounts of testing effort (total effort), the total number of residual faults at release time (residual), and the quantitative software reliability in the operational phase (reliability). From the table, in Ukimoto et al.’s model, residual attains to the upper limit F¯, and reliability attains to the lower limit R_ in our case. Also, in the result on testing cost, there is a remarkable difference between Ukimoto et al.’s model and our model. The strategy obtained from Ukimoto et al.’s model is that much cost is spent to the maintenance without thought of quality (reliability) of software product. On the other hand, the strategy of our model is that much cost is spent in testing phase to guarantee the quality of software.Table 2
Optimal testing-resource allocation of RCCM.
Ukimoto Proposed Module ω i Residual ω i Residual M1 1.388 1.280 6.654 0.040 M2 0.819 1.647 6.258 0.103 M3 2.294 1.564 10.994 0.014 M4 1.800 0.745 4.520 0.034 M5 2.406 1.087 7.266 0.025 M6 2.044 0.807 10.991 0.000 M7 1.166 0.554 8.877 0.000 M8 1.281 0.743 3.738 0.045 M9 1.782 0.915 4.381 0.082 M10 1.202 0.657 4.953 0.005Table 3
Cost, effort, and reliability under the optimal testing-resource allocation of RCCM.
Ukimoto Proposed Testing cost 661.97 2283.75 Maintenance cost 1251.83 — Total effort 485.47 2058.98 Residual 10.00 0.35 Reliability 0.04 0.90Next we show the example of BCRM. In BCRM, we setW¯=3000.0 and C¯=3000. Note that the upper limit of cost C¯ is for the development cost, which does not include the maintenance cost. Tables 4 and 5 present the optimal testing efforts and their associated criteria. Dissimilar to RCCM, Ukimoto et al.’s model provides the high reliability. In this example, since the upper limit of cost is enough, both models provide the high reliability. However, the effort allocation is slightly different between them.Table 4
Optimal testing-resource allocation of BCRM.
Ukimoto Proposed Module ω i Residual ω i Residual M1 11.456 0.0017 11.574 0.0015 M2 11.900 0.0058 13.871 0.0021 M3 12.129 0.0077 14.313 0.0024 M4 6.003 0.0062 6.492 0.0035 M5 9.459 0.0044 10.526 0.0019 M6 14.434 0.0000 8.035 0.0015 M7 4.743 0.0023 4.980 0.0016 M8 8.787 0.0001 6.483 0.0020 M9 7.961 0.0029 9.418 0.0008 M10 4.978 0.0050 6.453 0.0008Table 5
Cost, effort, and reliability under the optimal testing-resource allocation of BCRM.
Ukimoto Proposed Testing cost 2981.819 2990.759 Maintenance cost 0 — Total effort 2755.5 2764.35 Residual 0.036 0.018 Reliability 0.9882 0.9946


## 5. Conclusion

In this paper, we have presented testing-resource allocation problems by considering software reliability in operational phase. Concretely, by using architecture-based software reliability model, we have formulated the quantitative software reliability in operational phase and they are incorporated into the optimization problems to determine the optimal testing-resource allocation. In the numerical example, we have compared the optimal testing-resource allocation in Ukimoto et al.’s model and our model. As a result, the decision derived from our model is more severe to the quality of software product, compared to the decision from Ukimoto et al.’s model. In other words, from the reliability point of view, Ukimoto et al.’s model involves the risk that the released software fails, and the reliability of released software might be lower than the reliability we expect. The safety and mission critical systems require the high reliability. For such systems, the strict evaluation of operational reliability based on the software architecture is needed.In future, we will investigate the tendency of BCRM problem in our model by compared with existing problems. Furthermore, by combining empirical software reliability engineering [32–34], we will discuss how to determine the model parameters in testing-resource allocation problems.



---

*Source: 6948656-2018-09-27.xml*