Page 192 - 《软件学报》2020年第9期
P. 192
张策 等:可靠性模型中故障检测率研究述评 2813
(4) k(t)=b(t)⋅ω(t)——从测试工作量与故障检测率的复合角度,也即在当前测试资源消耗的情况下,提出
了故障被检测出来的能力;
(5) k(t)=b⋅c′(t)——从测试覆盖与每个故障可获得测试覆盖下的故障检测率角度.
综上,针对故障检测的描述,公式(23)建立了统一的故障检测模型——t 时刻检测的故障与当前软件中剩余
的故障数量成比例;同时,该模型也指出了 t 时刻累积修复的故障数量函数形式,即 c(t)=p(t)⋅m(t).
c(t)描述了测试用例的执行情况,侧重于测试覆盖代码的程度;w(t)描述了测试资源的消耗情况,侧重于测试
成本的花销;b(t)描述了测试策略的效果,侧重于测试人员的技能、工具与技术.此三者从不同角度对测试环境效
果进行了建模描述,在当前软件可靠性建模中,用以描述故障被检测出来的能力.
无论是故障检测率 FDR:b(t),还是故障检测因子 k(t),都是对测试过程中故障被检测出的程度或效果的描
述,刻画了在测试环境下,消耗测试资源以执行测试策略来对故障进行检测的能力.因此,其与测试环境下的多
因素(失效分布情况、故障密度、程序大小、测试人员技能、测试案例与工具等)有关联.
5 FDR 性能及其对可靠性模型影响分析
迄今为止,国内外尚未对 FDR 影响下的可靠性模型进行研究,也缺少对 FDR 自身性能的分析.本节将通过
在大量真实失效数据集上进行实验验证,来分析这两个方面.
5.1 统一的故障检测框架模型
在当前可查证到的 SRGM 研究中,所有模型的建立均是基于下面的假设,即“t 时刻累积检测的故障数量与
当前软件中剩余的故障数量成比例”,这个比例即是故障检测因子.为此,我们提出统一的故障检测过程建模:
d( )
mt
()[ () −
( ) m t⋅
= k t at pt ( )] (25)
dt
这里认为 t 时刻检测的故障数量与当前剩余的故障总数成比例,比例系数是故障检测因子 k(t)(实际上,这里
的 k(t)已经超过了 SRGM 研究中单纯的故障检测率 b(t),其表示当前测试环境下测试人员在消耗测试资源,执行
测试案例进行测试时故障被检测出来的概率(函数),是涵盖多个测试因素的综合性指标.但从保持延续性以及
便于实验等因素考虑,这里依旧命名为 b(t),后面不再专门用 k(t)进行表示).p(t)表示故障修复概率,表示 t 时刻被
检测出的故障被修复的比率.
在 m(0)=0 和 a(0)=a 的初始条件下,求解可得到:
( )dx
()dx
− 0 ∫ t bx ⋅ () p x t 0 ∫ y bx ⋅ () p x
( ) =
mt e 0 ∫ e a () ()dy b y y (26)
显然,公式(26)中 b(t),p(t)和 a(t)的多种设置,可以得到多种 m(t).因此,这里提出的是一种框架式模型,具有较
强的柔韧性.
文献[17,19,27,28]中提出了较为常用的 FDR,以公式(26)为基础,通过设定不同形式的 b(t),可以得到在相应
测试环境下的可靠性模型(即累积故障检测数量),具体求解情况如下.
b
(1) 若 () = ,则可以求得 m(t)如下:
bt
1 β e − bt
+
bx
bx
0 ∫ t be p bx ()x dx t e b − 0 ∫ y − e b β + p e bx ( )x dx e a ( )y
−
by
() =
mt e β + e 0 ∫ b + e by dy (27)
此时,随着测试的持续进行,b(t→∞)→b.
2
(2) 若 b(t)=b t/(1+bt),则可以求得 m(t)如下: y bxp ()x
2
−
2
2
( )
bx+
−
() =
bx+
mt e 0 ∫ t bxp ()x 1 dx 0 ∫ t by e − 0 ∫ by + 1 1 dx ay dy (28)
−βt
(3) 若 b(t)=bαβe ,则可求得 m(t)如下: