Page 187 - 《软件学报》2020年第9期
P. 187

2808                                 Journal of Software  软件学报 Vol.31, No.9,  September 2020

                                d( )
                                 mt
         障检测数量的导数,即 () t =          .可见,λ(t)是跳跃强度函数,即,在时刻 t 单位时间内失效发生的次数.如果故障
                           λ
                                 dt
         出现导致失效发生而立即被发现的话,b(t)=z(t);否则二者并不相等.
         3.3   风险率/冒险率
             风险率即风险函数(hazard function),通常用 h(t)表示,即:程序正确地运行到时刻 t 时,发生故障的概率.h(t)
         是每个故障失效发生率或冒险率             [50] ,即“瞬时失效率”.事实上,h(t)作为“瞬时失效率”是一种冒险率.失效率的定
         义是
                                                                |
                                         Pr{在区间  [ , +Δtt  t ]内发生失效 在 不发生失效t  }
                          [, +Δtt  t ]内失效率 =                                                  (2)
                                                      ( +Δ − = Δt  ) t  t  t
             对上式求Δt 的极限,求得的就是冒险率,即“瞬时失效率”.可见,冒险率或“瞬时失效率”是失效率的一种时间
         上的逼近.
             “设 T 表示从 0 开始运行一个程序,到程序发生失效为止经历的时间”,T 是失效时间的独立随机变量,其失
         效分布函数和失效密度函数分别为 F(t)和 f(t),则可得如下两式:
                              Pr{ +Δt  t  ≥  >  | t T  >  } t  Pr{ +Δt  t  ≥T  T  >  } t  F ( +Δ −t  ) t  F ( )t
                       () =
                      ht   lim                 =  lim             =  lim
                                                                            ( )]Δ t
                          Δ→t  0     Δ           Δ→t  0  Pr( >t  T  )Δ  t  Δ→t  0  [1−  F t  t
                                                                                              (3)
                             =  d ()Ft  ×  1  =  f  ()t  =  f  ()t
                            dt  [1−  ( )]t  [1− F  F ( )]t  R ( )t
                                                  f  ()t  f  ()t
                                             () =
                                            ht         =                                      (4)
                                                1 Ft−  ( )  R ( )t
         则可以得到 R(t+Δt)的表达式、R(t)的导数与 h(t)和 R(t)的关系如下:
                       ( +Δ =
                      Rt    ) t  Pr{ > t  )} Pr{(=  T  > t ) 在区间∧  [ , +Δt ]内程序不发生故障 }
                                                          t t
                                 T
                                    ( + Δt
                                                                                              (5)
                                               [ , +
                                     =  Pr{( > T  )} Pr{在区间 t t  Δ  t ]内程序不发生故障 =  } R ( )[1−t  ( ) ] t
                                                                               Δh t
                                       × t
                                              ( +Δ −t
                                                      ( )
                                                            () () ⇒
                                      () ]Δ ⇒
                       R t   ) t  ()[1− h t  t  Rt  ) Rt  = −R t h t  d ( )Rt  = −h t R       (6)
                        ( +Δ = R t
                                                                            () () t
                                                  Δt                 dt
                                  ⎡ −  t hx  ⎤
             因此,求解上式可得 ()Rt =     e ⎢ ⎣  0 ∫  ()dx ⎥ ⎦  .显然,R(0)=1;R(∞)=0.
         3.4   区别与联系
             综上,我们可以得出:故障检测率 FDR、失效强度以及风险率/冒险率均为可靠性相关指标,三者均与程序运
         行环境中的多因素(例如程序规模、故障密度、故障测试效率、测试工作量、CPU 指令的执行率、代码膨胀
         系数等)相关联.故障检测率 b(t)与失效强度λ(t)和风险率/冒险率 h(t)均成正比例关系.具体讨论如下。
             (1)  故障检测率 b(t)描述了测试人员在测试策略的指导下采用合适的测试案例和测试方法检测出故障的
                 能力,其与 t 时刻点上的测试覆盖率 c′(t)成正比例,是测试覆盖 c(t)的函数,可表示为 b(t)=c′(t)/(1−c(t)),
                 与可靠性 R(t)直接相关;
             (2)  失效强度可用于描述 t 时刻累积检测的故障数量 m′(t),其与此刻软件中剩余的故障数量(a(t)−m(t))成
                 正比例,比例系数 b(t)为该时刻的故障检测率 FDR.则根据 G-O 模型的基本假设,可得失效强度λ(t)与
                 故障检测率 b(t)的关系如下式:
                                               mt
                                              d( )
                                         λ () t =  =  b t  −  ()]                             (7)
                                                     ()[a m t
                                                dt
             (3)  风险率/冒险率描述了程序正确地运行到时刻 t 时发生故障的概率,其侧重于每个故障失效发生率或
                 冒险率   [37] ,即“瞬时失效率”,为失效率的一种时间上的逼近.在 SRGM 研究中,根据上述公式(7)的表示
                 以及假设条件可知:风险函数 h(t)与失效强度λ(t)相等,即 h(t)=λ(t).从而根据 G-O 模型的基本假设,可
                 进一步得到风险函数 h(t)与故障检测率 b(t)的关系如下式:
   182   183   184   185   186   187   188   189   190   191   192