基于Rayleigh模型和Gompertz模型的软件质量评估.doc

上传人:文库蛋蛋多 文档编号:3006086 上传时间:2023-03-08 格式:DOC 页数:5 大小:952.50KB
返回 下载 相关 举报
基于Rayleigh模型和Gompertz模型的软件质量评估.doc_第1页
第1页 / 共5页
基于Rayleigh模型和Gompertz模型的软件质量评估.doc_第2页
第2页 / 共5页
基于Rayleigh模型和Gompertz模型的软件质量评估.doc_第3页
第3页 / 共5页
基于Rayleigh模型和Gompertz模型的软件质量评估.doc_第4页
第4页 / 共5页
基于Rayleigh模型和Gompertz模型的软件质量评估.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于Rayleigh模型和Gompertz模型的软件质量评估.doc》由会员分享,可在线阅读,更多相关《基于Rayleigh模型和Gompertz模型的软件质量评估.doc(5页珍藏版)》请在三一办公上搜索。

1、基于 Rayleigh 模型和Gomp ertz 模型的软件质量评估黄云 罗汉文(上海交通大学 ,上海 200030)摘要 :针对软件产品生命周期过程中需要评估过程质量、测试质量 ,对交付的进度和遗留缺陷进行定量度量与预测这些实用需求 ,提出使用 Rayleigh 模型和 Gompertz 模型 ,对软件开发和测试过程中发现的缺陷数进行评估。采用 Rayleigh 和 Go mpertz 两种模型相结合的方法 ,实现了对项目整体的开发过程和局部的测试阶段量化评估 ,可用于项目的进度管理、质量管理和成本管理。关键词 : Rayleigh 模型 ; Gompertz 模型 ;软件缺陷 ; Vire

2、ne 算法 ;过程评估至用户 ,检视和测试过度则会浪费许多宝贵的资源。0 引言对项目经理而言 ,如何掌握这个尺度 ,就需要科学的定量描述工具 ,帮助其做出正确的判断。本文结合采用 Rayleigh 模型和 Gompertz 模型两种可靠性模型 ,在利 用已有的过程数据的基础上 ,对后期的测试过程进行 定量分析和预测 ,对软件产品质量进行定量评估 ,对是 否结束测试任务给出判断依据。在软件开发项目中 ,质量、进度和成本是项目关注的三大要素 ,它们相互依赖、相互制约。在竞争激烈的 环境下 ,项目赶工日益普遍 ,如何做到质量、进度和成 本的平衡 ,是项目经理面临的一大挑战。软件和其他 商品一样 ,只

3、有达到一定的质量标准才能交付给客户。 遗留的问题多或严重 ,会影响用户的满意度和企业的 声誉。从质量管理的角度出发 ,需要一定的模型指导 项目开发 ,满足进度、质量、成本平衡的要求。根据传 统的软件开发瀑布模型 ,软件开发项目主要包括概要 设计、详细设计、编码、单元测试、集成测试和系统测试 六个阶段的活动。业界普遍使用缺陷率这个指标来度 量软件质量。显然 ,为了使软件交付时的遗留缺陷最 少 ,必须在交付前的开发和测试过程中做到 ,减少缺陷 的引入 ;尽可能的发现并解决已有缺陷。业界通常使 用基于开发过程六阶段的缺陷计数 :概要设计检视、详 细设计检视、代码检视、单元测试、集成测试和系统测 试。

4、对每个阶段的检视和测试活动来说 ,检视和测试 不足 ,就意味着遗留了更多的缺陷到下一阶段 ,甚至直1 建模机理11 1 Rayleigh 模型Rayleigh 模型是 Weibull 分布系列中的一个。几 十年来 Weibull 分布广泛应用于各个工程领域的可靠 性分析 ,它的一个特点就是概率密度函数的尾部趋近 于零 ,但永远不会到零。它的积累分布函数 ( CDF) 和 概率密度函数( PDF) 分别为mF( t) = 1 - e - ( t/ c)(1)(2)mtm - ( t/ c) mf ( t) =()cet式中 , m 为形状参数 ( Shape parameter) , c 是范围

5、参数( scale parameter) , t 是时间。当这个函数用于软件估计时 , PDF 通常指的是缺陷密度随时间的变化 ,CDF 指 的是累计的缺陷数。在软件可靠性应用中的两种模型是形状参数 m =2 和 m = 1 这两种。Rayleigh 模型就是 Weibull 分布中 当 m = 2 的一个特例。它的 CDF 和 PDF 分别是计算方法如下R = a bc T(9)取自然对数ln ( R) = ln ( a) + cT ln ( b)定义(10)n - 1n - 1S1 = ln ( Ri ) = nln ( a) + ln ( b) cTi(11)2CDF : F( t) =

