|
知识路径: > 测试技术的分类 > 可靠性测试 > 软件可靠性建模 >
|
考试要求:掌握
相关知识点:7个
|
|
|
|
一个有效的软件可靠性模型应尽可能地将上面所述的因素在软件可靠性建模时加以考虑,尽可能简明地反映出来。自1972年第一个软件可靠性分析模型发表的20多年来,见之于文献的软件可靠性统计分析模型将近百种。这些可靠性模型大致可分为如下10类。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这类模型利用捕获-再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。其优点是简便易行,缺点是诱导错误的“种子”与实际的原始错误之间的类比性估量困难。
|
|
|
|
|
. Jelinski-Moranda的de-eutrophication模型;
|
|
|
. Jelinski-Moranda的几何de-eutrophication模型;
|
|
|
|
|
|
|
|
这类模型用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间,包括参数方法和非参数方法两种。
|
|
|
|
这类模型预测软件在检错过程中的可靠性改进,用增长函数来描述软件的改进过程。这类模型如下。
|
|
|
|
|
|
|
|
|
程序结构模型是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。网络中的每一结点代表一个子程序或一个模块,网络中的每一有向弧代表模块间的程序执行顺序。假定各结点的可靠性是相互独立的,通过对每一个结点可靠性、结点间转换的可靠性和网络在结点间的转换概率,得出该持续程序的整体可靠性。这类模型如下。
|
|
|
|
|
|
这类模型选取软件输入域中的某些样本“点”运行程序,根据这些样本点在“实际”使用环境中的使用概率的测试运行时的成功/失效率,推断软件的使用可靠性。这类模型的重点(亦是难点)是输入域的概率分布的确定及对软件运行剖面的正确描述。这类模型如下。
|
|
|
|
|
|
这类模型的分析方法与上面的模型相似,先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件的使用可靠性。Shooman分解模型属于此类。
|
|
|
|
非齐次泊松过程模型,即NHPP,是以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测在今后软件的某使用时间点的累计失效数。这类模型如下。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这是利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性。这是一类当软件可靠性工程师对软件的开发过程有充分的了解,软件的继承性比较好时具有良好效果的可靠性分析模型。这类模型如下。
|
|
|
|
|
另外,Musa和Okumoto依据模型的不同属性对可靠性模型进行以下分类。
|
|
|
. 时间域:有两种,自然或日历时间与执行(CPU)时间;
|
|
|
. 失效数类:取决于无限时间内发生的失效数是有限的还是无限的;
|
|
|
. 失效数分布:相对于时间系统失效数的统计分布形式,主要的两类是泊松分布型和二项分布型;
|
|
|
. 有限类:对有限失效数的类别适用,用时间表示的失效强度的函数形式;
|
|
|
. 无限类:对无限失效数的类别适用,用经验期望失效数表示的失效强度的函数形式。
|
|
|