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

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

                 选择 FDR 提供了有重要借鉴意义的参考.
             本文第 1 节对以 SRGM 为核心的可靠性进行概要介绍,引出故障检测率 FDR.第 2 节从可靠性模型构建视
         角给出 FDR 的定义,从多个角度阐释其功用.第 3 节重点剖析 FDR 与失效强度、风险率/冒险率的区别与联系.
         第 4 节给出分类视角下的 FDR 构成.第 5 节重点对 FDR 性能及其对 SRGM 的影响进行分析,提出不完美排错
         框架模型,通过数值分析研究模型的差异性.最后指出后续研究的趋势与需要解决的问题,并给出结论.

         1    软件可靠性增长模型建模——本质、功用与流程

             软件开发过程中具有大量复杂的随机性与不确定性,随着研究人员对测试过程的不断深入认识,SRGM 的
         研究持续至今.SRGM 具备描述测试过程中失效发生、故障检测和修复等动态特征,其刻画了软件的一种故障
         行为.由于 SRGM 建立了故障失效个数与可靠性间的数学关联模型,因此,利用 SRGM 就可以计算特定时刻与可
         靠性紧密相关的参数指标,包括失效个数、失效率、失效间隔以及可靠性等;进而,可以对测试资源进行动态的
         调配,预测当前测试环境下软件达到预期目标(例如可靠性)时所需要的时间(被称为发布时间)、成本(被称为发
         布成本)等重要信息.
             在研究内容上,从突破早期完美排错的限制,到仅考虑到新故障引入的研究,以及考虑测试工作量或测试覆
         盖率的 NHPP 类软件可靠性建模框架的研究,再到涵盖不完全排错与新故障引入等各类不完美排错的研究,进
         一步拓展至变动点问题、测试资源分配问题、最优发布问题等,越来越多的可靠性模型得以建立.在求解方法
         与技术上,从建立单一微分方程(组)的简单或复杂的解析式方法,扩展到非解析式方法、排队论技术和最优化方
         法,进而采用离散事件仿真与非参量求解方法等,这些正在推动软件可靠性研究不断走向深入.图 1 对 SRGM 的
         建模与功用进行了展示.

                     基于对测试过程的
                     认知,提出假设条件
                                            ①  测试资源分配与管控
                            建模              ②  测试工作量及软件成本构成              软件全部成本模型 C(T)
                                                                    建立
                 建立基于微分方程的数学模型        1                          2                决策      3
                                                         优化
               科研人员
               或开发人员       求解                  获得失效率λ(t),MTTF/             软件最优发布策略
                 获得累积检测故障数量 m(t)、             /MTBF 等可靠性相关指标
                 累积修复故障数量 c(t)、剩余
                    故障数量等基本变量

                                   Fig.1    Modeling essence and function of SRGM
                                   图 1   软件可靠性增长模型的建模本质与功用

             若 SRGM 将软件测试过程视为若干个随机过程的统一,失效发生后,测试工作量 TE 被定量地消耗用以进
         行故障的检测、隔离、排除等.随着测试的不断进行,软件中的故障不断减少,从而软件可靠性得到不断的增长.
         软件可靠性能够通过软件可靠性增长模型 SRGM 进行有效度量与预测.目前,SRGM 得到了快速的发展,现已被
         广泛应用,成为定量评估软件可靠性的数学工具.图 2 对 SRGM 的建模流程进行了归纳.
             在代表 NHPP(non-homogeneous Poisson process,即非齐次泊松过程)类 SRGM 研究起源的经典 G-O 模型           [8]
         中,Goel L 与 Okumoto K 建立了类似于下面的微分方程:
                                         d( )mt
                                             =  λ ()t =  b ()( ( )t a t −  m ())t             (1)
                                          dt
             该微分方程具有更一般性,其假设认为,t 时刻累积检测的故障数量 dm(t)/dt 与此刻软件中剩余的故障数量
         (a(t)−m(t))成正比例,比例系数 b(t)为该时刻的故障检测率 FDR(fault detection rate).显然,当 b(t)=b,a(t)=a 时,公式
         (1)转化为 G-O 模型,该模型虽忽视了故障修复与新故障引入情况,但却成为日后研究连续性 NHPP 类 SRGM 中
         共同被遵守的事实.这其中,FDR 的表现形式是 b(t),从宏观上对故障检测能力进行描述,但并未指出支撑故障检
   178   179   180   181   182   183   184   185   186   187   188