6、 1 - e - ( t/ c)(3)(4)i = 02 n - 1S2 = ln ( Ri ) = nln ( a) + ln ( b)i = nm - 1S3 = ln ( Ri ) = nln ( a) + ln ( b)i = 2 n由式(11) 、(12) 、(13) 可得i = 02 n - 1ci = nm - 1ci = 2 nPDF : f ( t) = 2 (Ti( )t ) 2 e - ( t/ c) 212tcTi( )13c 参数是 tm 的函数 , tm 表示曲线达到最大值的时间点。将 f ( t) 求导 ,置为零 ,算出cm - 12 n - 1tm =(5)c

7、Ti -c TiS3 - S2 = i = 2 n i = n 2(14)2 n - 1 n - 1TiS2 - S1tm 确定后 ,整个曲线的形状就可以确定下来。在tm 之前的区域面积是整个区域的 391 35 % 。公式(3) 是一个标准分布 , PDF 曲线下的面积和是1 。在实际的应用中 ,会在公式前面乘个系数 K( K 是c - cTii = ni = 0由此可得 1S3 -S2nc =(15)S -S21所有的缺陷数或所有的累积缺陷率) ,将 c = tm公式(3) 、(4) ,就变成2 代入由式(11) 、(12) 得到n - 1n ln ( a) = ln ( b) ci =

8、nTiS1 -2 2F( t) = K 1 - e - (1/ 2 tm ) t (6)(7)2 n - 1c Tii = nn ln ( a) = ln ( b)S2 -f ( t) = K ( 1 ) 2 te - ( 1/ 2 tm ) t 2 2tm可得S2 - S11a = eS1 + 1 - cn(16)11 2 Gomp ertz 模型Gompertz 可靠性增长模型的数学模型是由 Virene 提出的。在软件领域 ,主要用于处理测试数据 ,进而评 估软件的可靠性增长情况。该模型的基本形式为 :n(17)b = e公式(15) 、(16) 、(17) 得到 a 、b 、c 的估计

9、值 ,于是就得到待评估产品的可靠性增长的估计式。Y = a bc T(8)式中 , Y 表示系统在测试时间或阶段 T 的可靠性指标(如缺陷、M TBF 、可靠度等) ; a 表示当测试时间或阶段 T 趋于无穷大时 Y 的极值 ; ab ,系统测试初始 ,即 T = 0 时 Y 的初值; c 表示形状参数。c 越大 ,则可靠性增长 越慢 ;反之 ,增长越快。模型的参数 a、b、c 的估计 , 可以通过 Gauss2New2ton 等非线性方程求解方法来获得。 除了非线性方程求解法之外 , Virene 还给出了一种求解 Go mpertz 模型参数的解析法。该方法要求可 靠性数据的收集是等时间间

10、隔的。具体方法是先将样 本点按时间顺序等分成三组 ,进而由这三组子样本确 定统计量 S1 、S2 、S3 ,再由 S1 、S2 和 S3 确定 a 、b 、c 的估 计值 ,并最终得到待评估产品的可靠性增长的估计式。2 模型在软件工程中的意义21 1 Rayleigh 模型的意义1978 年 , Put nam 提出软件项目遵循由 Rayleigh 密 度曲线描述的生命周期模式。该模型在软件中的早期 应用 ,主要是按时间进行软件项目生命周期中的人力 资源估计。较近期的工作证明软件项目的缺陷移除模 式也遵循 Rayleigh 模式。1984 年 IBM 的 Gaff ney 报告 了在 IBM

11、通常使用的一个模型的发展 ,这个模型基于 开发过程六阶段的缺陷计数 :概要设计检视、详细设计检视、代码检视、单元测试、集成测试和系统测试。Gaff ney 观察到他的六阶段开发过程的数据缺陷模式 ,( S2 - S1 ) ( c - 1)(1 - cn ) 2。遵循 Rayleigh 曲线。系统测试阶段之后是现场使用(客户使用) 阶段。现场的潜伏缺陷数是估计的目标 通过建立一个与它的数据拟合的 Rayleigh 模型 ,如图 1 所示 , Gaff ney 就有能力预测现场的预期潜伏缺陷。图 3 Rayleigh 模型图( Checklist) ;加强开发组之间的沟通来预防接口缺陷的产生等。图

12、 4 描述了双向质量改进策略。因此 ,从图 4 中可见 ,质量管理的目标就是尽可能在降低 Rayleigh 曲线的同时将它的波峰向左推移。图 1 Rayleigh 模型使用 Rayleigh 模型估计软件开发质量包含两个基本的假设。第一个假设是 : 在开发过程中发现的缺陷 率和现场的缺陷率成正比 ,如图 2 所示 ,也就是说 ,曲 线越高(下面包含的面积越大) ,现场缺陷率也越高 ,反 之亦然。这个和错误注入的概念有关系 ,假定缺陷消 除的效果保持相对不变 ,在开发阶段发现的缺陷率越 高 ,意味着越高的错误注入 ,因此 ,很可能现场的缺陷 率也越高。图 4 开发质量改进的方向21 2 Gomp

