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

张策  等:可靠性模型中故障检测率研究述评                                                            2815


                                                                   [18,19,24,48,76−83]
             为了验证与比较模型的性能,我们遴选了 12 个失效数据集 DS 1 ~DS 12                         开展实验工作.这些失效
         数据集由失效检测时间 t i (通常是以周为单位)和累积检测的失效故障数量 y i 构成,其均来自国际上著名的计算
         机公司公开发布的计算机(软件)系统在测试过程中搜集的真实数据,描述了不同的测试场景,从而作为可靠性
         模型验证的载体,得到了广泛的认可与应用.表 4 列出了来自于真实应用场景下的 12 个失效数据集,对其构成与
         来源等进行介绍.
                                 Table 4    Failure data set in real application scenario
                                      表 4   真实应用场景下的失效数据集
                         真实来源案例               测试对象规模                              累计检测到的失效
            数据集        (公司或单位软件/            (公司或单位软件/             失效或故障           或故障个数(记录
                        程序/系统/项目)            程序/系统/项目)             记录时间           开始至记录结束)
               [76]
            DS 1      IBM:数据库应用软件           1 317 000(代码行数)        记录 19 周            15~328
                    RADC(罗马航空发展中心)的                          记录 21 周:由贝尔实验室的
               [77]
            DS 2                            21 700(代码行数)                              2~136
                    T1 系统:实时命令与控制应用                            9 名工程师负责收集
               [78]
            DS 3      在线数据采集软件包             40 000(代码行数)           记录 21 天            2~46
               [79]
            DS 4     AT&T Bell 实验室:网络管理系统        不明         记录 680.02 个 CPU 单位时间      1~22
               [18]  Tandem(美国天腾计算机)
            DS 5                                 不明                记录 20 周            16~100
                      公司:计算机工程项目
               [24]
            DS 6       大型医疗记录系统             含 188 个软件构件            记录 18 周            28~176
               [80]
            DS 7          Misra 系统               不明               记录 25 小时            27~136
               [81]
            DS 8          Misra 系统        1.5 百万行代码级别当量            记录 38 周            15~231
                      海军舰队计算机程序
               [48]
            DS 9                            含 38 个工程模块            记录 849 天            1~34
                     中心:海军战术数据系统
               [19]     Tandem Computer
            DS 10                         几百万行代码级别当量               记录 19 周            1~42
                      (美国天腾计算机)公司
               [82]
            DS 11         航空程序              9564 行 C 语言代码          记录 21 周            2~403
               [83]                                                               0.05~1(标准化处理
            DS 12         电信系统                   不明              1 个标准化时间
                                                                                   之后故障个数)

         5.3   性能验证与分析
         5.3.1  拟合性能分析
             为了获得更为广泛的实验结果以得到有价值的分析,这里在 12 个公开发表的失效数据集上进行实验验证
         (更多实验结果可联系作者).基于模型在 12 个数据集上的拟合结果,我们绘制了参与比较的模型与真实的失效
         数据数值之间的拟合曲线,如图 7 所示.
             为更加清晰地观测不同 FDR 对模型带来的影响,在图 7 的基础上,我们特将不同 FDR 融入统一框架模型而
         衍生出的 M-1,M-2,M-4,M-6,M-8,M-10 绘制在一处,用以比较框架模型内不同子模型之间的差异,如图 8 所示.
             从图 7 以及图 8 展示的大量实验所呈现的系列曲线结果可以看出:
             (1)  整体上,除了部分模型出现严重偏差以外(例如 M-6 在 DS 1 上,M-8 在 DS 2 上,M-7 在 DS 4 上,M-6 在 DS 8
         上等),大部分模型与真实的失效数据集的增长形状保持一致,这说明软件测试过程从累计故障检测的角度具有
         凹或凸指数型增长趋势,这也证明采用 NHPP 指数类失效时间模型研究软件可靠性增长具有现实合理性.
             可以发现:弯曲 S 型 FDR 函数(包括复杂弯曲 S 型函数)对数据集的适应性最好,这通过 M-4,M-5 和 M-10
         在众多失效数据集上的性能得到验证,这也与我们前期研究                     [1,7] 的结果保持一致,这是因为呈现 S 型的 FDR 函数
         能够适应不同测试阶段测试环境的变化,具有较强的柔韧性;M-6 和 M-7 所包含的先增后减型 FDR 也展现出了
         较好的性能,但并不具备 S 型 FDR 的强劲适应性;递减型与常数型 FDR 参与的模型性能表现一般,这主要是由
         于真实测试环境的变化并非稳定或连续变化.这些不同的实验现象可以解释为故障检测过程取决于特定测试
         策略下的测试技术、人员技能等实际因素,这使得 FDR 既不是常量,也不是持续递减,而是具有 S 型等变化规律,
         特别是对于大型复杂软件的长期测试过程来说更加满足这一变化规律.
             综上,从具有相同 FDR 的不同模型曲线进行分析可以看出,本文所提出的模型优于其他同组模型.
             (2)  虽然 S 型 FDR 性能较好,但将其融入某些建模假设较为合理的模型中,这些模型在有些失效数据集上
   189   190   191   192   193   194   195   196   197   198   199