故障检测率FDR(fault detection rate)是可靠性研究的关键要素,对于测试环境构建、故障检测效率提升、可靠性建模和可靠性增长具有重要作用,对于提高系统可靠性与确定发布时间具有重要现实意义.首先,对基于NHPP(non-homogeneous poisson process,非齐次泊松过程)类的软件可靠性增长模型SRGM(software reliability growth mode)进行概述,给出了建模本质、功用与流程.基于此,引出可靠性建模与研究中的关键参数——FDR,给出定义,对测试环境描述能力进行分析,展示不同模型的差异.着重剖析了FDR与失效强度、冒险率(风险率)的区别,得出三者之间的关联性表述.全面梳理了FDR的大类模型,分别从测试覆盖函数视角、直接设定角度、测试工作量函数参与构成方式这3个方面进行剖析,继而提出统一的FDR相关的可靠性模型.考虑到对真实测试环境描述能力的需要,建立不完美排错框架模型,衍生出不完美排错下多个不同FDR参与的可靠性增长模型.进一步,在12个真实描述应用场景与公开发表的失效数据集上进行实验,验证不同FDR模型相关的可靠性模型效用,对差异性进行分析与讨论.结果表明,FDR模型自身的性能可以支撑可靠性模型性能的提升.最后,指出了未来研究趋势和需要解决的问题.
FDR (fault detection rate), as the key element of reliability research, has great importance in constructing the test environment, improving fault detection efficiency, and modeling and improving reliability. Meantime, it has important practical significance for improving system reliability and determining release time. First, the software reliability growth model SRGM (software reliability growth mode) based on NHPP (non-homogeneous poisson process) is summarized, and the essence, function, and process of modeling are given. Second, based on this, FDR, the key parameter in reliability modeling and researching, is derived, and the definition of it is given. The test environment description ability is analyzed and differences of different models are shown. Third, emphasis is placed on the difference among FDR, failure strength, and hazard rate (risk rate), and then the correlation among the three is derived. Next, the general model of FDR is comprehensively analyzed from three perspectives of test coverage function, FDR set directly, and FDR constituted by testing effort function. Then a unified FDR-related reliability model is proposed. Considering the ability to describe the real test environment, the imperfect debugging framework model is established, and the reliability growth model of multiple different FDRs under imperfect debugging is derived. Further, experiments are carried out on 12 publicly available failure data sets describing real application scenarios to verify the effectiveness of reliability models related to different FDR models, and to analyze and discuss the differences. The results show that the performance of the FDR model can support the performance improvement of the reliability model. Finally, the trend of researches and the problems to be solved are pointed out.
软件作为人工制品, 是多类型软件开发人员协同完成的系统.由于软件是对物理系统和过程的计算机编程语言描述, 因此其实际功能与预期成效很可能存在不一致之处.例如, 软件自身隐藏的错误(error)在特定情况下可能会导致故障(fault), 而故障可能会导致失效(failure):软件的缺陷(defect可能是设计或编码时引入)在运行时会产生错误, 当错误或故障积累到一定数量, 或者达到某种条件时都会造成软件系统的失效.因此, 软件的质量问题至关重要, 尤其是可靠性问题, 长久以来一直得到研究人员的关注.
可靠性作为软件的非功能质量属性, 其可以通过软件可靠性增长测试这一重要途径来不断获得提高.软件测试过程中, 基于故障不断被检测并修复进而使得软件可靠性持续获得增长的事实, 为可靠性研究提供了有效的切入点.软件可靠性增长模型SRGM(software reliability growth model)[
而在整个可靠性的研究中, 故障检测率FDR(fault detection rate)作为累积检测故障数量的主要影响因素, 是建立可靠性增长模型的关键要素, 因此, 其是提高可靠性所需考察的重要问题.经过多年发展, FDR以及其支持的可靠性研究取得了重要进展.目前, 国内外尚没有对FDR进行全面述评的综合性分析文章.本文在作者前期大量工作[
本文的贡献着重体现在对如下4个问题进行了深入回答.
(1) 对FDR进行了全面深入的研究性论述, 对FDR在可靠性研究中的功能、地位、作用和成效进行了深刻阐述, 这在当前可靠性研究中尚属首次;
(2) 厘清了FDR与失效强度、风险率/冒险率的区别与联系, 从数学角度提出并证明了FDR与测试覆盖函数关系的重要定理;
(3) 拓展了FDR的研究内涵, 提出了典型的不完美排错环境下FDR相关的软件可靠性框架模型;
(4) 通过在大量的真实应用场景上的综合实验, 深入分析了FDR效用以及对可靠性模型的影响, 为研究和选择FDR提供了有重要借鉴意义的参考.
本文第1节对以SRGM为核心的可靠性进行概要介绍, 引出故障检测率FDR.第2节从可靠性模型构建视角给出FDR的定义, 从多个角度阐释其功用.第3节重点剖析FDR与失效强度、风险率/冒险率的区别与联系.第4节给出分类视角下的FDR构成.第5节重点对FDR性能及其对SRGM的影响进行分析, 提出不完美排错框架模型, 通过数值分析研究模型的差异性.最后指出后续研究的趋势与需要解决的问题, 并给出结论.
软件开发过程中具有大量复杂的随机性与不确定性, 随着研究人员对测试过程的不断深入认识, SRGM的研究持续至今.SRGM具备描述测试过程中失效发生、故障检测和修复等动态特征, 其刻画了软件的一种故障行为.由于SRGM建立了故障失效个数与可靠性间的数学关联模型, 因此, 利用SRGM就可以计算特定时刻与可靠性紧密相关的参数指标, 包括失效个数、失效率、失效间隔以及可靠性等; 进而, 可以对测试资源进行动态的调配, 预测当前测试环境下软件达到预期目标(例如可靠性)时所需要的时间(被称为发布时间)、成本(被称为发布成本)等重要信息.
在研究内容上, 从突破早期完美排错的限制, 到仅考虑到新故障引入的研究, 以及考虑测试工作量或测试覆盖率的NHPP类软件可靠性建模框架的研究, 再到涵盖不完全排错与新故障引入等各类不完美排错的研究, 进一步拓展至变动点问题、测试资源分配问题、最优发布问题等, 越来越多的可靠性模型得以建立.在求解方法与技术上, 从建立单一微分方程(组)的简单或复杂的解析式方法, 扩展到非解析式方法、排队论技术和最优化方法, 进而采用离散事件仿真与非参量求解方法等, 这些正在推动软件可靠性研究不断走向深入.
软件可靠性增长模型的建模本质与功用
Modeling essence and function of SRGM
若SRGM将软件测试过程视为若干个随机过程的统一, 失效发生后, 测试工作量TE被定量地消耗用以进行故障的检测、隔离、排除等.随着测试的不断进行, 软件中的故障不断减少, 从而软件可靠性得到不断的增长.软件可靠性能够通过软件可靠性增长模型SRGM进行有效度量与预测.目前, SRGM得到了快速的发展, 现已被广泛应用, 成为定量评估软件可靠性的数学工具.
SRGM建模流程
Modeling process of SRGM
在代表NHPP(non-homogeneous Poisson process, 即非齐次泊松过程)类SRGM研究起源的经典G-O模型[
该微分方程具有更一般性, 其假设认为,
特别指出, 本文研究遵从SRGM研究领域中的默认规定.
(1) “error(错误)”[
(2) 这里并不区分修正、改正、修复、排除, 四者均表示故障被排除掉.
在当前所建立的众多SRGM中, 均包含“在
SRGM建模解析——以经典的G-O模型为例
SRGM modeling analysis—Taking the classic G-O model as an example
在可查证的SRGM研究文献17-20, 22-29中, FDR是SRGM建模中必不可少的参数, 其描述了故障被检测出来的能力, 同时也是对测试效能的一种描述.
FDR表征了测试环境下故障被查出的效率, 具有描述综合测试策略的能力, 因而与包括测试人员、测试技术、测试工具等构成的整体测试环境紧密相关.
从早期提出将FDR看作常数的软件可靠性增长模型, 到提出整体呈现递减趋势的幂函数类型FDR, 再到能够基本刻画测试环境平缓变化的
测试过程的目的是不断发现与修复故障, 提高可靠性, 达到预期(发布)要求.客观上, 测试环境的不同, 以及测试人员实施测试策略的差异, 将使得不同系统工程在测试中表现出不同的外在特征.从建立数学模型的角度来看, 公式(1)描述了测试过程中关于故障检测的共性, 但不同模型的区别与FDR:
关于对FDR影响因素的研究, Huang在他的一系列文献[
在关于移动点/拐点CP(change-point)的研究上, 也均将FDR作为分段研究实施的对象.由于FDR刻画了整个测试环境下的综合测试效果, 因而当测试环境发生变化与转折时, FDR就会有所变动.这样, 将FDR进行数学上的CP处理[
由于FDR与测试环境下的失效分布情况等多因素有关联, 而失效分布又会受到例如运行环境、测试策略和资源分配等[
此外, 在考虑测试与运行环境的差异研究上[
FDR的构成上, 存在着
故障检测率函数
Fault detection rate function
类型 | 故障检测率 |
概要分析 |
常量类型 | 常量, 认为FDR在整个测试过程中并不发生改变, 这虽能带来求解上的简易, 但显然偏离实际测试情形, 无法描述 |
|
幂函数类型 | 整体呈现递减的趋势 | |
呈现 |
||
(复杂)指数类型 | 整体呈现递减的趋势 | |
呈现先增后减的整体趋势, 且带有波峰, 波峰后急剧下降趋近于0 |
FDR类型:常函数、减函数、增函数、先增后降、不规则变化(不平稳变化)
Types of FDR: Constant function; subtraction function; increasing function; increasing first, then decreasing function; irregularly changing function (unstable change)
FDR是与时间相关的故障检测率函数, 用以表示单位时间内故障被发现的概率.为了深入研究,
失效强度通常用
风险率即风险函数(hazard function), 通常用
对上式求Δ
“设
则可以得到
因此, 求解上式可得
综上, 我们可以得出:故障检测率FDR、失效强度以及风险率/冒险率均为可靠性相关指标, 三者均与程序运行环境中的多因素(例如程序规模、故障密度、故障测试效率、测试工作量、CPU指令的执行率、代码膨胀系数等)相关联.故障检测率
(1) 故障检测率
(2) 失效强度可用于描述
(3) 风险率/冒险率描述了程序正确地运行到时刻
同时, 文献[
则
此时, 即可得到风险函数或每个故障的失效发生率
软件测试过程中, 随着测试用例的不断执行, 测试覆盖的范围不断扩大, 故障被检测出的可能性不断提高.测试覆盖范围的扩大, 使得被检测出的故障数量增多, 因此, 测试覆盖函数与故障检测率关系密切.测试覆盖TC (testing coverage)指测试系统覆盖被测试系统的程度, 描述了测试与被测试对象之间的相关性[
其中,
当考虑时间因素时,
针对上述公式(11)的来源, 文献[
其中:
则冒险函数(the hazard function)或每个故障的失效发生率(the failure occurrence rate per fault)
这样, 在通常情况下可认为
显然, 对于完美的测试覆盖,
其中,
其中,
其中,
其中,
易见:当
因为基于
相比于基于故障检测率进行SRGM研究的事实, 易知很多研究中对
其中,
在提出Logistic TEF[
这样, 易知故障检测率是测试覆盖的函数, 即
典型的测试覆盖函数与故障检测率函数
Typical test coverage function and fault detection rate function
对象 | 含义 | 与可靠性 |
函数特征 | 典型函数 | 关联 |
注: |
|||||
测试覆盖函数: |
描述测试用例覆盖被测试代码的比例 | 直接相关, 例如:
|
非负非降的增函数, 介于[0, 1]之间 | (1-e- |
|
故障检测率函数: |
描述故障被检测出的概率 | 直接相关 | 非负非降, 介于[0, 1]之间 |
显然, 随着测试的进行,
证明:
代入
经化简得:
令
根据判别式公式可得:
化简得:
因为0 <
易见, 两个根的分子恒小于0.下面对
● 当
开口向上曲线形状
Curve shape with opening up
(1)
(2)
● 当
开口向下曲线形状
Curve shape with opening down
(1)
(2)
同理, 当
由于FDR构成的不同,
① 常量类型:
② 时变类型:例如
另一方面, 鉴于FDR是对测试环境的直接描述, 测试环境的改变可借助FDR进行研究呈现.因而, 当前对考虑变动点CP(change-point)的SRGM研究中, 多从建立FDR分段函数的形式来实施.文献[
Li QY在她的文献[
其中,
在前述分析的基础上, 我们可以将多种描述故障检测能力的函数称为故障检测因子
(1)
(2)
(3)
(4)
(5)
综上, 针对故障检测的描述, 公式(23)建立了统一的故障检测模型——
无论是故障检测率FDR:
迄今为止, 国内外尚未对FDR影响下的可靠性模型进行研究, 也缺少对FDR自身性能的分析.本节将通过在大量真实失效数据集上进行实验验证, 来分析这两个方面.
在当前可查证到的SRGM研究中, 所有模型的建立均是基于下面的假设, 即“
这里认为
在
显然, 公式(26)中
文献[
(1) 若
此时, 随着测试的持续进行,
(2) 若
(3) 若
此时, 随着测试的持续进行,
(4) 若
此时, 随着测试的持续进行,
(5) 若
此时, 随着测试的持续进行,
虽然已有众多SRGMs被提出, 但多以指数型和
参与比较的可靠性模型及FDR
Reliability models and FDRs involved in comparison
模型 | 类型 | 累积故障检测数量 |
FDR类型 |
注:在已有的文献中, FDR多以 |
|||
M-0[ |
完美排错+常量型FDR | 常量, 认为FDR在整个测试过程中并不发生改变 | |
M-1 | 不完美排错+常量型FDR | ||
M-2 | 不完美排错+指数型FDR | 递减的指数变化趋势 | |
M-3[ |
完美排错+指数型FDR | ||
M-4 | 不完美排错+弯曲 |
弯曲 |
|
M-5[ |
完美排错+弯曲 |
||
M-6 | 不完美排错+先增后减型FDR | 先增后减的变化趋势, 波峰后急剧下降 | |
M-7[ |
完美排错+先增后减型FDR | ||
M-8 | 不完美排错+递减型FDR | 呈现递减的趋势 | |
M-9[ |
完美排错+递减型FDR | ||
M-10 | 不完美排错+复杂弯曲 |
复杂弯曲 |
这11个模型可以分为6组, 其中, 前5组均是在同一FDR下采用不同的建模假设所得到的模型, 可以用于比较不同模型对FDR的影响, 最后一组仅包含复杂弯曲
为了验证与比较模型的性能, 我们遴选了12个失效数据集DS1~DS12[
真实应用场景下的失效数据集
Failure data set in real application scenario
数据集 | 真实来源案例(公司或单位软件/程序/系统/项目) | 测试对象规模(公司或单位软件/程序/系统/项目) | 失效或故障记录时间 | 累计检测到的失效或故障个数(记录开始至记录结束) |
DS1[ |
IBM:数据库应用软件 | 1 317 000(代码行数) | 记录19周 | 15~328 |
DS2[ |
RADC(罗马航空发展中心)的T1系统:实时命令与控制应用 | 21 700(代码行数) | 记录21周:由贝尔实验室的9名工程师负责收集 | 2~136 |
DS3[ |
在线数据采集软件包 | 40 000(代码行数) | 记录21天 | 2~46 |
DS4[ |
AT & T Bell实验室:网络管理系统 | 不明 | 记录680.02个CPU单位时间 | 1~22 |
DS5[ |
Tandem(美国天腾计算机)公司:计算机工程项目 | 不明 | 记录20周 | 16~100 |
DS6[ |
大型医疗记录系统 | 含188个软件构件 | 记录18周 | 28~176 |
DS7[ |
Misra系统 | 不明 | 记录25小时 | 27~136 |
DS8[ |
Misra系统 | 1.5百万行代码级别当量 | 记录38周 | 15~231 |
DS9[ |
海军舰队计算机程序中心:海军战术数据系统 | 含38个工程模块 | 记录849天 | 1~34 |
DS10[ |
Tandem Computer (美国天腾计算机)公司 | 几百万行代码级别当量 | 记录19周 | 1~42 |
DS11[ |
航空程序 | 9564行C语言代码 | 记录21周 | 2~403 |
DS12[ |
电信系统 | 不明 | 1个标准化时间 | 0.05~1(标准化处理之后故障个数) |
为了获得更为广泛的实验结果以得到有价值的分析, 这里在12个公开发表的失效数据集上进行实验验证(更多实验结果可联系作者).基于模型在12个数据集上的拟合结果, 我们绘制了参与比较的模型与真实的失效数据数值之间的拟合曲线, 如
M-0至M-10在DS1~DS12上度量拟合曲线
Fitting curve of M-0 to M-10 on DS1~DS12
为更加清晰地观测不同FDR对模型带来的影响, 在
M-1, M-2, M-4, M-6, M-8, M-10在DS1~DS12上度量拟合曲线
Fitting curves of M-1, M-2, M-4, M-6, M-8, M-10 on DS1~DS12
从
(1) 整体上, 除了部分模型出现严重偏差以外(例如M-6在DS1上, M-8在DS2上, M-7在DS4上, M-6在DS8上等), 大部分模型与真实的失效数据集的增长形状保持一致, 这说明软件测试过程从累计故障检测的角度具有凹或凸指数型增长趋势, 这也证明采用NHPP指数类失效时间模型研究软件可靠性增长具有现实合理性.
可以发现:弯曲
综上, 从具有相同FDR的不同模型曲线进行分析可以看出, 本文所提出的模型优于其他同组模型.
(2) 虽然
(3) 另外, 不完美排错模型考虑到了更多的实际情况(正如文献[
为了观测模型的预测性能, 我们绘制了参与比较模型的预测
M-0~M-10在DS1~DS12上的预测曲线
Prediction curve of M-0 to M-10 on DS1~DS12
基于数据集的预测可以看作是模型对未来测试性能的描述能力, 也反映出模型在后续时刻累积检测出故障的能力.从
(1) 整体上, 除了个别模型在部分数据集上出现预测偏差以外(例如, M-10模型在DS5上和M-7模型在DS8上发生预测失真现象), 大部分模型的预测曲线随着测试的进行都逐渐趋向于0, 表明效果较为理想;
(2) 模型本身的建模合理性对预测效果存在着较大影响, 但预测依然会受到模型参数个数、数据集本身的数量大小等因素的影响, 例如在测试前半程, 预测曲线的剧烈起伏变化, 表明模型正在进行对数据的拟合适应;
(3) 具有(弯曲)
(4) M-10在DS5上的预测性能并不理想, 这与其在DS5上的拟合曲线所显示的拟合性能不理想相一致.从而可以得出, 任何一个模型不能在所有的数据集上表现良好(包括拟合性能和预测性能), 这种现象是数据集本身或模型参数数量过多等因素造成的;
(5) 呈现
基于前述11个模型在12个真实失效数据集上的大量实验结果分析, 特作如下讨论.
(1) 整体上, 可靠性模型不能适应于所有的数据集, 且根据实验结果可观察出, 其拟合度量与预测具有相对的一致性.这两点与FDR的关联并不大, 从本文大量的实验结果中没有得到明显关联支撑:①可靠性模型的有效性具有较大的局限性, 模型在一部分数据集上表现优秀的同时, 在另外一些数据集上效果一般甚至较差, 适用性受到较大限制; ②此外, 模型的拟合性能与预测性能具有基本统一性;
(2) FDR对模型的影响, 特别是同一框架中不同的FDR对性能的影响存在较大差异:①框架模型具有较强的柔韧性, 如本文提出的一样, 不同的FDR使得框架模型衍生为具体的模型, 这为区分FDR的性能差异带来可能; ②同一FDR在不同可靠性模型中的性能通过模型的整体性能来反映, 由于不同模型是研究人员基于不同的假设建模得到, 因而难以进行有效衡量;
(3) FDR建模具有客观性与主观性两个方面:由于FDR与整体测试过程紧密相关, 而测试过程是测试人员按照测试策略进行测试工作不断发现软件故障的过程, 是多个随机因素叠加在一起的随机过程, 具有很强的随机性.因此, 测试过程的随机性会直接为FDR的建模带来困难:①对于具有较强测试规划, 呈现一定规律的测试过程, FDR往往具有明显的变化规律, 这为FDR建模提供依据; ②测试过程的复杂性解释了本文给出的当前研究中存在多种类型FDR形式的主要原因, 具有符合多种实际的真实性;
(4) 包含更多测试信息的发布将为FDR的建模与研究带来直接帮助, 也为深入研究可靠性的增长与变动提供有效支持.
特别指出:FDR受到多种因素影响, 具有典型的随机性, 例如不同测试策略、测试工具与方法等都会对其带来扰动影响.因此, 现有研究中提出了多种不同形式的FDR, 且相互之间的差异性较大, 但在特定的测试环境下还是具有合理性的.在实际测试过程中, 由于测试都是在预定或已知的条件下主动实施的, 此时完全可以根据测试整体安排来选择和确定FDR.
FDR是SRGM中最为重要的参变量, 其描述了单位时间内被检测到的故障数量的变化情况, 因而其在本质上刻画了整个测试过程中测试效率的演变, 对于可靠性模型的演变尤其是增长至关重要.
从本文前述介绍中可以看出:FDR实际上涉及到SRGM中的故障检测率函数
包括FDR与可靠性在内的各类模型, 本质上均需要依靠真实的失效数据集进行验证.现有的失效数据集对FDR验证的支持严重不足, 这成为制约FDR发展的首要障碍.因此, 为FDR建模提供更多有效信息, 为可靠性研究特别是建模、度量、预测、发布、调整等带来重大变革, 呼吁公司直接发布FDR, 这也是当前研究中所面临的一个挑战.
软件开发自需求分析起始至发布的全过程, 包含了多个测试阶段.按照文献[
故障与故障检测率在包含多测试阶段的软件开发过程中的变化
Changes of fault and FDR in software development including multi-test phases
不同测试阶段的目的、策略、技术、方法等差异, 使得每个阶段的FDR发生变化, 这种变化有时较为剧烈, 对测试性能与效率影响较大.FDR自身的不稳定性对可靠性模型评价带来重要影响, 因此要把FDR的变化融入到可靠性模型的综合评价分析中, 从而为可靠性模型评测带来关键参数上的影响, 提高精确度.
FDR支持可靠性研究伴随着其众多模型的提出而发展, 特别是在以SRGM为核心的可靠性研究上成为关键因素.
易知, 提出能够适应多种测试环境变化的FDR是建立性能优异的SRGM的重要方面.相比之下, 现有的FDS中却没有公布FDR的变化趋势, 这使得目前SRGM的研究中, 尚不能根据FDS来直接验证所建立的
软件发布受制于软件开发技术、人员、成本等多种因素, 通常, 超过预期时间的发布因为成本的剧烈上升或失去占领市场的机会等原因而直接导致软件制品的失败.合理管控软件的开发过程, 做到在预期之内的发布, 甚至是最优发布, 已成为软件开发管理的重要内容.
区别于传统软件测试的主要目的——单纯地检测与排除故障, 当前已开始考虑到持续进行测试以提高可靠性, 达到(软件)系统发布的目的.因此, FDR要能够支撑与服务于软件的及时发布, 提高市场占有率.此外, 对于新型态软件, 例如大规模分布式网络软件、复杂软硬件综合系统、复杂网络软件等, 在可靠性研究上缺少失效数据集的外部支持.
可靠性建模的一个分支趋势是基于现有的模型框架融入不同的参数, 或者分阶段融入不同的参数, 以得到更为具体的精准模型.FDR对于建模的重要性还可以通过其作为关键参数的属性, 融入到现有的可靠性建模的框架中, 进而建立更为灵活的可靠性模型.当前, 无论是框架模型还是FDR模型均存在多个, 这为组合方式建立模型提供了有效选择, 也为可靠性模型在工程中的应用带来机遇.
FDR对测试环境的描述能力直接反映在故障被检测出来的故障数量与效率上, 因此, 有效的FDR也应该为实际测试过程给出建议, 用以调整测试策略, 更加合理地分配测试资源.当前研究中, 尚未有从FDR的角度对测试工作量(TE)分配、测试过程管理等进行具体的研究, 这成为亟待突破的研究内容.
故障检测率FDR与可靠性的建模与度量紧密相关, 是软件测试过程中测试技术综合运用取得的结果, 既可以从测试覆盖的角度进行建模, 也可以融合测试工作量TE因素, 还可以直接根据实际进行设定.可以看出:FDR是可靠性建模、增长、度量、系统发布的重要构成要素, 是用以支撑可靠性研究与增强可靠性增长的重要内容, 推动了以SRGM为核心的可靠性研究的深入发展.
本文对可靠性模型中故障检测率的研究进行了全面述评, 包括可靠性建模的关键要素FDR的功能、与失效强度和冒险率的关联、多视角下的分类、不完美排错下的性能分析以及未来研究趋势等.期望我们的工作能为可靠性研究, 特别是FDR的研究提供有益的借鉴和参考, 并为推动可靠性相关的研究与应用向前发展做出积极贡献.
在此, 我们向本文参考文献中研究人员所做的大量基础工作表示真诚感谢!对本文在写作与完善工作过程中给予无私支持和提供宝贵建议意见的同行致谢.特别感谢审稿人, 他们提出的宝贵意见和建议对于本文整体水平的提高有很大帮助.
[1] Zhang C, Meng FC, Kao YG,
张策, 孟凡超, 考永贵, 等.软件可靠性增长模型研究综述.软件学报, 2017, 28(9):2402-2430. http://www.jos.org.cn/1000-9825/5306.htm[doi:10.13328/j.cnki.jos.005306]
et al. Component-Based software reliability process technologies. Chinese Journal of Computers, 2014, 37(12): 2586-2612(in Chinese with English abstract).[doi: 10.3724/SP.J.1016.2014.02586]]]>
doi: 10.3724/SP.J.1016.2014.02586]]]>
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]
Almering V, van Genuchten M, Cloudt G,
Cinque M, Cotroneo D, Pecchia A,
Zhang C, Meng FC, Cui G,
张策, 孟凡超, 崔刚, 等.SRGM中TE建模机制与模型比较分析.哈尔滨工业大学学报, 2015, 47(5):32-39.[doi:10.11918/j.issn. 0367-6234.2015.05.006]
Zhang C, Meng FC, Wan K,
张策, 孟凡超, 万锟, 等.SRGM建模类别与性能分析.哈尔滨工业大学学报, 2016, 48(8):171-178.[doi:10.11918/j.issn.0367-6234.2016.08.029]
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]
Liu HW, Yang XZ, Qu F,
刘宏伟, 杨孝宗, 曲峰, 等.一个基于响铃形故障检测率函数的软件可靠性增长模型.计算机学报, 2005, 28(5):908-913.[doi:10.3321/j.issn:0254-4164.2005.05.020]
Song KY, Chang IH, Pham H. A three-parameter fault-detection software reliability model with the uncertainty of operating environments. Journal of Systems Science and Systems Engineering, 2017, 26(1):121-132.[doi:10.1007/s11518-016-5322-4]
Pham H. A generalized fault-detection software reliability model subject to random operating environments. Vietnam Journal of Computer Science, 2016, 3(3):145-150.[doi:10.1007/s40595-016-0065-1]
Xu JJ, Yao SZ. Characterizing uncertainty of software reliability growth model. Ruan Jian Xue Bao/Journal of Software, 2017, 28(7):1746-1758(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5108.htm[doi:10.13328/j.cnki.jos.005108]
许家俊, 姚淑珍.软件可靠性增长模型的不确定性量化研究.软件学报, 2017, 28(7):1746-1758. http://www.jos.org.cn/1000-9825/5108.htm[doi:10.13328/j.cnki.jos.005108]
Wang JY, Zhang C, Mi XP,
王金勇, 张策, 米晓萍, 等.Weibull分布引进故障的软件可靠性增长模型.软件学报, 2019, 30(6):1759-1777. http://www.jos.org.cn/1000-9825/5427.htm[doi:10.13328/j.cnki.jos.005427]
Wang J, Zhang C. Software reliability prediction using a deep learning model based on the RNN encoder-decoder. Reliability Engineering & System Safety, 2018, 170:73-82. https://doi.org/10.1016/j.ress.2017.10.019
Huang C, Lyu M. 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]
Zhu MM, Pham H. A software reliability model with time-dependent fault detection and fault removal. Vietnam Journal of Computer Science, 2016, 3(2):71-79.[doi:10.1007/s40595-016-0058-0]
Chiu KC, Huang YS, Lee TZ. A study of software reliability growth from the perspective of learning effects. Reliability Engineering & System Safety, 2008, 93(10):1410-1421.[doi:10.1016/j.ress.2007.11.004]
Wood A. Predicting software reliability. Computer, 1996, 29(11):69-77.[doi:10.1109/2.544240]
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]
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, 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]
Sharma K, Garg R, Nagpal CK,
Rana R, Staron M, Berger C,
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]
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.
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].
Pham H. Software reliability and cost models:Perspectives, comparison, and practice. European Journal of Operational Research, 2003, 149(3):475-489.[doi:10.1016/S0377-2217(02)00498-8]
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].
Kapur PK, Goswami DN, Bardhan A,
Xu RZ. Software Reliability Engineering. Beijing:Tsinghua University Press, 2007.18-20(in Chinese).
徐仁佐.软件可靠性工程.北京:清华大学出版社, 2007.18-20.
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]
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].
Pham H. A new software reliability model with Vtub-shaped fault-detection rate and the uncertainty of operating environments. Optimization, 2014, 63(10):1481-1490.[doi:10.1080/02331934.2013.854787]
Wang JY, Wu ZB, Shu YJ,
王金勇, 吴智博, 舒燕君, 等.故障检测率不规则变化的软件可靠性模型.软件学报, 2015, 26(10):2465-2484. http://www.jos.org.cn/1000-9825/4746.htm[doi:10.13328/j.cnki.jos.004746]
Kapur PK, Anand S, Singh VB. Distribution based change-point problem with two types of imperfect debugging in software reliability. Bvicams Int'l Journal of Information Technology, 2002, 1(2).
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]
Kapur PK, Singh VB, Anand S,
Yadavalli VSS, Aggarwal AG, Kapur PK,
Zhao J, Liu HW, Cui G,
Achcar JA, Rodrigues ER, Paulino CD,
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].
Pachauri B, Dhar J, Kumar A. Incorporating inflection S-shaped fault reduction factor to enhance software reliability growth. Applied Mathematical Modelling, 2015, 39(5-6):1463-1469.[doi:10.1016/j.apm.2014.08.006]
Aggarwal AG, Gandhi N, Verma V,
Huang CY, Lin CT. Analysis of software reliability modeling considering testing compression factor and failure-to-fault relationship. IEEE Trans. on Computers, 2010, 59(2):283-288.[doi:10.1109/tc.2009.103]
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]
Li Q, Pham H. NHPP software reliability model considering the uncertainty of operating environments with imperfect debugging and testing coverage. Applied Mathematical Modelling, 2017, 51:68-85.[doi:10.1016/j.apm.2017.06.034]
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]
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]
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]
Gokhale SS, Lyu MR, Trivedi KS. Analysis of software fault removal policies using a non-homogeneous continuous time Markov chain. Software Quality Control, 2004, 12(3):211-230.[doi:10.1023/B:SQJO.0000034709.63615.8b]
et al. Unification of finite failure non-homogeneous Poisson process models through test coverage. In: Proc. of the Seventh Int'l Symp. on Software Reliability Engineering White Plains. 1996.299-307.[doi: 10.1109/ISSRE.1996.558886]]]>
Bergel A, Peña V. Increasing test coverage with Hapao. Science of Computer Programming, 2014, 79:86-100.[doi:10.1016/j.scico. 2012.04.006]
Anniprincy B, Sridhar S. An efficient software reliability growth models with two types of imperfect debugging. European Journal of Scientific Research, 2012, 72(4):490-503.
Gokhale SS, Trivedi KS. A time/structure based software reliability model. Annals of Software Engineering, 1999, 8(1):85-121.[doi:10.1023/A:1018923329647]
Malaiya YK, Li MN, Bieman JM,
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 QY, Li HF, Lu MY. Software reliability growth model with S-shaped testing effort function. Journal of Beijing University of Aeronautics and Astronautics, 2011, 37(2):149-154(in Chinese with English abstract).[doi:10.13700/j.bh.1001-5965.2011.02.025]
李秋英, 李海峰, 陆民燕, 等.基于S型测试工作量函数的软件可靠性增长模型.北京航空航天大学学报, 2011, 37(2):149-154.[doi:10.13700/j.bh.1001-5965.2011.02.025]
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.
Li HF, Wang XC, Li QY. Software reliability growth model considering imperfect debugging with logistic testing coverage function. Journal of Computer Research and Development, 2010, 47(Suppl.):216-223(in Chinese with English abstract).
李海峰, 王学成, 李秋英, 等.考虑不完美排错的Logistic测试覆盖率软件可靠性模型.计算机研究与发展, 2010, 47(增刊):216-223.
Li HF, Wang SQ, Liu C,
李海峰, 王栓奇, 刘畅, 等.考虑测试工作量与覆盖率的软件可靠性模型.软件学报, 2013, (4):749-760. http://www.jos.org.cn/1000-9825/4257.htm[doi:10.3724/SP.J.1001.2013.04257]
Chen MH, Lyu MR, Wong WE. Effect of code coverage on software reliability measurement. IEEE Trans. on Reliability, 2001, 50(2):165-170.
Inoue S, Yamada S. Testing-Coverage dependent software reliability growth modeling. Int'l Journal of Reliability Quality & Safety Engineering, 2011, 11(4):303-312.[doi:10.1142/S0218539304001531]
doi: 10.1109/ISSRE.2007.17]]]>
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]
Li QY, Li HF, Lu MY. Incorporating S-shaped testing-effort functions into NHPP software reliability model with imperfect debugging. Journal of Systems Engineering and Electronics, 2015, 26(01):190-207.[doi:10.1109/JSEE.2015.00024]
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]
Jha PC, Gupta D, Yang B,
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. Journal of Systems and Software, 2006, 79(5):653-664.[doi:10.1016/j.jss.2005.06.039]
Ahmad N, Bokhari MU, Quadri SMK,
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]
Ahmad N, Khan MGM, Quadri SMK,
Ahmada N, Khan MGM, Rafib LS. Analysis of an inflection S-shaped software reliability model considering log-logistic testing-effort and imperfect debugging. International Journal of Computer Science and Network Security, 2011, 11(1):161-170.
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]
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.
Ohba M. Software reliability analysis models. IBM Journal of research and Development, 1984, 28(4):428-443.[doi:10.1147/rd.284.0428]
Musa JD, Iannino A, Okumoto K. Software Reliability:Measurement, Prediction, Application. McGraw-Hill, 1990.
Pham H. Software Reliability. Singapore:Springer-Verlag, 2000.
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]
Misra PN. Software reliability analysis. IBM Journal of Research Development, 1984, 22:262-270.
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]
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]
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]
Xie JY, An JX, Zhu JH. NHPP software reliability growth model considering imperfect debugging. Ruan Jian Xue Bao/Journal of Software, 2010, 21(5):942-949(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3539.htm[doi:10.3724/SP.J. 1001.2010.03539]
谢景燕, 安金霞, 朱纪洪.考虑不完美排错情况的NHPP类软件可靠性增长模型.软件学报, 2010, 21(5):942-949. http://www.jos.org.cn/1000-9825/3539.htm[doi:10.3724/SP.J.1001.2010.03539]