张策(1978-), 男, 吉林永吉人, 博士, 讲师, CCF专业会员, 主要研究领域为软件测试, 软件可靠性评估, 容错计算, 可信计算
孟凡超(1974-), 男, 博士, 副教授, CCF高级会员, 主要研究领域为模型驱动的体系结构, 软件重构与复用, 企业资源计划
考永贵(1971-), 男, 博士, 教授, 博士生导师, 主要研究领域为随机微分方程理论与应用, 变结构控制和容错控制, 复杂网络与计算复杂性
吕为工(1967-), 男, 副教授, 主要研究领域为系统可靠性测评, 容错计算
刘宏伟(1971-), 男, 博士, 教授, 博士生导师, CCF高级会员, 主要研究领域为软件可靠性分析, 容错计算, 移动计算
万锟(1994-), 男, 主要研究领域为可靠性建模
蒋家楠(1996-), 女, 主要研究领域为软件可靠性建模
崔刚(1947-), 男, 教授, 博士生导师, CCF高级会员, 主要研究领域为高可靠计算, 容错计算, 嵌入式系统的研究及设计
刘子和(1995-), 女, 主要研究领域为可靠性建模与评测
软件可靠性增长模型SRGM(software reliability and growth model)是目前建模可靠性及其过程提高的重要数学工具,对可靠性的评测、保证以及测试资源管控和最优发布研究具有重要作用.对SRGM的核心研究内容与建模流程进行分析,给出了SRGM基本功用.同时,梳理了SRGM的发展演变历程,进而对当前研究现状进行深入剖析,给出当前研究特征.从软件中总的故障个数、故障检测率FDR(fault detection rate)和测试工作量TE(testing-effort)这3个方面对影响SRGM的因素进行了分析.基于作者前期研究中提出的统一性框架模型,对当前典型的解析模型进行了分类比较和分析;对基于有限与无限服务队列模型的SRGM进行分析与讨论;对以率驱动事件过程RDEP(rate-driven event processes)为重点的仿真方法进行剖析.进一步地,为了验证与分析不同模型的差异,对26个典型的模型在公开发表的16个数据集上进行了实验.结果表明,SRGM的性能差异取决于失效数据集的客观性以及研究人员对测试过程进行不同假设下所建立的数学模型的主观性.最后,指出了SRGM面临的挑战、发展趋势和亟待解决的问题.
SRGM (software reliability and growth model), as an important mathematical tool of modeling reliability and improving reliability process, plays significant role in measuring, predicting and ensuring reliability, managing testing resources and releasing optimal software. Research on SRGM is elaborated and analyzed in this paper. First, main research content and modeling process of SRGM are analyzed, and the basic function is sketched. In the mean time, research evolution is summarized, the state of art is illustrated and the current research characteristics are formulated. Second, from the three aspects including the total number of faults in software, FDR (fault detection rate) and TE (testing-effort), the key factors influencing SRGM are analyzed. Based on the unified framework model proposed in author's previous research, the classical numerical models are classified, compared and analyzed. In addition, the SRGMs based on finite and infinite queue model are discussed and simulation technique emphasizing on RDEP (rate-driven event processes) is elaborated. Furthermore, to evaluate the differences in the models, 26 models are compared by 16 published failure data sets. Experimental results reveal that the differences depend on the objectivity of failure data set collected and the subjectivity of establishing mathematical model by researchers under the different assumptions. Finally, the challenges, the trend of development and the problems to be solved are pointed out.
准确建模软件可靠性并且预测其可能的增长趋势, 对于确定整个产品的可靠性至关重要[
由于可靠性更多更直接地源于软件开发人员在设计与编制程序过程中所带来的内在错误(error), 在测试阶段中, 大量测试计划的有效实施可促使这些错误引发故障(fault), 当达到一定条件时, 故障会引发系统失效(failure).这样, SRGM通过失效的检测能够促使开发人员回溯至代码的层面进行调试修改与排错, 进而提高可靠性; 同时, SRGM在面对一段时间下的失效与改正故障数量可探究出当前测试环境下可靠性随时间的变动规律.正因如此, 多年来, 研究人员在SRGM上积累的技术框架在可靠性过程综合管理上可有效确保可靠性得到持续提高, 尤其在测试阶段; 同时, 在测试资源分配、成本管控、发布策略上得到了应用上的广泛认可.
SRGM对软件可靠性研究形成了重要的理论支撑, 对有效解决可靠性动态定量增长问题开辟了途径.在具体研究可靠性增长的突破点与线索上, SRGM以失效的观察、记录, 故障的检测、移除为主线, 采用微分建模的方法来描述(累积检测与/或修复的)故障个数与可靠性间的数学关联, 并据此指导测试策略的优化执行, 用以实现检测与排除掉更多的故障来提高可靠性.
经过30多年的发展, SRGM已经取得了显著的进展, 涌现出若干典型模型, 已拓展出不同技术脉络, 正处在承前启后的阶段, 迫切需要对其研究工作进行系统化的梳理和评述.目前, 国内外尚没有对SRGM进行全面述评的综述文章, 本文在作者前期工作的基础上, 搜集并综合分析了百余篇典型的SRGM文章来进行梳理, 从建模思路、技术归类讨论、模型差异比较等视角对SRGM进行了全面述评, 并基于此给出了后续研究的新挑战、趋势和亟待解决问题, 以期为科研人员提供有价值的分析与参考, 促进SRGM取得新的进展.
本文第1节对SRGM研究内容、基本功用进行阐释.第2节梳理SRGM的发展历程, 对当前研究进展进行概要分析, 给出研究所呈现的主要特征.第3节从影响SRGM的3个因素入手来分析.第4节基于我们所提出的统一模型进一步对SRGM的类别进行讨论, 涵盖框架模型、队列模型和仿真方法.第5节对典型SRGM性能间差异进行比较分析.最后指出当前研究存在的挑战、趋势、亟待解决的问题, 并给出结论.
软件测试过程中, 随着故障不断被检测出来并被排除, 进而使得软件可靠性持续获得增长, 这为可靠性研究提供了有效的切入点.SRGM从软件失效的角度进行可靠性建模, 采用以微分方程(组)为主的数学手段建立软件测试过程中的若干个随机参量间的定量函数模型, 例如测试时间、累积检测的失效或修复故障个数、测试工作量TE(testing-effort)等参量.基于求解获得的累积检测故障数量函数表达式(通常以
面对自故障检测至排除的软件测试过程, 基于不同的假设建立形式各异的数学模型产生不同的结果.从流程抽象的视角, 不同SRGMs的获取总可以被定型地概述为如
SRGM研究过程抽象
Research process of the SRGM
可以看出:SRGM研究的机理是对测试过程中各随机变量间建立适当的数学模型, 用以指导测试资源的消耗, 以便在测试周期内提高可靠性.数学模型的有效性, 主要通过在真实的失效数据集上进行拟合与预测两个方面上进行验证.由于研究人员对测试过程的认知存在差异性, 因此, SRGM研究已有众多模型被提出.在当前研究中, 非齐次泊松过程NHPP(non-homogeneous Poisson process)类SRGM最具有吸引力, 应用也最为广泛[
测试阶段的软件可靠性
若设
这里, 我们以经典的G-O模型为例, 对SRGM的建立进行简要介绍, 在第4.1节中, 我们给出的研究分类将进行更为深入的剖析与阐释.G-O模型的建立是基于假设:(1) 软件失效满足NHPP; (2)
其中,
SRGM的关键是在某些假设条件下建立微分方程, 求解得到
SRGM建模流程与基本功用
Modeling flow and function of the SRGM
真实测试环境的不稳定直接导致了SRGM需要把实际的随机因素考虑进去[
软件工程师在从事软件制品的生产开发活动中带有大量复杂的随机性与不确定因素, 在此背景下, SRGM研究持续至今.
对
Interpretation of
类型 | 各类型发展阶段概述 |
经典模型C | C①: NHPP类SRGM的起源为指数型的G-O模型[ |
不完美排错ID | ID①:这一时期主要从新故障引入或不完全排错进行研究[ |
考虑TE | TE①:最早于1986年[ |
考虑CP | CP①:此为CP研究的早期, 主要是进行CP相关的SRGM中参数估计[ |
框架模型F | F①:最早于1985年提出从Bayesian视角可以对SRGM进行统一描述[ |
仿真技术S | S①:最早基于率的仿真[ |
队列理论Q | Q①:开始出现用无限服务队列模型来研究SRGM[ |
发布问题R | R①:最早起源于1980年[ |
SRGM发展概览
Overview of SRGM
从检测与修复的故障数量角度来研究可靠性的增长, 是SRGM研究的切入点.显然, 被检测到的故障不断被排除, 可靠性势必会得到提高.目前, 与SRGM紧密相关的研究领域, 整体上呈现了如下的技术演进路线:传统基于微分方程(组)建模测试过程中, 故障检测至修复过程的解析方法(包含基于队列的研究)和基于仿真的分析方法(典型的, 如离散事件仿真).在
SRGM研究现状比较分析
Comparative analysis on research status
文献 | 假设条件与建模情况 | 求解方法 | 概述与分析 | 演化特征及使用范围 |
Ref.[ |
假设条件: |
复杂的解析方法 | 给出了当考虑CP时的多个典型SRGM, 进一步将研究引申至不完美排错环境下(仅考虑到了新故障引入)进行分析 | 突破了完美排错的限制, 尚未建立较为全面的不完美排错模型: |
Ref.[ |
假设条件: |
复杂的解析方法 | 建立了测试工作量相关的故障检测与修复过程, 并考虑到新故障引入情况, 进行了软件发布策略研究 | 从新故障引入角度建立考虑检测与修复TE的不完美排错模型: |
Ref.[ |
假设条件: |
无法直接求解, 只能给出上下界范围 | 从随机过程数学理论的角度进行推导不完美排错环境下的软件可靠性提高过程, 给出了若干有价值的结论 | 将传统概率计算方法延展到随机过程理论: |
Ref.[ |
假设条件: |
离散事件仿真 | 建模故障检测与排错过程为单队列多通道队列系统, 通过离散事件仿真模拟了不完美排错下的软件测试过程 | 将解析方法扩展到基于率函数的仿真方法: |
Ref.[ |
假设条件: |
简单的解析方法 | 应用SRGM进行可靠性预测 | 将完美排错引申到从Cobb-Douglas视角下考虑到排错的不完全性与新故障引入的不完美排错:用于输入/输出模式下测试时间与测试覆盖率双重效用的场景 |
Ref.[ |
假设条件: |
解析方法 | 建立了考虑测试工作量与测试覆盖率的NHPP类软件可靠性建模框架 | 在完美排错的基础上建立考虑TE的框架模型:设定描述测试资源消耗的TE函数, 进而获得特定模型 |
Ref.[ |
假设条件: |
复杂的解析方法 | 建立了涵盖不完全排错与新故障引入的SRGM框架 | 将不完美排错引申到框架模型层面:用于框架内设定合适的参数、函数建立具体模型 |
Ref.[ |
假设条件: |
非解析方法:数值求解 | 基于不完美排错环境下TE相关的SRGM框架模型, 建立了软件最优发布算法 | 完美排错和忽略过多实际特征不完美排错的扩展: |
整体上, 基于解析方法的研究[
综上, 国内外对SRGM的研究已进入到多种技术并存的局面, 经过我们的深入研究和梳理后, 认为当前研究主要体现出下面几个特征.
(1) SRGM的建立, 促使定量研究可靠性的提高已成为目前可信性研究中体系化的一个分支, 使得对失效的观察与预测、故障的检测与修复、可靠性的度量与预测、测试资源的分配与管控、发布问题的制定与决策形成了全面的研究分析支撑;
(2) 建立故障检测至排除过程的微分方程是SRGM研究中常采用的解析方法, 这在2007年以前占有绝对的主导地位, 至今也依然在延续.解析方法借助一个或多个微分形式的方程来公式化地建模描述累积检测与排除的故障个数以及考虑其他有关因素的数学关系式.通过求解可以获得累积检测的故障个数m(t)和可靠性R(t)等关系式, 并由此展开深入的测试过程分析.但由于解析方法在求解复杂方程时会遇到较大困难:若研究的问题本身较为复杂, 则相应的解析方法难以求解, 此时, 其适用的测试过程中的阶段数也是有限的;
(3) 应用排队论理论进行SRGM建模与研究是研究人员对测试过程深入认识的自然结果, 是从传统基于微分方程研究框架下衍生的重要进步.队列模型更加符合真实测试过程中故障所经历的历程, 因而得到了广泛应用[
(4) 面对基于随机过程以及排队论研究引发的求解复杂问题, 仿真技术[
(5) 本文中, 关于基于SRGM的扩展研究有两点特别指出:① 在我们的前期研究工作[
文献[
软件测试与排错人员希望将全部故障排除掉, 获得高可靠性, 但这并非易事也不现实.
(1) 首先, 软件中总的故障个数是未知的(虽然可以假定为有限或无限个数), 根本无法确定;
(2) 软件在排错过程中因排错的不彻底性以及引入新故障等现象, 使得总故障个数会增加.
因而, 设定
软件中总故障个数
Analysis on the number of total faults in software
类型 | 软件中总故障个数 |
概要分析 |
乐观类型: |
总故障个数有限:当 |
|
悲观类型: |
||
中间类型 | 由于 |
这里, 有两点需要特别指出:(1) 悲观类型虽不易被接受, 且根本无法在实际中验证, 但有研究[
FDR用以描述当前测试环境下故障被检测出的程度大小, 其与整体测试策略(技术、工具、测试人员技能等)紧密相关.由于测试策略的多样性, 使得FDR存在多种函数情况, 且均为研究人员自行设定.
早期研究中认为FDR为常量, 设定
为实现预期发布, 测试过程需要消耗测试资源作为保障.测试工作量函数TEF是对测试资源消耗的数学描述,
现有较为典型的TEF
Existing typical TEF
模型 | 公式化描述 | 解释 |
Logistic TEF[ |
最早被提出的Logistic类型的TEF | |
Generalized logistic TEF[ |
依据参数 |
|
若 |
||
Deformable logistic TEF[ |
初值不为0的改进Logistic型TEF | |
Weibull TEF[ |
根据其中参数的不同设置, Weibull TEF又可具体分为5种特定的类型 | |
Log-Logistic TEF[ |
初值不为0的Log型Logistic TEF |
为评价
(1) 支持用户输入和选择不同的TEF、TE数据集和评价标准;
(2) 可实现对TEF在数据集上的拟合标准的计算、拟合与预测曲线的绘制;
(3) 提供用户设定评价标准的权重等;
(4) 实现多属性决策下的TEF综合性能的计算与排序.
TPES运行展示
Presentation of TPES
基于TPES, 我们在公开发表的4个失效数据集: TE-DS1[
由于不同的SRGM差异较大, 难以辨识, 统一建模方法的提出旨在屏蔽这些差异, 采用框架技术是近年来可靠性研究的一个主题.按照对实际测试过程中的认识, 当考虑到多种可能的测试环境时, 这些SRGM在建模中主要涉及不完美排错ID(imperfect debugging), TE, CP等.因此, 一种倾向是建立相对统一的SRGM框架模型, 使其能够涵盖多种现有的模型.事实上, 不同SRGM的本质区别在于对测试阶段认识的差异上, 具体表现为所建立的微分方程(组)的不同.
下面是我们前期工作中基于统一建模法所提出的框架模型[
该模型的建立是基于下面的假设条件.
(1) 累积检测的故障数量
(2) 故障引入率与修复过程中修复率成比例, 比例系数为
(3) 修复率与检测过程中的检测率成比例, 比例系数为
显然, 研究人员对测试过程的认识差异直接决定了所建立的微分方程(组)的不同, 这样所求得的
在公式(5) 中当不考虑第2子式与第3子式、忽略TE, 认为检测率
易见, G-O模型忽略了测试中较多的实际因素, 但却是最早的SRGM, 同时期的其他某型在建模上也较为粗糙.
若公式(5) 中不考虑第2子式与第3子式、忽略TE, 且认为检测率
同时, Pham认为,
另一方面, 当
故障检测与修复是在TE的消耗下进行的, TE可有效地描述软件开发过程中的工作剖面[
这样, 在公式(7) 的基础上, 当考虑TE时, 可以得到下面被众多文献所采用的模型[
通常, 鉴于公式(8) 中考虑到了TE, 因而使其能够将测试资源的影响纳入到SRGM中.
易知, 由于
由于建模的简化需要, 很多SRGM做了一些偏离实际的假设, 若研究中的假设条件更加靠近真实的测试过程, 则所建立的SRGM可被称为不完美排错模型.若公式(5) 中不考虑第3个子式, 且认为新故障引入率与检测率成正比, 则得到Huang模型[
这里, 认为故障修复概率为100%, 新故障会在检测过程中被引入.更进一步, 在公式(9) 基础上, 设定故障检测率函数:
显然, 所建立的不完美排错模型越靠近真实的测试环境, 则模型就越准确; 但同时, 求解方法已开始过渡到复杂的非解析方法.
与前述相比, 这是一种较为全面的建模, 不仅涉及不完美排错ID, TE, 还将测试环境的改变而引发的CP融入到SRGM中.受到多种因素的影响(运行环境、测试策略、失效密度以及资源分配等)[
其中,
其中, 被分段讨论的
相比于测试用例作为故障移除周期单位的离散时间模型[
这些模型的提出, 极大地丰富了SRGM的研究, 使得在缺少安全性和可信性增长模型的情况下, SRGM成为唯一能够描述可靠性随时间提高的技术手段.这里有3点需要指出.
(1) 当前, 对不完美排错的认识主要停留在排错的不彻底上和/或新故障的引入上.实际上, 我们认为, 上述两种情况只是真实测试环境中很狭义的不完美, 在此之外是更多的广义不完美.因而, 不完美排错的概念与研究范畴理应进行更大范围的扩展;
(2) 虽然这些模型最终求解得到的
(3) 上述模型对测试过程的认识虽各有不同, 但均只是局限在单纯的采用微分方程(组)来建模并求解范畴内.下一节采用排队思想建模测试过程, 则使得研究人员对SRGM的认识更为深入.
研究人员认为[
使用队列模型来建模软件排错行为, 通常基于如
典型软件排错队列:单队列多通道排错系统
Software debugging queue: A single-queue multichannel debugging queuing system
针对无限服务队列模型ISQ(infinite server queue)的不现实弊端, Huang[
早期经典的G-O模型以及Yamada Delayed
● 第1种即为故障修复的时间:故障在修复队列中的修复时间
● 第2种为当被检测到的故障等待一段时间积累到一定数量后才被修复和真正修复的时间.
第1种情况较为简单, 由排队引发的第2种延迟问题值得关注.故障的复杂程度影响着移除过程, Kapur[
简单、严重和复杂这3种故障类型
Simple, hard and complex faults
被检测到的故障总是与某种严重级别相关[
综上, 队列模型在SRGM研究中已有效展开, 后续研究中需要考虑下面3个主要问题.
(1) 测试过程假设过于苛刻:失效发生后, 检测人员检测出引发失效的故障, 故障还需要被隔离与归类诊断分析.故障被指派到某队列后, 因排错资源的局限性可能需要等待, 排错人员也需要时间去排除故障, 且可能存在不完美排错现象.上述过程是真实测试与排错环境下自然发生的, 但在当前研究中却忽略了大量的相关细节, 这使得虽然引入队列机制来处理排错, 但严格的假设使其并没有明显体现实际测试特征;
(2) 缺乏多优先权队列与SRGM的集成研究:被检测出的不同严重程度故障对可靠性的影响显然不同, 严重故障理应具有高优先权, 这样, 建模排错过程的队列系统应具备不同优先权, 并考虑抢占式特征.同时, 故障的严重程度又与故障间的关联性问题紧密联系;
(3) 当前, 采用队列理论建模与处理排错过程的研究尚未有触及到排队论的核心, 例如, 在求解平均队列长度、平均逗留时间(平均等待时间+平均服务时间)、顾客到达服务机构需要等待的概率以及资源利用率(对应排错资源的使用情况)等.此外, 排队过程本质上是一个生灭过程, 对应故障被检测后进入队列, 后又被排除掉.这样, 应充分对多队列多通道(有限)排队系统的生率和灭率进行研究.
解析模型与方法为求解上的方便, 进行了大量的偏离真实测试与运行环境的假设, 这使得所建立的模型存有很大偏差; 相反, 则会使得求解变得异常困难.另外, 目前公开发表的失效数据集具有下面3个特点:① 数量有限(作者搜集到20余个); ② 数据集中数据数量也相对不多, 一般不多于21周; ③ 大多是20世纪80年代至本世纪初由知名公司发布.这些事实对SRGM的深入研究形成了障碍, 使得新的模型难有验证的机会.
针对这两个方面的不足, 软件可靠性仿真方法得到了研究人员的重视, 并在近几年得到了深入发展.这样, 仿真方法[
例如, 基于离散事件的仿真[
从观察失效计数的角度, 软件测试过程是一种统计事件过程.在第1.1节SRGM基本假设之上, 当假定在不相互重叠的时间内失效事件相互独立, 且每一个时间步d
设基于率的离散事件随机过程为{
其中,
下面的
RDEP下单事件过程仿真
Single event process simulation of RDEP
该程序仿真了失效事件发生在
不完美排错在SRGM研究体系中占有非常重要的地位, 是SRGM走向深入研究的重要转折点.但由于其考虑随机过程因素更为细致, 使得研究变得逐渐复杂.Chu[
SRGM的验证主要是度量所建立的模型与真实数据集之间的差异(包括拟合与预测, 见第5节), 因而若缺少软件测试的失效数据集, 则SRGM无从验证, 这成为制约研究发展的主要障碍.由上面分析可知, RDEP仿真能够产生[0,
当前, 仿真主要还是为测试过程管理提供参考:① 可以模拟软件测试过程, 通过修改仿真参数来预判真实测试过程的基本特征; ② 产生失效数据集, 包括检测、修复、引入等故障数量, 为某些SRGM进行验证提供数据支持.当前, 仿真方法在研究SRGM中有下面几点需要考虑:
(1) 排错资源所涵盖的内容过于单一:当前, 仅有的考虑到排错资源的仿真研究也仅仅将排错人员的个数作为资源, 对排错人员的技能、排错策略与技术、用例选择、周期以及成本控制等尚没有考虑到;
(2) 在成本可控下实现高可靠性是软件可靠性工程的主要期望目标, 仿真方法显然可以在管控成本方面发挥优势, 但如何在仿真中实现测试成本的融入是关键问题.我们认为, 在当前率控制下的仿真中, 对故障的检测、分配、修复等环节应加入对TE的考虑, 但要注意到下面的两点:① 不同操作的TE应有所区别; ② TEF应根据真实测试环境来确定, 目前可用的TEF见
(3) 虽然仿真方法已得到研究人员的重视, 但能够描述更为真实测试环境的仿真程序至今也尚未见诸文献, 这极大制约了仿真方法的发展.同时, 我们认为:应将注重抽样和模拟的(马尔科夫链)蒙克卡罗仿真方法融入进RDEP仿真方法中, 二者的有机结合可实现将较为繁琐的解析模型借助仿真以更加细腻的方式来实现;
(4) 由于仿真自身的固有缺陷(例如, 无法给出精确的失效时间和数值等), 因而在应用仿真方法时要充分认识到其与工程实际的偏差.
传统的并延续至今的解析技术、基于排队论的分析技术以及以率(函数)作为驱动的离散事件为主的仿真技术已成为SRGM研究的3个关键技术, 当前三者并存,
关键技术比较
Comparisons of key technologies
技术类别 | 主要特征 | 优/缺点 | 适用环境 |
解析方法 | ① 借助数学方程来进行测试过程的建模, |
优点:可将检测、修复等故障数量用数学表达式形式进行表示, 便于与真实的数据集进行对比验证; |
解析方法的主要特定使得其在明确知晓变量间依赖关系时尤为适用, 并通过求解获得定量的解析解或数值解, 进而用以明确刻画测试中的部分子过程 |
排队论技术 | ① 将软件测试过程等效地看成排队系统; |
优点:可以模拟测试过程中故障所经历的多个子过程, 且支持故障类别的差异性等特点; |
排队论的结构模型特征, 使其在面向测试过程中带有随机聚散、随机服务特点的系统时更具优势 |
仿真技术 | ① 用程序代码模拟软件测试的全过程或部分过程; |
优点:相比解析方法与排队论技术, 不需要做过多的假设; 通过参数设置的变化, 可以及时得到仿真结果; |
由于仿真技术只能给出趋势性的结果, 因而其更适用于预知预判、辅助决策等场景 |
本节基于多个公开发表的失效数据集, 对选定的典型SRGMs进行性能验证, 分析不同模型间的差异.
SRGM主要通过指数型(exponential)或者
不同SRGM的建模比较
Modeling comparisons of the SRGM
模型 | 类型 | 累积故障检测数量 |
|
注:类型包括:① EX:指数类型; ② PD:完美排错模型; ③ ID:不完美排错类型; ④ TE:考虑到TE;
⑤ CP:考虑到CP; ⑥ |
|||
M-0: G-O | EX+PD (concave) | ||
M-1: Delayed |
PD+
|
||
M-2: Inflection |
SS+PD+ Concave | ||
Yamada | M-3: Yamada Exponential[ |
Concave+TEF | |
M-4: Yamada Rayleigh[ |
|||
M-5: Yamada Weibull[ |
Concave+TEF | ||
Yamada Imperfect Debugging | M-6: Y-Exp[ |
Concave+ID | |
M-7: Y-Lin[ |
Concave+ID | ||
M-8: P-N-Z Model[ |
|||
M-9: P-Z2[ |
ID | ||
M-10: P-Z model[ |
|||
M-11: Zhang-Teng-Pham[ |
ID | ||
M-12: Pham Zhang IFD[ |
ID | ||
M-13: P-Z[ |
ID | ||
M-14: Pham[ |
ID | ||
M-15: Ohba-Chou[ |
ID | ||
M-16: Xie[ |
ID | ||
M-17: Huang[ |
TEF | ||
M-18: Yamada-TEF[ |
TEF | ||
M-19: Ahmad[ |
TEF | ||
M-20: TEFIDM[ |
ID+TEF | ||
M-21: SEWTEFIDM[ |
ID+TEF | ||
M-22: SLTEFIDM[ |
ID+TEF | ||
M-23: WTECPM[ |
ID+TEF+CP | ||
M-24: GLTECPM[ |
ID+TEF+CP | ||
M-25: ECPM[ |
ID+TEF+CP |
现有SRGM的性能验证均是基于公开发表的失效数据集来进行的.我们搜集了16个相对完整的数据集, 这些数据集可以分为两类:一类是含有故障检测时间
失效数据集描述
Failure data set
数据集 | 来源 | 记录时间 | 代码行数 | 测试中累计检测到的失效个数 | 累积消耗的测试工作量TE |
DS1[ |
Tandem(天腾)公司:计算机工程项目 | 记录20周 | 不明 | 16~100 | 519~10 000 |
DS2[ |
AT & T Bell实验室:网络管理系统 | 记录680.02个CPU单位时间 | 不明 | 1~22 | 不明 |
DS3[ |
电信系统 | 1个标准化时间 | 不明 | 0.05~1(标准化) | 不明 |
DS4[ |
大型医疗记录系统 | 记录18周 | 内含188个软件构件 | 28~176 | 不明 |
DS5[ |
Misra系统 | 记录25小时 | 不明 | 27~136 | 不明 |
DS6[ |
Misra系统 | 记录38周 | 1.5百万行代码级 | 15~231 | 不明 |
DS7[ |
海军舰队计算机程序中心:海军战术数据系统 | 记录849天 | 含38个工程模块 | 1~34 | 不明 |
DS8[ |
Tandem Computer (天腾计算机)公司 | 记录19周 | 几百万行代码级别 | 1~42 | 不明 |
DS9[ |
航空程序 | 记录21周 | 9564行C代码 | 2~403 | 不明 |
基于SRGM在数据集上的拟合结果, 我们画出了
M-6至M-16在DS1~DS9上度量拟合曲线
模型的拟合曲线越接近于真实的失效数据曲线表明拟合效果越好, 从
(1) M-6~M-16合计11个SRGM均是不完美排错模型, 但在同一数据集上的性能差异表现迥异:整体上, M-9和M-6的拟合效果最差(如
(2) 在同一个数据集上, 造成模型间差异的主要原因是所建立的微分方程(组)的不同(直接导致了所求解得到不同的
(3) 由于考虑到CP的存在, 使得
(4) 为了进一步区分模型间的差异, 需要计算其在
另一方面, 在预测性能的验证上, 我们画出了部分模型的
M-6至M-16在DS1~DS9上
预测曲线
(1) 除在DS9上M-6和M-9预测效果较好外(见
(2) 一个公共的现象是所有模型后期的预测性能要优于前期, 尤其在测试时间跨过一半以后.例如, 含有参数较多的模型M-6, M-10, M-16等在测试初期就抖动剧烈(如
(3) 在DS2和DS9上不同模型的起伏较大, 表明预测性能并不稳定; 但在DS1, DS3, DS5, DS6和DS8上, 参与比较的模型(除M-6和M-9以外)起伏较小, 相对较为稳定.造成这种起伏较大现象的主要原因是:客观上, 失效数据变化较大(例如存在CP), 以及模型并不具备良好的适应性而综合作用的结果.
我们在16个公开发表的失效数据集上对
(1) 整体而言, 模型的拟合与预测性能相一致:拟合性能优秀的模型在预测性能上也相对较为优秀, 反之亦然.例如, M-6和M-9仅在DS9上的拟合与预测效果尚可(如
(2) 不存在某个SRGM在所有数据集上表现优秀, 也并非某个数据集适用于所有SRGM.这可被解释为:不同数据集来源于不同公司的不同类型软件系统测试过程, 因而数据集内在直接的本质差异使得其不可能适用于所有SRGM;
(3) 因此, 至今也不存在某个SRGM适用于所有的测试场合, 这是由下面两个原因所引发:
➢ 客观上, 不同失效数据集来源于不同公司在不同测试环境与策略下采用不尽相同的故障收集机制所获得的, 因而, 某特定数据集只能与有限个数的SRGM相适应;
➢ 主观上, 科研人员对故障检测至排除过程的认识与数学建模差异巨大, 这直接造成求解得到的累积检测的故障数量
(4) 如何采取合适的算法对SRGM性能进行有效评价也是值得研究的问题:
➢ 实际应用中, 一种行之有效的方法是将多种SRGM进行混合应用, 以求得整体上的最优效果;
➢ 这需要建立已有模型与数据集之间的对应关系, 或者针对某数据集, 为其寻找合适的SRGM.为此, 如何制定出合适的综合性评价标准, 在给定数据集上选出优秀的SRGM, 已成为今后研究的重要方向.
SRGM发展至今, 建立度量与预测准确的模型仍是当前和今后SRGM发展研究中的主要目标, 在实现该目标过程中会出现诸多挑战和亟待解决的问题, 需要预判研究的趋势所在.这里, 我们进行此方面的分析.
(1) 不完美排错建模挑战
测试过程受各种随机因素的制约, 使得故障的检测至修复过程呈现出不完美的特点.
不完美排错[
(2) 复杂模型求解与验证的挑战
从更为全面细致的视角考虑真实测试环境, SRGM中融入更多的影响因素能够使得所建立的模型更为细腻.这是当前研究中SRGM越发复杂的主要原因所在, 但至少存在下面两个问题需要兼顾:
● 不断上升的模型复杂度直接导致了解析求解的难度增加, 有些只能借助数学求解软件来给出近似结果.但即便借助随机过程中的理论也使得模型较为复杂, 很多情况下只能给出上下限[
● 通常, 复杂模型在拟合能力上表现得较为优秀, 在预测初期并不理想.为此, 复杂模型验证时需要比简单模型验证所需更多的数据量, 这是复杂模型不可回避的事实.
如何既兼顾实际测试过程又使得在数学处理上可接受, 成为SRGM研究发展进程中需要破解的难题.
(3) 由单一可靠性向可信性过渡的挑战
基于文献[
软件生命周期内应用SRGM情况及可靠性到可信性的变迁
SRGM in the life cycle of software and evolution from reliability to trustworthiness
目前, SRGM仅从提高可靠性的角度来研究, 能够从涵盖可靠性与安全性(包括可用性、机密性与完整性)的角度来研究, 是应该值得关注的, 因为作为一个集合属性, 可信性(可靠性+安全性)[
综上, 如何破解这几个方面带来的挑战是SRGM研究中需要解决的基础性理论问题.
(1) SRGM研究向非参量方法转移
目前, 占据主要地位的解析方法主要采用统计推断技术, 记录失效数据, 采用数学建模的方法度量和预测失效及可靠性, 这种基于参量方法的缺陷表现在:① 为便于建立和求解数学模型, 往往进行过度假设[
(2) 失效数据集与考虑软件结构特征相结合下的SRGM研究
SRGM主要面向规模较大的软件系统开发与测试阶段的可靠性提高, 对失效数据的收集是由专业测试人员长时间内完成的, 获得的失效数据集往往具有较大的规模体量.当前研究中, 对失效数据集的利用并不充分, 仅仅单纯地用于参数估计与评估[
(3) 仿真研究应向更加靠近实际测试过程过渡
严格来看, 率控制下的离散事件仿真在SRGM研究中已得到重视, 但目前仅能对故障的检测、修复、引入进行仿真, 尚没有触及真实软件测试过程中更多的排错细节.此外, 如何将测试资源的消耗进行协调性仿真, 在当前研究中也被忽略, 这使得孤立地从故障排除角度来仿真可靠性过程缺乏必要的工程实际背景.如何考虑到更多的测试子过程, 是仿真技术向前发展的必然趋势.
(4) 队列理论支配下SRGM的深入研究
当前, 应用队列技术在SRGM的研究中多是对故障修复与排除进行多通道建模, 对故障的检测过程则未采用队列模型, 这与实际大型软件开发中多个测试小组的并行检测事实不相符.队列理论是较为成熟的一种随机过程, 因而其更多的理论内容可以被引申至SRGM研究中, 但目前, 这方面研究工作还未有效展开.另外, 仿真的非精准性与队列的定量性, 以及二者都需要考虑更多真实的测试细节目标, 使得二者应深入结合起来, 共同使得SRGM的研究更加深入.
(5) 考虑“成本-可靠性”的SRGM评价
在软件开发过程中, 管理人员若应用SRGM来估计可靠性的增长, 可选择多个SRGM来并行应用[
(1) 时间因素—非参量求解映射进SRGM研究的关键
可靠性增长模型不同于可靠性评测的一个最显著特征是, 将时间(测试时间或发布后的执行时间)作为一个重要的参变量.例如,
(2) 新数据集—制约SRGM发展的瓶颈
SRGM性能验证必须借助于失效数据集, 但进入21世纪以来, 新的数据集以及针对各种新软件形式的失效数据集迟迟未发布, 这已成为制约SRGM深入向前发展的严重障碍.虽然仿真方法能够产生失效数据集, 但仿真进行了假设, 与真实的测试环境存有较大不同.此外, 为了增大失效数据量, 应丰富失效数据的收集记录方式, 现有多是以周为单位累积记录失效个数, 应支持以日历时间记录失效个数.
综上可以看出:SRGM的发展经历了早期以G-O模型为代表的经典完美阶段到考虑TE, CP并融入更多实际因素的不完美阶段; 从注重数学建模的定量解析方法到逐步引入仿真技术; 由被动的基于发布的失效集进行验证到基于仿真的方法模拟测试过程来获取失效数据; 自黑盒软件形式到构件软件形态; 由强调从累积检测的故障数量研究可靠性的动态提高到扩展至测试资源管控和软件发布策略范畴.这些发展与变迁, 促使SRGM研究呈现出丰富多样的内涵与视角, 促进了软件可靠性研究得到深入发展.
本文对SRGM研究进行了全面综述, 包括其建模流程、功用、影响因素分析、框架式建模与模型分类、技术类别分类讨论以及典型模型比较分析, 并对制约SRGM发展的问题、挑战与未来趋势进行了分析, 期望通过我们的这些工作, 能为科研人员提供有益的借鉴参考, 并为SRGM的进一步发展做出贡献.
在此, 我们向本文参考文献中研究人员所做的大量基础工作表示真诚的感谢!对本文在写作与完善工作过程中给予无私支持和提供宝贵建议、意见的同行致谢!特别感谢审稿人, 他们提出的宝贵意见和建议对于本文整体水平的提高有很大帮助!
10.1109/HASE.2014.22]]]>
Yamada S. Software Reliability Modeling:Fundamentals and Applications. Tokyo:Springer-Verlag, 2014. 1-38.[doi:10.1007/978-4-431-54565-1]
10.1109/SAMI.2012.6209008]]]>
10.1109/IWSM-MENSURA.2011.26]]]>
Ahmad N, Khan MGM, Rafi LS. A study of testing-effort dependent inflection s-shaped software reliability growth models with imperfect debugging. Int'l Journal of Quality & Reliability Management, 2010, 27(1):89-110.[doi:10.1108/02656711011009335]
Huang CY, Kuo SY, Lyu MR. An assessment of testing-effort dependent software reliability growth models. IEEE Trans. on Reliability, 2007, 56(2):198-211.[doi:10.1109/TR.2007.895301]
Bokhari MU, Ahmad N. Incorporating burr type Ⅻ testing-efforts into software reliability growth modeling and actual data analysis with applications. Journal of Software, 2014, 9(6):1389-1400.[doi:10.4304/jsw.9.6.1389-1400]
Lee TQ, Yeh CW, Fang CC. Bayesian software reliability prediction based on yamada delayed s-shaped model. Applied Mechanics and Materials, 2014, 490:1267-1278.[doi:10.4028/www.scientific.net/AMM.490-491.1267]
Zhang C, Cui G, Liu HW, Meng FC, Fu ZC. Software test resources and cost control and optimal release policy. Journal of Harbin Institute of Technology, 2014, 46(5):51-58(in Chinese with English abstract).[doi:10.11918/j.issn.0367-6234.2014.05.009]
张策, 崔刚, 刘宏伟, 孟凡超, 傅忠传.软件测试资源与成本管控和最优发布策略.哈尔滨工业大学学报, 2014, 46(5):51-58.[doi:10.11918/j.issn.0367-6234.2014.05.009]
http://www.cnki.net/kcms/detail/11.1826.TP.20140828.1915.003.html]]>
http://www.cnki.net/kcms/detail/11.1826.TP.20140828.1915.003.html ]]>
Quadri SMK, Ahmad N, Farooq SU. Software reliability growth modeling with generalized exponential testing-effort and optimal software release policy. Global Journal of Computer Science and Technology, 2011, 11(2):27-42.
Manjula T, Jain M, Gulati TR. Cost optimization of a software reliability growth model with imperfect debugging and a fault reduction factor. ANZIAM Journal, 2014, 55:C182-C196.[doi:10.21914/anziamj.v55i0.7834]
Princy BA, Sridhar S. Measuring software reliability and release time using SRGM tool. Int'l Journal of Scientific Research and Education, 2014, 2(5):785-796.
Kapur PK, Aggarwal AG, Tandon A. Two dimensional software reliability growth model with faults of different severity. Communications in Dependability and Quality Management, 2010, 13(3):98-110.
Kapur PK, Singh O, Shrivastava AK. Optimal price and testing time of a software under warranty and two types of imperfect debugging. Int'l Journal of System Assurance Engineering and Management, 2014, 5(2):120-126.[doi:10.1007/s13198-014-0221-x]
Li X, Xie M, Ng SH. Sensitivity analysis of release time of software reliability models incorporating testing effort with multiple change-points. Applied Mathematical Modelling, 2010, 34(11):3560-3570.[doi:10.1016/j.apm.2010.03.006]
Hsu CJ, Huang CY, Chang JR. Enhancing software reliability modeling and prediction through the introduction of time-variable fault reduction factor. Applied Mathematical Modelling, 2011, 35(1):506-521.[doi:10.1016/j.apm.2010.07.017]
Huang CY, Hung TY. Software reliability analysis and assessment using queueing models with multiple change-points. Computers & Mathematics with Applications, 2010, 60(7):2015-2030.[doi:10.1016/j.camwa.2010.07.039]
Almering V, van Genuchten M, Cloudt G, Sonnemans PJM. Using software reliability growth models in practice. Software, 2007, 24(6):82-88.[doi:10.1109/MS.2007.182]
Kapur PK, Goswami DN, Gupta A. A software reliability growth model with testing effort dependent learning function for distributed systems. Int'l Journal of Reliability, Quality and Safety Engineering, 2004, 11(04):365-377.[doi:10.1142/S0218539304001579]
Huang CY, Lyu MR. Estimation and analysis of some generalized multiple change-point software reliability models. IEEE Trans. on Reliability, 2011, 60(2):498-514.[doi:10.1109/TR.2011.2134350]
Goel L, Okumoto K. Time-Dependent error-detection rate model for software reliability and other performance measures. IEEE Trans. on Reliability, 1979, R-28(3):206-211.[doi:10.1109/TR.1979.5220566]
Peng R, Li YF, Zhang WJ, Hu QP. Testing effort dependent software reliability model for imperfect debugging process considering both detection and correction. Reliability Engineering & System Safety, 2014, 126:37-43.[doi:10.1016/j.ress.2014.01.004]
Kapur PK, Pham H, Anand S, Yadav K. A unified approach for developing software reliability growth models in the presence of imperfect debugging and error generation. IEEE Trans. on Reliability, 2011, 60(1):331-340.[doi:10.1109/TR.2010.2103590]
Huang CY. Performance analysis of software reliability growth models with testing-effort and change-point. Journal of Systems and Software, 2005, 76(2):181-194.[doi:10.1016/j.jss.2004.04.024]
Kapur PK, Singh VB, Anand S, Yadavalli VSS. Software reliability growth model with change-point and effort control using a power function of the testing time. Int'l Journal of Production Research, 2008, 46(3):771-787.[doi:10.1080/00207540600926113]
Huang CY. Cost-Reliability-Optimal release policy for software reliability models incorporating improvements in testing efficiency. Journal of Systems and Software, 2005, 77(2):139-155.[doi:10.1016/j.jss.2004.10.014]
Huang CY, Lo JH. Optimal resource allocation for cost and reliability of modular software systems in the testing phase. The Journal of Systems and Software, 2006, 79(5):653-664.[doi:10.1016/j.jss.2005.06.039]
Kuo SY, Huang CY, Lyu MR. Framework for modeling software reliability, using various testing-efforts and fault-detection rates. IEEE Trans. on Reliability, 2001, 50(3):310-320.[doi:10.1109/24.974129]
Huang CY, Kuo SY. Analysis of incorporating logistic testing-effort function into software reliability modeling. IEEE Trans. on Reliability, 2002, 51(3):261-270.[doi:10.1109/TR.2002.801847]
Lin CT, Huang CY. Enhancing and measuring the predictive capabilities of testing-effort dependent software reliability models. Journal of Systems and Software, 2008, 81(6):1025-1038.[doi:10.1016/j.jss.2007.10.002]
10.1109/ICQR.2011.6031604]]]>
Roy P, Mahapatra GS, Dey KN. An S-shaped software reliability model with imperfect debugging and improved testing learning process. Int'l Journal of Reliability and Safety, 2013, 7(4):372-387.[doi:10.1504/IJRS.2013.057423]
Pham H. Loglog fault-detection rate and testing coverage software reliability models subject to random environments. Vietnam Journal of Computer Science, 2014, 1(1):39-45.[doi:10.1007/s40595-013-0003-4]
Yamada S, Ohba M, Osaki S. S-Shaped software reliability growth models and their applications. IEEE Trans. on Reliability, 1984, 33(4):289-292.[doi:10.1109/TR.1984.5221826]
Yamada S, Ohba M, Osaki S. S-Shaped reliability growth modeling for software error detection. IEEE Trans. on Reliability, 1983, 32(5):475-484.[doi:10.1109/TR.1983.5221735]
Ohba M. Stochastic Models in Reliability Theory. Berlin, Heidelberg:Springer-Verlag, 1984. 144-162.[doi:10.1007/978-3-642-45587-2]
Yamada S, Tokuno K, Osaki S. Imperfect debugging models with fault introduction rate for software reliability assessment. Int'l Journal of Systems Science, 1992, 23(12):2241-2252.[doi:10.1080/00207729208949452]
http://www.jos.org.cn/1000-9825/4746.htm[doi:10.13328/j.cnki.jos.004746] ]]>
http://www.jos.org.cn/1000-9825/4746.htm [doi:10.13328/j.cnki.jos.004746]]]>
Goel AL. Software reliability models:Assumptions, limitations, and applicability. IEEE Trans. on Software Engineering, 1985, 12:1411-1423.[doi:10.1109/TSE.1985.232177]
10.1145/74587.74619]]]>
10.1109/TENCON.2004.1414597]]]>
Pham H, Zhang X. An NHPP software reliability model and its comparison. Int'l Journal of Reliability, Quality and Safety Engineering, 1997, 4(3):269-282.[doi:10.1142/S0218539397000199]
10.1109/ISSRE.2001.989472]]]>
10.1109/ISSRE.2003.1251048]]]>
Singh O, Kapur R, Singh J. Considering the effect of learning with two types of imperfect debugging in software reliability growth modeling. Communications in Dependability and Quality Management, 2010, 13(4):29-39.
10.1109/ACCT.2012.54]]]>
Zhang C, Cui G, Liu HW, Meng FC, Wu SX. A unified and flexible framework of imperfect debugging dependent SRGMs with testing-effort. Journal of Multimedia, 2014, 9(2):310-317.[doi:10.4304/jmm.9.2.310-317]
Yamada S, Ohtera H, Narihisa H. Software reliability growth models with testing-effort. IEEE Trans. on Reliability, 1986, 35(1):19-23.[doi:10.1109/TR.1986.4335332]
10.1109/ISSRE.1997.630886]]]>
10.1109/ISSRE.1999.809311]]]>
10.1109/CMPSAC.2000.884764]]]>
Ahmad N, Bokhari MU, Quadri S MK, Khan MG. The exponentiated weibull software reliability growth model with various testing-efforts and optimal release policy. Int'l Journal of Quality & Reliability Management, 2008, 25(2):211-235.[doi:10.1108/02656710810846952]
Ahmad N, Khan MGM, Quadri SMK, Kumar M. Modelling and analysis of software reliability with Burr type X testing-effort and release-time determination. Journal of Modelling in Management, 2009, 4(1):28-54.[doi:10.1108/17465660910943748]
Ahmad N, Khan MGM, Rafi LS. Analysis of an inflection S-shaped software reliability model considering log-logistic testing-effort and imperfect debugging. Int'l Journal of Computer Science and Network Security, 2011, 11(1):161-171.
Zhang C, Cui G, Meng FC, Liu HW, Wu SX. A study of optimal release policy for SRGM with imperfect debugging. Journal of Engineering Science and Technology Review, 2013, 6(3):111-118.
Li Q, Li H, Lu M. Incorporating S-shaped testing-effort functions into NHPP software reliability model with imperfect debugging. Journal of Systems Engineering and Electronics, 2015, 26(1):190-207.[doi:10.1109/JSEE.2015.00024]
Chang YP. Estimation of parameters for non-homogeneous Poisson process:Software reliability with change-point model. Communications in Statistics-Simulation and Computation, 2001, 30(3):623-635.[doi:10.1081/SAC-100105083]
Wang Z, Wang J. Parameter estimation of some NHPP software reliability models with change-point. Communications in Statistics-Simulation and Computation, 2005, 34(1):121-134.[doi:10.1081/SAC-200047098]
Zou FZ. A change-point perspective on the software failure process. Software Testing, Verification and Reliability, 2003, 13(2):85-93.[doi:10.1002/stvr.268]
Shyur HJ. A stochastic software reliability model with imperfect-debugging and change-point. Journal of Systems and Software, 2003, 66(2):135-141.[doi:10.1016/S0164-1212(02)00071-7]
Achcar JA, Rodrigues ER, Paulino CD, Soares P. Non-Homogeneous Poisson models with a change-point:an application to ozone peaks in Mexico city. Environmental and Ecological Statistics, 2010, 17(4):521-541.[doi:10.1007/s10651-009-0114-3]
Jain M, Manjula T, Gulati TR. Prediction of reliability growth and warranty cost of software with fault reduction factor, imperfect debugging and multiple change point. Int'l Journal of Operational Research, 2014, 21(2):201-220.[doi:10.1504/IJOR.2014. 064544]
Jain M, Manjula T, Gulati TR. Imperfect debugging study of SRGM with fault reduction factor and multiple change point. Int'l Journal of Mathematics in Operational Research, 2014, 6(2):155-175.[doi:10.1504/IJMOR.2014.059526]
Langberg N, Singpurwalla ND. A unification of some software reliability models. SIAM J. Scientific and Statistical Computing, 1985, 6(3):781-790.[doi:10.1137/0906053]
Chen Y, Singpurwalla ND. Unification of software reliability models by self-exciting point processes. Advances in Applied Probability, 1997, 29:337-352.[doi:10.2307/1428006]
Huang CY, Lyu MR, Kuo SY. A unified scheme of some nonhomogenous Poisson process models for software reliability estimation. IEEE Trans. on Software Engineering, 2003, 29(3):261-269.[doi:10.1109/TSE.2003.1183936]
Wu YP, Hu QP, Xie M, Ng SH. Modeling and analysis of software fault detection and correction process by considering time dependency. IEEE Trans. on Reliability, 2007, 56(4):629-642.[doi:10.1109/TR.2007.909760]
Kapur PK, Anand S, Inoue S, Yamada S. A unified approach for developing software reliability growth model using infinite server queuing model. Int'l Journal of Reliability, Quality and Safety Engineering, 2010, 17(5):401-424.[doi:10.1142/S0218539310003871]
Lo JH. Toward a unified approach to software reliability modeling under imperfect debugging. Applied Mechanics & Materials, 2015. 979-982.[doi:10.4028/www.scientific.net/AMM.764-765.979]
Tausworthe RC, Lyu MR. A generalized technique for simulating software reliability. IEEE Software, 1996, 13(2):77-88[doi:10.1109/52.506464]
Chu TL. Analyzing the effect of imperfect debugging on software fault detection on software fault detection and correction processes via a simulation work. Mathematical and Computer Modelling, 2011, 54:3046-3064.[doi:10.1016/j.mcm.2011.07.033]
Hou CY, Chen C, Wang JS, Lin S. Software reliability process simulation considering imperfect debugging. High Technology Letter, 2014, 24(6):558-564(in Chinese with English abstract).[doi:10.3772/j.issn.1002-0470.2014.06.002]
候春燕, 陈晨, 王劲松, 林胜.考虑不完美排错情况的软件可靠性过程仿真.高技术通讯, 2014, 24(6):558-564.[doi:10.3772/j.issn. 1002-0470.2014.06.002]
Gokhale SS, Lyu MR, Trivedi KS. Incorporating fault debugging activities into software reliability models:A simulation approach. IEEE Trans. on Reliability, 2006, 55(2):281-292.[doi:10.1109/TR.2006.874911]
Lin CT, Huang CY. Staffing level and cost analyses for software debugging activities through rate-based simulation approaches. IEEE Trans. on Reliability, 2009, 58(4):711-724.[doi:10.1109/TR.2009.2019669]
Dohi T, Matsuoka T, Osaki S. An infinite server queuing model for assessment of the software reliability. Electronics and Communications in Japan (Part Ⅲ:Fundamental Electronic Science), 2002, 85(3):43-51.[doi:10.1002/ecjc.1078]
10.1109/APSEC.2004.29]]]>
Huang CY, Huang WC. Software reliability analysis and measurement using finite and infinite server queueing models. IEEE Trans. on Reliability, 2008, 57(1):192-203.[doi:10.1109/TR.2007.909777]
10.1109/SSIRI.2009.11]]]>
Okumoto K, Goel AL. Optimum release time for software systems based on reliability and cost criteria. Journal of Systems and Software, 1980, 1:315-318.[doi:10.1016/0164-1212(79)90033-5]
Huang CY, Lyu MR. Optimal release time for software systems considering cost, testing-effort, and test efficiency. IEEE Trans. on Reliability, 2005, 54(4):583-591.[doi:10.1109/TR.2005.859230]
Yang B, Hu H, Jia L. A study of uncertainty in software cost and its impact on optimal software release time. IEEE Trans. on Software Engineering, 2008, 34(6):813-825.[doi:10.1109/TSE.2008.47]
Manjula T, Jain M, Gulati TR. Optimal release policies of delayed discrete reliability growth model with imperfect debugging. Journal of Testing & Evaluation, 2015.[doi:10.1520/JTE20150043]
Yang J, Liu Y, Xie M, Zhao M. Modeling and analysis of reliability of multi-release open source software incorporating both fault detection and correction processes. Journal of Systems and Software, 2016, 115:102-110.[doi:10.1016/j.jss.2016.01.025]
Cao P, Dong Z, Liu K, Cai KY. Quantitative effects of software testing on reliability improvement in the presence of imperfect debugging. Information Sciences, 2012, 218(2013):119-132.[doi:10.1016/j.ins.2012.06.034]
Anniprincy B, Sridhar S. Prediction of software reliability using COBB-DOUGLAS model in SRGM. Journal of Theoretical and Applied Information Technology, 2014, 62(2):355-363.
http://www.jos.org.cn/1000-9825/4527.htm [doi:10.3724/SP.J.1001.2013.04257]]]>
http://www.jos.org.cn/1000-9825/4257.htm [doi:10.3724/SP.J.1001.2013.04257]]]>
Zhao J, Liu HW, Cui G, Yang XZ. Research on the software reliability model considering differences between testing profile and operational profile. Journal of Computer Research and Development, 2006, 43(5):503-508(in Chinese with English abstract).[doi:10.1360/crad20060320]
赵靖, 刘宏伟, 崔刚, 杨孝宗.考虑测试与运行差别的软件可靠性增长模型研究.计算机研究与发展, 2006, 43(5):503-508.[doi:10.1360/crad20060320]
Zhao J, Liu HW, Cui G, Yang XZ. Software reliability model considering testing environment and actual operational environment. Journal of Computer Research and Development, 2006, 43(5):881-887(in Chinese with English abstract).[doi:10.1360/crad20060517]
10.1360/crad20060517]]]>
Zhao J, Liu HW, Cui G, Yang XZ. Software reliability growth model with change-point and environmental function. Journal of Systems and Software, 2006, 79(11):1578-1587.[doi:10.1016/j.jss2006.02.030]
Zhao J, Zhang RB, Gu GC. Study on software reliability growth model considering failure dependency. Chinese Journal of Computers, 2007, 30(10):1713-1720(in Chinese with English abstract).[doi:10.3321/j.issn:0254-4164.2007.10.009]
赵靖, 张汝波, 顾国昌.考虑故障相关的软件可靠性增长模型研究.计算机学报, 2007, 30(10):1713-1720.[doi:10.3321/j.issn:0254-4164.2007.10.009]
http://www.jos.org.cn/1000-9825/3539.htm [doi:10.3724/SP.J. 1001.2010.03539]]]>
http://www.jos.org.cn/1000-9825/3539.htm [doi:10.3724/SP.J.1001.2010.03539]]]>
Li HF, Li QY, Lu MY, A software reliability growth model considering an S-shaped testing effort function under imperfect debugging. Journal of Harbin Engineering University, 2011, 32(11):1460-1467(in Chinese with English abstract).[doi:10.3969/j.issn.1006-7043.2011.11.012]
李海峰, 李秋英, 陆民燕.考虑S型测试工作量函数与不完美排错的软件可靠性模型.哈尔滨工程大学学报, 2011, 32(11):1460-1467.[doi:10.3969/j.issn.1006-7043.2011.11.012]
Li HF, Li QY, Lu MY. Software reliability modeling with logistic test coverage function. Journal of Computer Research and Development, 2011, 48(2):232-240(in Chinese with English abstract).
李海峰, 李秋英, 陆民燕.基于Logistic测试覆盖率函数的软件可靠性建模研究.计算机研究与发展, 2011, 48(2):232-240.
Pham H. System Software Reliability. London:Springer-Verlag, 2007.
Pham H, Nordmann L, Zhang X. A general imperfect-software-debugging model with S-shaped fault-detection rate. IEEE Trans. on Reliability, 1999, 48(2):169-175.[doi:10.1109/24.784276]
Pham H, Zhang X. NHPP software reliability and cost models with testing coverage. European Journal of Operational Research, 2003, 145(2):443-454.[doi:10.1016/S0377-2217(02)00181-9]
10.1109/SSIRI.2010.14]]]>
Hossain SA, Dahiya RC. Estimating the parameters of a non-homogeneous Poisson-process model for software reliability. IEEE Trans. on Reliability, 1993, 42(4):604-612.[doi:10.1109/24.273589]
Huang CY, Lyu MR. Optimal testing resource allocation, and sensitivity analysis in software development. IEEE Trans. on Reliability, 2005, 54(4):592-603.[doi:10.1109/TR.2005.858099]
10.1109/HASE.1998.731593]]]>
Ohba M. Software reliability analysis models. IBM Journal of Research and Development, 1984, 28(4):428-443.[doi:10.1147/rd.284.0428]
Wood A. Predicting software reliability. Computer, 1996, 29(11):69-77.[doi:10.1109/2.544240]
Musa JD, Iannino A, Okumoto K. Software Reliability:Measurement, Prediction and Application. New York:McGraw Hill, 1987.
Pham H. Software Reliability. Singapore:Springer-Verlag, 2000.[doi:10.1002/047134608X.W6952]
Jha PC, Gupta D, Yang B, Kapur PK. Optimal testing resource allocation during module testing considering cost, testing effort and reliability. Computers & Industrial Engineering, 2009, 57(3):1122-1130.[doi:10.1016/j.cie.2009.05.001]
10.1109/CMPSAC.2004.1342826]]]>
10.1109/ISSRE.2006.38]]]>
10.1109/ISSRE.1998.73088]]]>
10.1109/COMPSAC.2007.141]]]>
Gokhale SS, Lyu MRT. A simulation approach to structure-based software reliability analysis. IEEE Trans. on Software Engineering, 2005, 31(8):643-656.[doi:10.1109/TSE.2005.86]
Lyu MR. Handbook of Software Reliability Engineering. New York:McGraw Hill, 1996.
Zhang C, Cui G, Bian YL, Liu HW. Component based software reliability process simulation considering imperfect debugging. High Technology Letters, 2014, 20(1):9-15.[doi:10.3772/j.issn.1006-6748.2014.01.002]
Hou CY, Cui G, Liu HW, Zhou LK. A hybrid queueing model with imperfect debugging for component software reliability analysis. Intelligent Automation and Soft Computing, 2011, 17(5):559-570.[doi:10798587.2011.10643170]
Pham H. An imperfect-debugging fault-detection dependent-parameter software. Int'l Journal of Automation and Computing, 2007, 4(4):325-328.[doi:10.1007/s11633-007-0325-8]
Zhang X, Teng X, Pham H. Considering fault removal efficiency in software reliability assessment. IEEE Trans. on Systems, Man and Cybernetics, Part A:Systems and Humans, 2003, 33(1):114-120.[doi:10.1109/TSMCA.2003.812597]
Yamada S, Hishitani J, Osaki S. Software-Reliability growth with a Weibull test-effort:A model and application. IEEE Trans. on Reliability, 1993, 42(1):100-106.[doi:10.1109/24.210278]
Ehrlich W, Prasanna B, Stampfel J, Wu J. Determining the cost of a stop-test decision. IEEE Software, 1993, 10(2):33-42.[doi:10.1109/52.199726]
Zhang X, Pham H. Software field failure rate prediction before software deployment. Journal of Systems and Software, 2006, 79(3):291-300.[doi:10.1016/j.jss.2005.05.015]
Stringfellow C, Andrews AA. An empirical method for selecting software reliability growth models. Empirical Software Engineering, 2002, 7(4):319-343.[doi:10.1023/A:1020515105175]
Zhang X, Pham H. A software cost model with warranty cost, error removal times and risk costs. ⅡE Transactions, 1998, 30(12):1135-1142.[doi:10.1080/07408179808966570]
Bai CG, Hu QP, Xie M, Ng SH. Software failure prediction based on a Markov Bayesian network model. Journal of Systems and Software, 2005, 74(3):275-282.[doi:10.1016/j.jss.2004.02.028]
Cai KY, Cao P, Dong Z, Liu K. Mathematical modeling of software reliability testing with imperfect debugging. Computers & Mathematics with Applications, 2010, 59(10):3245-3285.[doi:10.1016/j.camwa.2010.03.011]
Teng X, Pham H. A software cost model for quantifying the gain with considering of random field environments. IEEE Trans. on Computers, 2004, 53(3):380-384.[doi:10.1109/TC.2004.1261844]
Shen CX, Zhang HG, Wang HM, Wang J, Zhao B, Yan F, Yu FJ, Zhang LQ, Xu MD. Research and development of trusted computing. Science China:Information Science, 2010, 40(2):139-166(in Chinese with English abstract).
沈昌祥, 张焕国, 王怀民, 王戟, 赵波, 严飞, 余发江, 张立强, 徐明迪.可信计算的研究与发展.中国科学:信息科学, 2010, 40(2):139-166.
Zhang C, Cui G, Fu ZC. Overview of trustworthiness measurement mechanism and model in TCG. Journal of Harbin Institute of Technology, 2013, 45(1):72-77(in Chinese with English abstract).
张策, 崔刚, 傅忠传.TCG下可信度量机制与模型分析.哈尔滨工业大学学报, 2013, 45(1):72-77.[doi:10.11918/j.issn.0367-6234. 2013.01.014]
Amin A, Grunske L, Colman A. An approach to software reliability prediction based on time series modeling. Journal of Systems & Software, 2013, 86(7):1923-1932.[doi:10.1016/j.jss.2013.03.045]
Kim T, Lee K, Baik J. An effective approach to estimating the parameters of software reliability growth models using a real-valued genetic algorithm. Journal of Systems and Software, 2015, 102:134-144.[doi:10.1016/j.jss.2015.01.001]
10.1109/ICRITO.2015.7359322]]]>
Jin C, Jin SW. Parameter optimization of software reliability growth model with S-shaped testing-effort function using improved swarm intelligent optimization. Applied Soft Computing, 2016, 40:283-291.[doi:10.1016/j.asoc.2015.11.041]
Sharma K, Garg R, Nagpal CK, Garg RK. Selection of optimal software reliability growth models using a distance based approach. IEEE Trans. on Reliability, 2010, 59(2):266-276.[doi:10.1109/TR.2010.2048657]
Rana R, Staron M, Berger C, Hansson J, Nilsson M, Törner F, Meding W, Höglund C. Selecting software reliability growth models and improving their predictive accuracy using historical projects data. Journal of Systems and Software, 2014.[doi:10.1016/j.jss. 2014.08.033]