Rayleigh 缺陷分析法

623 阅读4分钟
原文链接: zhuanlan.zhihu.com

软件缺陷管理过程不仅包含软件缺陷记录和统计,更重要的是对缺陷数据进行细致、深入的分析。缺陷分析是缺陷管理中的一个重要环节,有效的缺陷分析不仅可以评价软件质量,同时可以帮助项目组很好地掌握和评估软件的研发过程,进而改进研发过程,未对缺陷进行分析就无法对研发流程进行改进。此外,还能为软件新版本的开发提供宝贵的经验,进而在项目开展之前,制定准确、有效的项目控制计划,为开发高质量的软件产品提供保障。

常用的缺陷分析方法有:根本原因缺陷分析法、四象限缺陷分析法、ODC 缺陷分析法、Rayleigh缺陷分析法和Gompertz 缺陷分析法。

本节我们来学习下Rayleigh 缺陷分析法。

Rayleigh 模型是Weibull 分布系列中的一种。Weibull 分布又称韦伯分布、韦氏分布或威布尔分布,由瑞典物理学家Wallodi Weibull 于1939 年引进,是可靠性分析及寿命检验的理论基础。Weibull分布能被应用于很多形式,包括1 参数、2 参数、3 参数或混合Weibull。3 参数的Weibull 分布由形状、尺度(范围)和位置三个参数决定。其中形状参数是最重要的参数,决定分布密度曲线的基本形状,尺度参数起放大或缩小曲线的作用,但不影响分布的形状。

它的累积分布函数(CDF)和概率密度函数(PDF)为:

参数说明:m 为形状参数(Shape Parameter);c 为范围参数(Scale Parameter);t 为时间。在软件测试过程中,一般使用概率密度函数PDF 来表示缺陷密度随时间的变化情况,积累分布函数为累计缺陷分布情况,在使用Rayleigh 模型分析缺陷时,形状参数m 取值为2。

将m 值代入公式(1)和公式(2)中,累积分布函数(CDF)和概率密度函数(PDF)为:

c 参数为常量c= √2tm,tm是 f(t)达到峰值时对应的时间。在实际应用过程中,会在公式前面乘一个系数K(K 为所有的缺陷数),将K 值代入公式(3)和公式(4)中,累积分布函数(CDF)和概率密度函数(PDF)为:

缺陷tm 时间的比率m F(t ) / K ≈0.4,即当f(t)达到最大值时,已发现的缺陷数约为总缺陷数的40%。

统计测试中所发现的缺陷数,如表9-6 所示。

从表9-6 中可以看出,第3 周发现的缺陷数最多,截止到第3 周所发现的缺陷数应该大约占全部缺陷总数的40%,则K(总缺陷数)=(前3周缺陷总数)/0.4=(20+38+55)/0.4=113/0.4=282。tm等于3,那么c=√2tm=3√2 。将K值和c值代入公式(5)和公式(6)中,累积分布函数(CDF)和概率密度函数(PDF)为:

使用Rayleigh 模型生成的模拟值见表9-7。

累积分布函数(CDF)与真实数据图如图9-23 所示。

概率密度函数(PDF)与真实数据图如图9-24 所示。

【实例】通过Rayleigh 模型的概率密度来评估测试过程和软件质量。计划升级一个历史项目,以前的历史数据统计表明,该项目千行代码缺陷率为9.56 个,估计升级后该项目的代码行数为102KLOC(千行),希望本次升级发现的千行缺陷数比之前少5.3%,即总缺陷数预计为9.56×102×(1-5.3%)=923.44 个,计划项目的测试时间为22 周。将数据代入到Rayleigh 模型中的概率密度函数中,得到PDF 为:

使用Rayleigh 模型生成的模拟值见表9-8。

使用Rayleigh 模型生成概率密度函数图,如图9-25 所示。

测试过程应该将该图与测试过程真实的每周发现的缺陷数进行对比,如果两个图存在明显的差异,那么说明测试策略存在问题,需要重新修改测试策略。