本文的其余部分组织如下。节
2,我们首先描述模型测试成本和努力在测试环境中基于软件可靠性增长模型(SRGM)。之后,架构的软件可靠性模型中还介绍了制定量化软件可靠性措施。特别是,我们假设系统的两种不同的情况下使用。节
3,我们制定软件testing-resource分配问题:reliability-constrained成本最小化和最大化budget-constrained可靠性。部分
4致力于我们的模型的数值例子。节
4,我们比较资源分配的最优解Ukimoto et al的模型,我们的模型并讨论操作的效果表示testing-resource配置概要文件。最后,在节
5,我们在文章结尾给出了一些评论。
2。模型描述2.1。在测试环境成本模型
首先,我们描述了测试在测试环境成本模型,也就是Ukimoto一样et al。
21]。该系统由
n组件。软件测试开始时间
t
=
0在时间,系统应被释放
t
=
t
r。让
N
我
(
t
)检测到错误的累积数量的组件
我之前测试时间
t。考虑下面的模型假设:
每个组件有有限数量的错误在测试之前。
一个组件的故障检测率成正比的组件的测试工作。
让
一个
我和
W
我
(
t
)之前预期的数目的故障测试和组件的测试工作
我在测试时间
t。然后概率质量函数(p.m.f)的累积数目的故障是由
(1)
P
N
我
t
=
k
=
H
我
t
k
k
!
经验值
- - - - - -
H
我
t
,
(2)
H
我
t
=
一个
我
1
- - - - - -
经验值
- - - - - -
r
我
W
我
t
,在哪里
r
我每测试工作是一个故障检测率。上述方程的非齐次泊松过程本质上是一样(NHPP)为基础的软件可靠性增长模型(SRGM)。通过应用测试工作功能
W
我
(
t
),我们可以代表多种故障检测流程。例如,(累计)瑞利曲线通常用于测试工作功能。同样简单起见,本文假定以下线性测试工作函数的模块:
(3)
W
我
t
=
ω
我
t
+
β
我
,在哪里
ω
我每个单元测试时间和测试工作吗
β
我组件是一个固定的工作吗
我。
定义测试环境的成本结构:
c
1:固定在测试阶段发现软件错误的成本。
c
2每个软件测试:测试成本的努力。
然后为组件的预期总成本
我在软件测试是由
(4)
C
我
t
r
=
c
1
H
我
t
r
+
c
2
W
我
t
r
。因此软件测试的总成本
(5)
C
t
r
=
∑
我
=
1
n
C
我
t
r
。也给出了测试工作的总量进行测试
(6)
W
t
r
=
∑
我
=
1
n
W
我
t
r
。
2.2。在操作环境可靠性模型
Ukimoto et al。
21]假定预期的累积数目的故障时间
t释放后,即时间:
(7)
H
我
t
=
H
我
t
r
+
ϕ
我
t
- - - - - -
t
r
,
t
≥
t
r
。这个方程可以改写
(8)
H
我
t
=
H
我
t
r
+
H
我
t
r
+
ϕ
我
t
- - - - - -
t
r
- - - - - -
H
我
t
r
。这意味着预期数量的发现错误在操作阶段是加速/减速的一个参数
ϕ从一个在测试环境,因为
H
我
(
t
r
+
Δ
t
)
- - - - - -
H
我
(
t
r
)预期的故障检测方法
(
t
r
,
t
r
+
Δ
t
]。在[
21),参数
ϕ
我由时间给出分数组件的执行时间
我在操作阶段。同时,他们认为,释放后检测到故障的数量导致维护成本解决故障。然而,一般而言,操作环境与测试环境有很大不同。此外,从用户的角度来看,软件产品的可靠性比维护成本。因此在本文中,我们使用定量软件可靠性在运营阶段来自架构的软件可靠性模型中。
中国十冶公司是一个随机过程与离散状态空间连续时间域。一般来说,中国十冶公司的过程
{
米
(
t
)
;
t
≥
0
}特点是其无穷小生成器。无穷小生成器是一个方阵的维度与状态空间的维数相同。无穷小的nondiagonal条目之间过渡率发生器各自的州,和对角线条目代表退出率相应的状态。让
问是一个无穷小的发电机中国十冶公司的过程
米
(
t
)。行向量的概率
π
(
t
)
=
(
P
(
米
(
t
)
=
我
)
]
我是由
(9)
d
d
t
π
t
=
π
t
问
。通过使用矩阵指数,也给出了概率向量
(10)
π
t
=
π
0
经验值
问
t
。
特别是,我们考虑两种情况:(i)的执行系统已经结束;也就是说,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.
(我)离散情况。让
p
我
,
j是一个转移概率的执行组件
j完成后的执行组件
我。也
p
我
,
年代是一个概率执行组件后完成吗
我。此外,我们假设每个组件的执行时间
我后一个速度的指数分布
λ
我。组件执行的序列可以被描述为一个吸收中国十冶公司与无穷小的发电机
(11)
D
=
- - - - - -
λ
1
p
1、2
λ
1
⋯
p
1
,
n
λ
1
p
1
,
年代
λ
1
p
2、1
λ
2
- - - - - -
λ
2
⋯
p
2
,
n
λ
2
p
2
,
年代
λ
2
⋮
⋮
⋱
⋮
⋮
p
n
,
1
λ
n
p
n
,
2
λ
n
⋯
- - - - - -
λ
n
p
n
,
年代
λ
n
0
0
⋯
0
0
=
T
ξ
0
0在哪里
∑
j
=
1
n
p
我
,
j
+
p
我
,
年代
=
1为
我
=
1
,
…
,
n,
T是一个
n——- - - - - -
n对瞬态状态矩阵,
ξ退出率从瞬态状态向量吸收状态。
在运营阶段的失败,我们定义
f
我为失效概率为执行组件
我。在本文中,我们假设的失败概率
(12)
f
我
=
1
- - - - - -
问
我
E
N
我
∞
- - - - - -
N
我
t
r
。的方程,
E
(
N
我
(
∞
)
- - - - - -
N
我
(
t
r
)
]意味着预期数量的剩余故障组件
我在给出的释放时间
(13)
E
N
我
∞
- - - - - -
N
我
t
r
=
一个
我
- - - - - -
H
我
t
r
。也
问
我的概率是剩余的故障不会导致组件的失败
我;也就是说,
f
我意味着至少有一个剩余的概率故障导致组件的失败
我。然后可以重写底层无穷小发生器
(14)
D
f
=
T
f
ξ
f
f
0
0
0
0
0
0
,在哪里
T
f生成的矩阵代替吗
λ
我与
λ
我
(
1
- - - - - -
f
我
)和
f是一个列向量的吗
我th条目
λ
我
f
我。请注意,
D
f有两个吸收状态相应的执行,成功和失败。
定量软件可靠性的概率定义为一个执行成功完成。从中国十冶公司的数学论证,我们有软件可靠性在离散情况下:
(15)
R
D
=
π
∫
0
∞
经验值
T
f
t
ξ
f
d
t
=
π
l
我
米
u
→
∞
∫
0
u
经验值
T
f
t
ξ
f
=
π
T
f
- - - - - -
1
lim
u
→
∞
经验值
T
f
u
- - - - - -
我
ξ
f
=
π
- - - - - -
T
f
- - - - - -
1
ξ
f
,在哪里
π是一个概率向量决定执行初始组件。
(2)连续情况。在连续的情况下,可以被描述为一个中国十冶公司的执行顺序与无穷小发电机:
(16)
C
=
- - - - - -
λ
1
p
1、2
λ
1
⋯
p
1
,
n
λ
1
p
2、1
λ
2
- - - - - -
λ
2
⋯
p
2
,
n
λ
2
⋮
⋮
⋱
⋮
p
n
,
1
λ
n
p
n
,
2
λ
n
⋯
- - - - - -
λ
n请注意,
∑
j
=
1
n
p
我
,
j
=
1为
我
=
1
,
…
,
n。与离散情况类似,
f
我表示组件的失效概率
我。然后我们有一个中国十冶公司与一个吸收状态对应于故障状态。
(17)
C
f
=
T
f
f
0
0
。在这种情况下,软件可靠性的概率定义为系统在任务期间不失败
(
t
r
,
t
r
+
t
米
]。从中国十冶公司的数学论证,可以制定量化软件可靠性
(18)
R
C
t
米
=
π
经验值
T
f
t
米
- - - - - -
t
r
1
,在哪里
1是一个列向量的条目1。
3所示。软件Testing-Resource分配问题
基于部分中描述的模型
2,我们制定软件testing-resource分配问题。问题是决定测试工作
n模块
ω
1
,
…
,
ω
n最大限度地减少测试成本或最大化的软件可靠性运行阶段。让
C
¯,
W
¯,
R
_成本和工作的上限和下限的可靠性,分别。问题reliability-constrained成本最小化(RCCM)和budget-constrained可靠性最大化(BCRM)可以制定如下。
(我)RCCM离散情况
(19)
米
我
n
ω
1
,
…
,
ω
n
C
t
r
年代
。
t
。
W
t
r
≤
W
¯
,
R
D
≥
R
_
(2)RCCM连续情况
(20)
米
我
n
ω
1
,
…
,
ω
n
C
t
r
年代
。
t
。
W
t
r
≤
W
¯
,
R
C
t
米
≥
R
_
(3)BCRM离散情况
(21)
米
一个
x
ω
1
,
…
,
ω
n
R
D
年代
。
t
。
C
t
r
≤
C
¯
,
W
t
r
≤
W
¯
(iv) BCRM连续情况
(22)
米
我
n
ω
1
,
…
,
ω
n
R
C
t
米
年代
。
t
。
C
t
r
≤
C
¯
,
W
t
r
≤
W
¯
它们是非线性优化问题,可以通过数值方法如Nelder-Mead方法解决(
31日]。
4所示。数值例子
在本节中,我们调查的区别之间的最优testing-resource分配Ukimoto et al .的模型,我们的模型。假设软件由10个模块及其体系结构(模块产品化)在图给出
1,这是一个参考模型的体系结构模型中引入[
25]。数量在每个箭头意味着转移概率
p
我
,
j。正如图中所看到的,系统有一个吸收的状态作为输出,因此这是离散情况。然而,比较我们的模型与Ukimoto et al。’s模型中,我们假设执行重启与输入执行达到后输出。在这种情况下,系统成为连续的情况。
模块的架构。
表
1显示最初的预期数量的缺点
一个
我故障检测率
r
我,固定工作
β
我,平均执行时间
1
/
λ
我在这个例子中使用。同时,释放时间、任务时间设置为固定成本,和测试成本
t
r
=
30.0,
t
米
=
60.0,
c
1
=
5。0,
c
2
=
1。0,分别。此外,在我们的模型中,我们设置每个故障失效概率
问
我
=
0.99对所有
我
=
1
,
…
,
n。
模型参数。
模块
一个
我
r
我
β
我
1
/
λ
我
ϕ
我
M1
3.2
0.022
0.0
0.1
0.1297
平方米
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.1297
Ukimoto et al。’s模型认为维护成本取决于预期数量的检测故障在运行阶段(保修期)。具体地说,当
c
3是固定成本/故障在运营阶段,维护成本是制定
(23)
C
米
t
米
,
t
r
=
∑
我
=
1
n
c
3
H
我
t
米
- - - - - -
H
我
t
r
。请注意,
H
我
(
t
)在上面的方程被定义为(
7);也就是说,我trequires the time fraction in execution
ϕ
我。在这种情况下,时间分数是来自中国十冶公司的稳态概率。定义行向量
ϕ
=
(
ϕ
1
,
…
,
ϕ
n
)。然后时间分数可以计算通过向量满足
ϕ
=
ϕ
C和
∑
我
=
1
n
ϕ
我
=
1。表的最后一列
1显示了时间的一部分执行。通过使用维护成本,testing-resource分配问题描述(
21)是由
(24)
米
我
n
ω
1
,
…
,
ω
n
C
t
r
+
C
米
t
米
,
t
r
年代
。
t
。
W
t
r
≤
W
¯
,
∑
我
=
1
n
一个
我
- - - - - -
H
我
t
r
≤
F
¯
。注意,Ukimoto et al的模型使用剩余的预计数量错误,而不是定量软件可靠性。在实验中,每个错误设置为固定成本
c
3
=
1000.0。
表
2提出了最优测试工作获得RCCM问题在两种模型
W
¯
=
5000.0,
F
¯
=
10.0,
R
_
=
0.9。也列“残余”表明预期数量的剩余故障在释放时间。从表中,我们发现在我们的模型中最优测试工作更大的比Ukimoto等的模型。因为大部分的努力在我们的模型中,剩余的预计数量比Ukimoto缺点变得越来越小等的模型。测试工作的数量取决于初始缺陷的数量和相应组件的检出率。例如,初始故障组件M5和M6的数量是7.1和6.9相对比其他人更高。因此多精力花在这些组件。也M5是其中最频繁执行的
ϕ
我。因此,M5的测试工作是最大的在Ukimoto et al。模型。然而,在我们的模型中,最大的模块测试工作是M3。在图
1,M3 M5之前执行模块。也就是说,这个结果是影响考虑详细的操作配置文件转移概率。另一方面,表
3表示最低成本(测试成本和维护成本),总数量的测试工作(总努力),残留的缺点在释放时间的总数(残余),在运营阶段和定量软件可靠性(可靠性)。从表中,在Ukimoto et al。”模型,剩余达到上限
F
¯和可靠性达到下限
R
_在我们的例子中。在结果测试成本,有一个显著的区别Ukimoto et al .的模型,我们的模型。战略从Ukimoto等获得的模型是那么多花成本的维护而不思软件产品的质量(可靠性)。另一方面,我们的模型的策略是成本是在测试阶段,保证软件的质量。
最优testing-resource RCCM配置。
Ukimoto
提出了
模块
ω
我
剩余
ω
我
剩余
M1
1.388
1.280
6.654
0.040
平方米
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.005
成本、精力和可靠性最优testing-resource RCCM配置。
Ukimoto
提出了
测试成本
661.97
2283.75
维护成本
1251.83
- - - - - -
全部的努力
485.47
2058.98
剩余
10.00
0.35
可靠性
0.04
0.90
接下来我们将展示BCRM的例子。在BCRM,我们集
W
¯
=
3000.0和
C
¯
=
3000年。注意成本的上限
C
¯开发成本,不包括维护成本。表
4和
5目前最优的测试工作及其相关标准。不同RCCM, Ukimoto et al。提供高可靠性的模型。在这个例子中,因为成本的上限就够了,两个模型提供可靠性高。然而,它们之间的工作分配略有不同。
最优testing-resource BCRM配置。
Ukimoto
提出了
模块
ω
我
剩余
ω
我
剩余
M1
11.456
0.0017
11.574
0.0015
平方米
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.0008
成本、精力和可靠性最优testing-resource BCRM配置。
Ukimoto
提出了
测试成本
2981.819
2990.759
维护成本
0
- - - - - -
全部的努力
2755.5
2764.35
剩余
0.036
0.018
可靠性
0.9882
0.9946
5。结论
在本文中,我们提出了testing-resource通过考虑运营阶段的软件可靠性分配问题。具体地说,通过使用架构的软件可靠性模型中,我们制定了量化软件可靠性在运营阶段,纳入优化问题来确定最优testing-resource分配。在数值的例子中,我们比较了优化testing-resource分配Ukimoto et al。模型,我们的模型。结果,决定来源于我们的模型是软件产品的质量更严重,而决定从Ukimoto等的模型。换句话说,从可靠性的角度来看,Ukimoto et al。’s模型涉及到的风险释放软件失败,和发布软件的可靠性可能会低于我们预期可靠性。和关键任务系统安全要求可靠性高。对于这样的系统,严格的操作可靠性评价的基础上,软件架构是必要的。