13、 ertz 模型的意义在获得 Gompertz 可靠性估计式之后 ,可以在两个 方面进行应用 :(1) 当前测试状况的评估。已知满足测试结束条 件的可靠性指标 ,即结束准则 ,判断当前阶段的测试是 否可以结束。如对 Go mpertz 模型定义一个达到商用 标准的测试结束准则 : 在 Gompertz 曲线的相关系数达 到 01 99 以上的条件下 , 被测对象的缺陷去除率超过95 % ;最后一轮测试的样本点在 90 %置信控制限以内 , 即最后一轮的测试不发生与预测趋势相违背的突变。 (2) 缺陷增长情况的预测。对于不满足结束准则 的情况 ,则在当前测试的基础上 ,估计能够达到测试结束要求的

14、时间。使用 Gompertz 模型 ,除了可以预测产品的可靠性 增长趋势外 ,与一定的度量缺陷分析方法 ,如 ODC 相 结合 ,还可以估计某一类缺陷的量化增长趋势 ,进而为 合理制定测试策略提供改进方向。图 2 Rayleigh 模型图第二个假设是 :给定同样的错误注入率 ,如果缺陷被越早发现和消除 ,那在后面的阶段遗留的缺陷就越 少 ,导致一个结果 :就是现场质量会更好 ,如图 3 所示。Rayleigh 框架结构 , 可以被作为质量改进策略的 基础 特别是关于缺陷预防和早期缺陷消除的两个 原则。这两个原则实际上就是开发质量改进策略的主 要方向。在每个方向 ,都需要明确定义活动 ,并保证实

15、 施这些活动。例如 ,为了使于早期的缺陷消除 ,就要集 中精力进行设计、评审和代码检视( DR/ CI) ; 开展适当 的培训 ( 针对评审和检视会议) ; 使用检视的检查表Gompertz 模型的使用也有一定的约束条件。(1) 被测对象的同一性。即 ,在被统计的时间范围 内 ,允许进行缺陷修正 ,但特性、复杂度、规模、测试组 织等不发生大的变化。(2) 测试的轮次不小于 2 次。仅有一轮测试的数 据 ,不可进行 Go mpertz 分析。因为一轮测试中 , 由于 人为安排测试用例执行顺序的不同 ,很可能产生截然 相反的两种缺陷增长趋势 ,导致 Go mpertz 曲线的可信 程度过低 ,以此

16、进行决策风险较大。而两轮的测试 ,可 能 Go mpertz 曲线的可信程度依然不很高 ,但比之一轮 测试的预测结果有质的提高 ,可以支撑早期预测。为了提高模型估计的准确性 ,测试策略应遵循 :在 每轮测试结束后 ,应根据实际情况 ,结合一定的缺陷分 析方法 ,如 ODC 方法 ,增补测试用例 ,以提高缺陷发现 的效率 ;每轮测试应尽可能进行比较全面的覆盖测试 , 测试用例的执行应兼顾一定的随机性。这也要求测试 应尽可能地自动化。表 2 K和 tm 的最佳值确定参数 K 和 t m 后 ,就可以绘制出整个 Rayleigh模型 ,并预测后期三个阶段的遗留缺陷。图 5 以缺陷 密度为 Y 轴绘制

17、的 Rayleigh 模型 ,表 3 是预测出的各 阶段缺陷数。图 5 根据前四个阶段缺陷数据得出的 Rayleigh 模型表 3 预测出的各阶段缺陷数3 实例应用预测缺陷数31 1 Rayleigh 模型应用在软件开发周期的前端 ,从 I0 到 I2 的期间 ,如果 检视工作量充分 ,数据收集准确 ,就可以利用 Rayleigh 模型预测开发后期遗留到各个阶段的缺陷数。例如。 某项目的规模是 161 3 KL OC ,已经完成了 I0 到 U T 的 开发活动 ,收集到前 4 个阶段的缺陷数据 ,现在需要预 测 I T ( CT) 、ST 和 AT ( GA) 三个阶段的缺陷分布。设 已知的

18、项目数据如表 1 所示。31 2 Gomp ertz 模型应用表 4 是某产品在系统测试阶段的缺陷数据。表 4 测试阶段的累积缺陷数表 1 已知的项目数据使用非线性统计回归软件 , 找到积累分布函数( CDF) 和概率密度函数( PDF) 公式中参数 K 和 t m 的 最佳值如表 2 所示。日期日发现 缺陷数Ya日期日发现 缺陷数Ya2002/ 07/ 23772002/ 08/ 121962002/ 07/ 24182002/ 08/ 1341002002/ 07/ 25082002/ 08/ 1431032002/ 07/ 262102002/ 08/ 1501032002/ 07/ 2

