软件质量评估模型与应用系列-Rayleigh模型

      Rayleigh模型最早在1978 年由Putnam提出,他认为软件项目遵循由动态多变量密度曲线描述的成本估算模型,这是Rayleigh模型的雏形。1984 年IBM的Gaffney发展了这一观点,他提出了软件质量评估的缺陷计数应基于开发过程的这六个阶段:概要设计、详细设计、编码、单元测试、集成测试和系统测试,并认为六阶段开发过程的缺陷数据模式遵循Rayleigh曲线。Gaffney的这一六阶段观点在现在的情况下,我认为需要再做一次修正,这6个阶段应分为:需求、设计、编码、单元测试、集成测试、系统测试这六个阶段,主要原因有:

(1)在需求阶段也会有错误产生,例如错误的需求以及对需求的误导和放大等;

(2)概要设计和详细设计的阶段界限不是很明显,很多开发人员有详细设计的任务。

  Rayleigh模型最早的目的在于预测逃逸到客户现场的缺陷情况,随着质量控制策略研究的不断深入,Rayleigh模型同时也成为了软件工程学中双向质量控制策略的重要工具。

Rayleigh模型是Weibull分布的一种特殊形式,是一种常用的模型。Weibull分布最重要的一个特征是它的概率密度函数的尾部逐渐逼近0,但永远达不到0,在许多工程领域都使用了很多年。Rayleigh模型既可以对软件开发全生命周期进行预测,也可以仅对测试阶段的缺陷分布进行预测,得到所期望的时间间隔t与所发现缺陷的关系。对于成熟的组织,当项目周期、软件规模和缺陷密度已经确定时,就可以得到确定的缺陷分布曲线,并可以据此控制项目过程的缺陷率。如果项目进行中实际的缺陷值与预估的缺陷值有较大差别时,说明中间出现问题,需要加以控制。
     

1)Rayleigh模型的函数形式

  Rayleigh模型的累积分布函数(CDF):F(t)=K*(1-exp^(-(t/c)^2));

  Rayleigh模型的概率密度函数(PDF):f(t)=2*K*t/(c^2)*( exp^(-(t/c)^2))。

  上面两个函数中,t是时间自变量,c是一个常量(c=2^(1/2)tm,tm是f(t)到达峰值对应的时间),K是曲线与坐标形成的面积(总缺陷数),也是我们要估计的参数。多年的预测经验得到缺陷在tm时间的比率(F(tm)/K)约等于0.4,即在f(t)到达最大值时,已出现的缺陷大约占总缺陷的40%。按照这个推导,在某一时间就可以估算出总的缺陷数以及具体的Rayleigh分布参数,从而将缺陷的计算过程简化。

2)Rayleigh函数对应的图

图1 Rayleigh模型的CDF图题

  

图2 Rayleigh模型的PDF图标题

由图1——CDF图可以看出,累积密度最终趋近一个最大值(K);由图2——PDF图可以看出,缺陷随时间逐渐降低最终趋向于0。

3)使用Rayleigh曲线来建模软件开发质量涉及两个假设:

  在开发过程中观察到的缺陷率与应用中的缺陷率成正比关系。对应于图1来说,也就是如果开发过程中观测到的缺陷率越高,CDF中图的幅度越高,K值越大;

  给定同样的错误植入率,假如更多的缺陷被发现并更早将其移出,那么在后期阶段遗留的缺陷就更少,应用领域的质量就更好。对应于图2来说,曲线与X、Y轴围成区域的面积是一定的(总的缺陷数是确定的),如果在前期移除较多缺陷,即曲线的峰值点前移,那么后期曲线的面积就会小,代表后期遗留的缺陷数减少。

  4)使用场景:收集数据应当越早越好;且需要持续的追踪缺陷数。

  5)优势:随时间信息的缺陷密度可预测,因此在测试阶段使得找到并验证缺陷的估计成为可能。

  6)Rayleigh模型没有考虑到变化调整的机制,所以可能会影响到缺陷的预测。

单独就系统测试阶段的质量评估而言,Rayleigh模型有既定的价值,在系统测试的初始阶段由于不熟悉的客观因素,开始发现的缺陷会偏少,做好各项工作(例如完成测试设计工作、熟悉了系统、业务以及环境)后,缺陷发现会进入高峰,到系统测试后期,因产品的稳定性越来越好,发现的缺陷会越来越少甚至趋近于零,这正好是Rayleigh模型的密度分布曲线特点。利用这个相似性,我们可以利用Rayleigh模型进行系统测试阶段的质量评估,从而来判断判断系统测试是否需要结束。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值