基于Gompertz模型与回归分析模型控制测试质量的工程化方法(格式修改)[1]
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1
20.00
25.00
30.00
累积发现缺陷数预测值
对于表格中的字段说明: 1. K 为缺陷个数的上限,Ka 为测试启动时首次发现的缺陷个数的拟合值,b 表征了曲线 到达顶峰的速度 2. 顺推预测还需要的测试次数是用最后三次测试出的缺陷的平均数作为后续每次测试 发现的缺陷的个数作为分母,然后用剩余应发现的缺陷个数除以之 3. 逆推预测还需要的测试次数是用目标缺陷数作为 K,逆推出 t,然后减去已经做过的 测试次数来计算的 4. 预测还需要的投入工作量时用最后三次测试的工作量的平均数作为参考值 5. 遗留缺陷率目标:自行设置的目标 6. 缺陷快速上升的拐点 t 值:将 K,a,b 值带入Y = K������������ ,计算出 t 7. 缺陷快速上升的拐点 y 值:K/E 8. 应发现的缺陷数:K*(1-遗留缺陷率目标) 9. 应遗留的缺陷数:K*遗留缺陷率 10. 距离目标缺陷数差距:应发现的缺陷数-已发现的累积缺陷数 从表 2 中,可以得到各种需要的预测值。 4.2 应用二: 回归模型与 Gompertz 模型结合共同来预测产品质量好坏或测试过程质量好坏,示例: 某组织建立了通过千行测试投入预测缺陷密度的回归模型, 该回归模型具备如下两个特 点: 1) 回归模型可以预测在一定的测试投入下缺陷密度的预测区间 2) 曲线回归模型,可以通过找到测试充分的分水岭值,即 8 人天/千行 通过回归上述的两个特点,可以考虑在测试充分和不充分的应用 场景一:测试不充分情况下:
//直接在下面填上要拟合的数据点(xi yi),如下面的例子: 将“累计测试的工作量”与“累计发现的缺陷数”两列拷贝到 1stopt 中,计算出 K,a,b 设计表格如表 2 所示:
表2
得到拟合曲线,如图 1 所示
Gompertz模型缺陷预测
2000.0 1500.0 1000.0 500.0 0.0 0.00 5.00 10.00 15.00
点是开始增长较慢, 然后逐渐加快, 到某点以后增长速度又减慢, 曲线会趋近一条渐近线 (K 值) ,但不会超过,曲线的变化是逐渐的、平滑的,而不是骤然的。在软件测试过程中,最 开始的时候,会呈现缺陷增长较快的趋势状态,随着测试的进行,软件测试的隐藏加深,测 试难度加大,需要执行较多的测试用例才能发现一个缺陷,虽然继续投入测试,仍然会持续 发现缺陷,但是明显缺陷的增长速度会减缓,同时软件中隐藏的缺陷是有限的,因而限制了 发现缺陷数的无限增长。 这种软件测试中发现缺陷的趋势符合可靠性增长的规律, 因而采用 Gompertz 应用于软件产品质量的预测领域。 Gompertz 模型的原始表达式如(1)所示 R = abc (1) 其中 R 是随时间 T 的可靠度,R 是百分数,0<R≤100%;a 是当 t→∞时的可靠度的上限。 ab 是当 t→0 时的起始可靠度。c 表示增长的速度。 在软件测试中,通常关注的是测试的缺陷个数,对上述 Gompertz 的公式做如下修正: 假设软件产品中,隐藏的软件缺陷总数是 N,通过测试发现的缺陷数为 m。当发现的缺陷数 越多,则表示软件的可靠度越高,即软件的可靠度就可以表示为(2)所示 R = (2)
Gompertz model prediction in the software testing process applications
Chenminhua,Suzhangji,Laixiaojian
Zhejiang SUPCON Co.,Ltd.,Hangzhou,Zhejiang,310053 Abstract:In the CMMI model, establishing the model and baseline of performance can quantify the software testing process. In addition, a model of software reliability growth testing process also can predict the quality of the product. This article introduce the mothod of using Gompertz model to predict the software testing process inputs and product quality. KeyWords:Gompertz Model、Quantitatively Manage、Software test
Fra Baidu bibliotek时间
第1周 第2周 第3周 第4周 第5周 第6周
第7周 第8周 第9周 第 10 周 第 11 周 第 12 周 第 13 周 第 14 周 第 15 周 第 16 周 第 17 周 第 18 周 第 19 周 第 20 周 第 21 周 第 22 周 第 23 周 第 24 周
5.00 5.00 5.00 5.00 5.00 5.00 5.00 4.50 2.50 2.50 2.50 2.50 2.50 2.50 2.50 2.50 4.50 4.00
yi = a + b x i + ei i 1,2,, n
其中:
yi 是因变量 Y 的第 i 个观察值,
x i 是自变量 X 的第 i 个观察值
a 与 b 是回归系数,
n 是样本容量,
ei 为对应于 Y 的第 i 个观察值的随机误差,这是一个随机变量。
在上述线性模型中,自变量 X 是个非随机变量,对于 X 的第 i 个观察值
N m
t
在式(1)左右均乘以 N 则有: N × R = N × abc (3) 令Y = N × R,K = N × a,式(3)可改写为: Y = Kbc
t t t
(4)
重新对(4)的字母取序号,改写为Y = Kab
其中 Y 则表示随时间 t 发现的软件缺陷总数,K 是当 t→∞时的可能发现的软件缺陷总数, 即软件中所含的缺陷总数。 Ka 是当 t→0 时发现的软件缺陷数, b 表示发现缺陷的增长速度, b 值越小,增长速度越快,b 值越大,增长的速度越慢。 2 回归分析方法的基本思想 回归分析是从一组样本数据出发, 定量地给出变量之间的变化规律, 它不仅能提供变量 相关关系的经验公式(回归方程) ,而且可以判明所建立的回归方程的有效性。描述 y 的平 均值或期望值如何依赖于 x 的方程称为回归方程, 或称回归模型。 在回归分析中, 变量 y 称 为因变量,处在被解释的地位,变量 x 称为自变量,用于预测因变量 y 的变化。如下述的 公式所示:
表1
686 751 870 969 1069 1141 1208 1280 1310 1343 1371 1412 1437 1470 1494 1554 1591 1650
688.3 783.9 878.3 970.3 1058.7 1142.7 1221.6 1288.1 1323.1 1356.7 1388.9 1419.7 1449.2 1477.3 1504.1 1529.6 1572.4 1607.2
x i ,Y 的观察值
yi 是由两个部分所组成的:b x i 和 ei ,前者是一个常数,后者是一个随机变量,所以也是一
个随机变量。 回归模型中的参数 a 与 b 在一般情况下都是未知数, 必须根据样本数据(
x i ,yi )来估计。
确定参数 a 与 b 值的原则是要使得样本的回归直线同观察值的拟合状态最好,即要使得偏差 最小。为此,可以采用“最小二乘法”的办法来解决。 回归方程建立以后还需要检验变量之间是否确实存在线性相关关系, 对一元线性回归模 型的统计检验包括两个内容: 一是线性回归方程的显著性检验, 二是对回归系数进行统计推 断。 包含一个 x 的方程称为一元回归方程,包含多个 x 的方程称为多元回归方程。 3 基于 Gompertz 与回归分析的工程化方法 (1) 基于组织内部多个项目的历史数据,对测试过程进行回归分析建模; (2) 基于本项目的测试过程,对测试趋势进行 Gompertz 建模;通过目前的测试情况,预 测 K,a,b 的值,手工计算比较复杂,可以采用工具“1stOpt” ,编写简单的程序, 即可模拟出 K,a,b 的值 在该工具中写入的程序脚本为: Title“Gompertz 模型参数拟合” ; //Parameters; //-K 为植入的总缺陷数 Parameter K [0,10000]; Parameter a [0,1]; Parameter b [0,1]; //Variable; Variable x,y; //Function; Function y=K*a^(b^x) ; //Data ; (3) 基于回归分析模型进行预测缺陷值; (4) 基于 Gompertz 进行快速上升的拐点预测和剩余测试工作量或轮次的预测, 可以采用
81.00 65.00 119.00 99.00 100.00 72.00 67.00 72.00 30.00 33.00 28.00 41.00 25.00 33.00 24.00 60.00 37.00 59.00
35.00 40.00 45.00 50.00 55.00 60.00 65.00 69.50 72.00 74.50 77.00 79.50 82.00 84.50 87.00 89.50 94.00 98.00
0 引言 质量、进度和成本是软件项目关注的三大要素,三者互相制约,互相依赖。确保软件产 品质量的主要方法是同行评审和测试, 而测试的工作量通常远远大于同行的评审投入, 是最 重要的质量成本投入。 产品究竟要测试到什么程度才可以交付, 还需要投入多少测试资源才 能达到质量目标, 如何根据目前的缺陷发现趋势预测产品质量的好坏, 是很多软件开发企业 关注的问题。笔者在实践的过程中,结合 CMMI 高成熟度的要求、回归分析技术、软件可靠 性增长模型进行了有益的尝试,总结了一套基于 Gompertz 模型与软件回归分析方法预测、 控制测试质量的方法,可以根据当前测试的已有数据,进行产品的质量、需要的测试资源和 交付日期的预测, 并通过建立的测试投入与缺陷密度的回归方程结合使用, 判断质量的好坏 或投入是否存在问题。 1 可靠性增长模型的基本思想 Virene(1968)首次使用 Gompertz 曲线来描述可靠性增长的规律。Gompertz 曲线的特
两种预测方法: a) 顺推预测还需要的测试次数是用最后三次测试出的缺陷的平均数作为后续 每次测试发现的缺陷的个数作为分母, 然后用剩余应发现的缺陷个数除以之 b) 逆推预测还需要的测试次数是用目标缺陷数作为 K,逆推出 t,然后减去已 经做过的测试次数来计算的 (5) 回归方程和 Gompertz 模型预测结果的对比分析,可以有如下结论: 测试 预测区间内 在区间上 充分 在区间下 预测区间内 不充分 在区间上 在区间下 (6) 测试的决策 通过(5)章节的结论,项目可以制定措施。 4 应用案例 4.1 应用一: 某项目执行测试过程中,对于交付到下一阶段的质量要求是,缺陷遗留率为 5%,需要 根据当前的测试情况,预测在本阶段应发现多少缺陷,遗留多少缺陷,预计还需要测试的次 数,需要投入的测试工作量,统计数据如表 1 所示: 预测值是后面带入 K,a,b 的预测值 原始数据 测试投入 工作量 5.00 5.00 5.00 5.00 5.00 5.00 本次测试发现 的缺陷数 139.00 96.00 122.00 104.00 84.00 60.00 累计值 累积测试投 入工作量或 测试顺序号 5.00 10.00 15.00 20.00 25.00 30.00 累积发现缺 陷数 139 235 357 461 545 605 预测值 累积发现缺 陷数预测值 192.2 256.7 330.5 412.5 500.7 593.3 K 正常 质量差 测试好 质量好 测试差 需要分析 质量差 需要分析 结论
基于 Gompertz 模型与回归分析模型控制测试质量的工程化 方法
陈敏华,苏张吉,赖晓健
浙江中控技术股份有限公司,浙江杭州,310053 摘 要:如何量化软件测试的过程,在 CMMI 模型中,除了建立过程性能模型和基线,还可以 引入可靠性增长的模型对软件测试过程产品的质量的进行预测,本文采用 Gompertz 模型实 现了对软件测试过程的投入进行预测,以及产品的质量进行预测的方法。 关键字:Gompertz 模型、量化管理、软件测试
20.00
25.00
30.00
累积发现缺陷数预测值
对于表格中的字段说明: 1. K 为缺陷个数的上限,Ka 为测试启动时首次发现的缺陷个数的拟合值,b 表征了曲线 到达顶峰的速度 2. 顺推预测还需要的测试次数是用最后三次测试出的缺陷的平均数作为后续每次测试 发现的缺陷的个数作为分母,然后用剩余应发现的缺陷个数除以之 3. 逆推预测还需要的测试次数是用目标缺陷数作为 K,逆推出 t,然后减去已经做过的 测试次数来计算的 4. 预测还需要的投入工作量时用最后三次测试的工作量的平均数作为参考值 5. 遗留缺陷率目标:自行设置的目标 6. 缺陷快速上升的拐点 t 值:将 K,a,b 值带入Y = K������������ ,计算出 t 7. 缺陷快速上升的拐点 y 值:K/E 8. 应发现的缺陷数:K*(1-遗留缺陷率目标) 9. 应遗留的缺陷数:K*遗留缺陷率 10. 距离目标缺陷数差距:应发现的缺陷数-已发现的累积缺陷数 从表 2 中,可以得到各种需要的预测值。 4.2 应用二: 回归模型与 Gompertz 模型结合共同来预测产品质量好坏或测试过程质量好坏,示例: 某组织建立了通过千行测试投入预测缺陷密度的回归模型, 该回归模型具备如下两个特 点: 1) 回归模型可以预测在一定的测试投入下缺陷密度的预测区间 2) 曲线回归模型,可以通过找到测试充分的分水岭值,即 8 人天/千行 通过回归上述的两个特点,可以考虑在测试充分和不充分的应用 场景一:测试不充分情况下:
//直接在下面填上要拟合的数据点(xi yi),如下面的例子: 将“累计测试的工作量”与“累计发现的缺陷数”两列拷贝到 1stopt 中,计算出 K,a,b 设计表格如表 2 所示:
表2
得到拟合曲线,如图 1 所示
Gompertz模型缺陷预测
2000.0 1500.0 1000.0 500.0 0.0 0.00 5.00 10.00 15.00
点是开始增长较慢, 然后逐渐加快, 到某点以后增长速度又减慢, 曲线会趋近一条渐近线 (K 值) ,但不会超过,曲线的变化是逐渐的、平滑的,而不是骤然的。在软件测试过程中,最 开始的时候,会呈现缺陷增长较快的趋势状态,随着测试的进行,软件测试的隐藏加深,测 试难度加大,需要执行较多的测试用例才能发现一个缺陷,虽然继续投入测试,仍然会持续 发现缺陷,但是明显缺陷的增长速度会减缓,同时软件中隐藏的缺陷是有限的,因而限制了 发现缺陷数的无限增长。 这种软件测试中发现缺陷的趋势符合可靠性增长的规律, 因而采用 Gompertz 应用于软件产品质量的预测领域。 Gompertz 模型的原始表达式如(1)所示 R = abc (1) 其中 R 是随时间 T 的可靠度,R 是百分数,0<R≤100%;a 是当 t→∞时的可靠度的上限。 ab 是当 t→0 时的起始可靠度。c 表示增长的速度。 在软件测试中,通常关注的是测试的缺陷个数,对上述 Gompertz 的公式做如下修正: 假设软件产品中,隐藏的软件缺陷总数是 N,通过测试发现的缺陷数为 m。当发现的缺陷数 越多,则表示软件的可靠度越高,即软件的可靠度就可以表示为(2)所示 R = (2)
Gompertz model prediction in the software testing process applications
Chenminhua,Suzhangji,Laixiaojian
Zhejiang SUPCON Co.,Ltd.,Hangzhou,Zhejiang,310053 Abstract:In the CMMI model, establishing the model and baseline of performance can quantify the software testing process. In addition, a model of software reliability growth testing process also can predict the quality of the product. This article introduce the mothod of using Gompertz model to predict the software testing process inputs and product quality. KeyWords:Gompertz Model、Quantitatively Manage、Software test
Fra Baidu bibliotek时间
第1周 第2周 第3周 第4周 第5周 第6周
第7周 第8周 第9周 第 10 周 第 11 周 第 12 周 第 13 周 第 14 周 第 15 周 第 16 周 第 17 周 第 18 周 第 19 周 第 20 周 第 21 周 第 22 周 第 23 周 第 24 周
5.00 5.00 5.00 5.00 5.00 5.00 5.00 4.50 2.50 2.50 2.50 2.50 2.50 2.50 2.50 2.50 4.50 4.00
yi = a + b x i + ei i 1,2,, n
其中:
yi 是因变量 Y 的第 i 个观察值,
x i 是自变量 X 的第 i 个观察值
a 与 b 是回归系数,
n 是样本容量,
ei 为对应于 Y 的第 i 个观察值的随机误差,这是一个随机变量。
在上述线性模型中,自变量 X 是个非随机变量,对于 X 的第 i 个观察值
N m
t
在式(1)左右均乘以 N 则有: N × R = N × abc (3) 令Y = N × R,K = N × a,式(3)可改写为: Y = Kbc
t t t
(4)
重新对(4)的字母取序号,改写为Y = Kab
其中 Y 则表示随时间 t 发现的软件缺陷总数,K 是当 t→∞时的可能发现的软件缺陷总数, 即软件中所含的缺陷总数。 Ka 是当 t→0 时发现的软件缺陷数, b 表示发现缺陷的增长速度, b 值越小,增长速度越快,b 值越大,增长的速度越慢。 2 回归分析方法的基本思想 回归分析是从一组样本数据出发, 定量地给出变量之间的变化规律, 它不仅能提供变量 相关关系的经验公式(回归方程) ,而且可以判明所建立的回归方程的有效性。描述 y 的平 均值或期望值如何依赖于 x 的方程称为回归方程, 或称回归模型。 在回归分析中, 变量 y 称 为因变量,处在被解释的地位,变量 x 称为自变量,用于预测因变量 y 的变化。如下述的 公式所示:
表1
686 751 870 969 1069 1141 1208 1280 1310 1343 1371 1412 1437 1470 1494 1554 1591 1650
688.3 783.9 878.3 970.3 1058.7 1142.7 1221.6 1288.1 1323.1 1356.7 1388.9 1419.7 1449.2 1477.3 1504.1 1529.6 1572.4 1607.2
x i ,Y 的观察值
yi 是由两个部分所组成的:b x i 和 ei ,前者是一个常数,后者是一个随机变量,所以也是一
个随机变量。 回归模型中的参数 a 与 b 在一般情况下都是未知数, 必须根据样本数据(
x i ,yi )来估计。
确定参数 a 与 b 值的原则是要使得样本的回归直线同观察值的拟合状态最好,即要使得偏差 最小。为此,可以采用“最小二乘法”的办法来解决。 回归方程建立以后还需要检验变量之间是否确实存在线性相关关系, 对一元线性回归模 型的统计检验包括两个内容: 一是线性回归方程的显著性检验, 二是对回归系数进行统计推 断。 包含一个 x 的方程称为一元回归方程,包含多个 x 的方程称为多元回归方程。 3 基于 Gompertz 与回归分析的工程化方法 (1) 基于组织内部多个项目的历史数据,对测试过程进行回归分析建模; (2) 基于本项目的测试过程,对测试趋势进行 Gompertz 建模;通过目前的测试情况,预 测 K,a,b 的值,手工计算比较复杂,可以采用工具“1stOpt” ,编写简单的程序, 即可模拟出 K,a,b 的值 在该工具中写入的程序脚本为: Title“Gompertz 模型参数拟合” ; //Parameters; //-K 为植入的总缺陷数 Parameter K [0,10000]; Parameter a [0,1]; Parameter b [0,1]; //Variable; Variable x,y; //Function; Function y=K*a^(b^x) ; //Data ; (3) 基于回归分析模型进行预测缺陷值; (4) 基于 Gompertz 进行快速上升的拐点预测和剩余测试工作量或轮次的预测, 可以采用
81.00 65.00 119.00 99.00 100.00 72.00 67.00 72.00 30.00 33.00 28.00 41.00 25.00 33.00 24.00 60.00 37.00 59.00
35.00 40.00 45.00 50.00 55.00 60.00 65.00 69.50 72.00 74.50 77.00 79.50 82.00 84.50 87.00 89.50 94.00 98.00
0 引言 质量、进度和成本是软件项目关注的三大要素,三者互相制约,互相依赖。确保软件产 品质量的主要方法是同行评审和测试, 而测试的工作量通常远远大于同行的评审投入, 是最 重要的质量成本投入。 产品究竟要测试到什么程度才可以交付, 还需要投入多少测试资源才 能达到质量目标, 如何根据目前的缺陷发现趋势预测产品质量的好坏, 是很多软件开发企业 关注的问题。笔者在实践的过程中,结合 CMMI 高成熟度的要求、回归分析技术、软件可靠 性增长模型进行了有益的尝试,总结了一套基于 Gompertz 模型与软件回归分析方法预测、 控制测试质量的方法,可以根据当前测试的已有数据,进行产品的质量、需要的测试资源和 交付日期的预测, 并通过建立的测试投入与缺陷密度的回归方程结合使用, 判断质量的好坏 或投入是否存在问题。 1 可靠性增长模型的基本思想 Virene(1968)首次使用 Gompertz 曲线来描述可靠性增长的规律。Gompertz 曲线的特
两种预测方法: a) 顺推预测还需要的测试次数是用最后三次测试出的缺陷的平均数作为后续 每次测试发现的缺陷的个数作为分母, 然后用剩余应发现的缺陷个数除以之 b) 逆推预测还需要的测试次数是用目标缺陷数作为 K,逆推出 t,然后减去已 经做过的测试次数来计算的 (5) 回归方程和 Gompertz 模型预测结果的对比分析,可以有如下结论: 测试 预测区间内 在区间上 充分 在区间下 预测区间内 不充分 在区间上 在区间下 (6) 测试的决策 通过(5)章节的结论,项目可以制定措施。 4 应用案例 4.1 应用一: 某项目执行测试过程中,对于交付到下一阶段的质量要求是,缺陷遗留率为 5%,需要 根据当前的测试情况,预测在本阶段应发现多少缺陷,遗留多少缺陷,预计还需要测试的次 数,需要投入的测试工作量,统计数据如表 1 所示: 预测值是后面带入 K,a,b 的预测值 原始数据 测试投入 工作量 5.00 5.00 5.00 5.00 5.00 5.00 本次测试发现 的缺陷数 139.00 96.00 122.00 104.00 84.00 60.00 累计值 累积测试投 入工作量或 测试顺序号 5.00 10.00 15.00 20.00 25.00 30.00 累积发现缺 陷数 139 235 357 461 545 605 预测值 累积发现缺 陷数预测值 192.2 256.7 330.5 412.5 500.7 593.3 K 正常 质量差 测试好 质量好 测试差 需要分析 质量差 需要分析 结论
基于 Gompertz 模型与回归分析模型控制测试质量的工程化 方法
陈敏华,苏张吉,赖晓健
浙江中控技术股份有限公司,浙江杭州,310053 摘 要:如何量化软件测试的过程,在 CMMI 模型中,除了建立过程性能模型和基线,还可以 引入可靠性增长的模型对软件测试过程产品的质量的进行预测,本文采用 Gompertz 模型实 现了对软件测试过程的投入进行预测,以及产品的质量进行预测的方法。 关键字:Gompertz 模型、量化管理、软件测试