19、70102002/ 08/ 1651082002/ 07/ 280102002/ 08/ 1710118阶段缺陷数HLD100LLD307Coding283U T166总计964HLD128LLD292Code280Unit171Integration73System22Acceptance5参数最佳估计值K591 155 67Tm11 902 106 66续表组产品测试策略的改进提供了帮助和依据。4 结语作为可靠性模型 , Rayleigh 模型应用于整个软件开发生命周期的缺陷分析。用于跨阶段测试活动的定 性分析 ,不能进行单阶段的测试评估。遗留缺陷定量 的估计 ,依赖于前期数据的准确。Ra

20、yleigh 模型的意 义在于强调了缺陷预防和早期缺陷消除的两个原则 , 它们是开发质量改进策略的主要方向。在每个方向 , 都需要明确定义活动并保证实施这些活动。Gompertz 模型为软件产品的测试过程的评估提供了一个很好的 量化工具 ,运用于测试状况的评估和缺陷增长情况的 预测。但这个方法有一些使用前提和约束 ,如软件的 特性需求、测试的资源要保持稳定 ,至少要进行两轮测 试等。Go mpertz 模型只依赖于测试阶段的数据 ,估算 得到的量化数据比较准确。但从整个软件开发生命周期的角度看 ,它只能发现缺陷 , 不能减少缺陷的引入。所以 ,在每轮测试结束后 ,还需要结合一定的缺陷分析方法

21、,如 ODC 方法 ,找出缺陷产生的阶段和根源 ,才能 采取改进措施。因此 ,需要综合掌握这两种可靠性模 型工具 ,将其结合使用 ,才能使项目经理有效的进行管 理 ,达到进度、质量、成本的最优。图 6 是 Go mpertz 模型估算的缺陷增长趋势图。参考文献 1 Kan S H. Modeling and Sof t ware Develop ment Qualit y J . IBM Systems Journal ,1991 (3) :351 - 362 . 2 Virene E P. Reliabilit y Growt h and t he Upper Limit C . Proc.

22、 of1968 Annual Sympo sium on Reliabilit y ,Bo ston ,MA :265 - 270 . 3 Put nam L H. A General Empirical Sol ution to t he Macro Sof t ware Sizing and Estimating ProblemJ . IEEE Transactions on sof t ware Engineering ,1978 (4) :345 - 361. 4 Gaff ney ,J r J E , Cruickshank R D. On p redicting Sof t war

23、e Related Perfor mance of Large2Scale Systems C . IEEE - CS TCSE. Pro2 ceedings of t he 14t h international conference on Sof t ware engineer2 ing. New Yor k : ACM ,1984 . 5 Put nam L H ,Myer s W. Measures for Excellence : Reliable Sof t ware on Time , Wit hin Budget M . Englewood Cliff s : Yourdon

24、Press ,1992. 6 Mays R G ,et al . Experiences wit h Defect Prevention J . IBM Sys2t ems Journal ,1990 (1) :4 - 32 . 7 任卫军 ,贺昱曜 ,张卫钢. 基于 Gompertz 模型的软件质量与测试 过程评估J . 计算机工程与应用 ,2008 (9) :87 - 89 .图 6 Gompertz 模型估算的缺陷增长趋势经求解 ,确定该产品缺陷增长的估计式为 : Ye =2081 15 01 013 ( 01 922 T) 。相关系数 r = 01 986 ,表明 拟合度尚可。分析 :

25、该产品在研发过程中存在功能修改较频繁等现 象 ,测试过程的组织也不很规范。虽经过多轮测试后 发布 ,测试组仍然对测试的完备性表示担心。通过 Gompertz 的分析可以看出 ,该产品可能存在的总缺陷 为 209 个 ,三轮测试结束后 ,发现缺陷 160 个 , 尚余约231 4 %的缺陷没有被发现 ,从分析结果来看这不是一 个很充分的测试过程 ,印证了测试组的担心 ,并为测试日期日发现 缺陷数Ya日期日发现 缺陷数Ya2002/ 07/ 296162002/ 08/ 1801182002/ 07/ 301172002/ 08/ 19131312002/ 07/ 310172002/ 08/ 2

26、0101412002/ 08/ 010172002/ 08/ 2161472002/ 08/ 020172002/ 08/ 2231502002/ 08/ 031182002/ 08/ 2301502002/ 08/ 040182002/ 08/ 2401502002/ 08/ 056242002/ 08/ 2501502002/ 08/ 0620442002/ 08/ 2641542002/ 08/ 0717612002/ 08/ 2721562002/ 08/ 0814752002/ 08/ 2821582002/ 08/ 094792002/ 08/ 2921602002/ 08/ 104832002/ 08/ 3001602002/ 08/ 111295

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号