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)如下:
   187   188   189   190   191   192   193   194   195   196   197