一、软件测试成本构成
GB/T 32911-2016提出的《软件测试成本度量规范》中规定了软件测试成本度量,以满足软件产业发展对测试成本度量的需求。讲软件成本分为直接成本和间接成本。
1、直接成本
(1)概念
-
是为了完成软件测试项目所支出的人工资源和工具资源的总和。
(2)直接成本分
-
测试人工成本:软件测试过程中进行评审时的人工成本。主要包含:产品说明评审、用户文档评审、软件测试评审。
-
测试环境成本:要实现测试,要去搭建基于测试的环境的人工成本。
-
测试工具成本:测试用到的硬件和软件属于工具成本。工具成本一般可以按照折旧、或者提供租赁的服务费来进行计算。
2、间接成本
(1)概念
-
是指服务于软件测试项目的管理的组织成本。
-
这种能够成本可能会跨越、超过测试周期。
(2)间接成本的分类因子
-
办公成本:场地、会议、交通、印刷等都属于办公成本。
-
管理成本:组织管理成本、测试文档管理成本、做测试计划的管理成本、测试过程控制的管理成本等。
3、注意
-
进行成本计算时,计算间接成本时,会按照直接成本的比例进行计算。
-
一般间接成本不超过直接成本的20%。
二、软件测试成本调整因子
软件测试成本调整因子在不同的测试环境下,对测试成本的影响会不一样。考虑直接成本时,首先应该将对成本造成影响的因子列出来,然后在估算出来的、未经调整的工作量的基础上再去加以调整因子的影响,然后才会形成直接成本出来。
1、软件复杂度
-
主要是从软件的规模、难度和结构等方面,来进行度量。
-
一般根据软件是否符合几个固定的特性来度量这个软件的复杂程度。几个固定的特性:是否存在大量的控制和安全措施、系统规模比较大、子规模比较多而且相互之间有影响、是否需要与其他系统对接使用、语言是否是母语、是否存在大量逻辑处理或者处理逻辑比较复杂、是否存在大量的数学处理、算法是否比较复杂等。
-
软件复杂程等级是 中、高、低。如果软件 不符合上面特性中的任何一个,那么软件复杂度定义为 低,复杂因子为 1.0; 符合特性中的 一个,那么软件复杂度定义为 中,复杂因子范围为 1.1~1.2;如果软件 符合特行证的 2个或2个以上,那么软件复杂度定义为 高,复杂因子范围为 1.3~1.5。
-
复杂软件的测试成本高于简单软件的测试成本。
2、软件完整性
-
依据GB/T 18492-2001,给出了软件完整性级别调整因子,一般与系统的风险等级有关系,系统面临的风险等级越高,软件完整性因子就会越大。
-
系统风险等级的评估,可以参考国家标准, 系统风险等级一般分为高、中、低、微小四个等级。 系统风险性高,软件完整性定义为A,软件完整性因子在1.6~1.8;系统风险性中,软件完整性定义为B,完整性因子范围是1.3~1.5;系统风险性低,软件完整性定义为C,完整性因子范围是1.1~1.2;系统风险性微小,软件完整性定义为D,完整性因子范围是1.0;
-
A级完整度的软件测试成本高于D级软件测试的成本。
3、测试风险度
-
软件测试过程中会存在一些风险,依据这些风险测度对测试风险度评级。例如所测软件所属领域有一些特殊的要求(高风险)、需求不明确(中风险)、被测软件与相关文档之间存在不一致(中风险),测试过程中测试方法与开发方因沟通问题而导致不可预期的风险等都属于测试风险(中风险)。
-
测试风险度的等级为: 高、中、低。测试过程中不包含上面任意一个风险时,测试风险定义为 低,风险度因子为 1.0。测试过程中 出现上面 中风险 中的 一个,测试风险度定义为 中,风险度因子范围是 1.1~1.2;测试过程中 出现上面高风险 、或中级风险中的任意两个,测试风险度定义为 高,风险度因子范围为 1.3~1.5。
4、回归测试
-
程序测试后发现问题,返回给开发人员修改,然后测试人员验证问题是否修改,是否需改出新的问题。
-
一般在回归测试因子范围是 0.6~0.8。
-
1个问题回归验证2次,计算时是1+2*0.6。
5、加急测试
-
主要看加急的程度,判断加急因子的取值。
-
加急因子一般是在 1.2~3.0之间。
6、现场测试
-
必须到特定测试场合中进行测试,到现场测试就会导致成本的增加。
-
现场测试因子取值范围是 1.0~1.3之间,
7、评测机构资质
-
评测机构所获得的国家、行业、地方授权的资质情况。资质全品牌好的评测机构,评测机构因子就高。
-
评测机构资质因子取值范围是 1.0~1.2之间。
三、软件测试工作量及成本估算
1、软件测试成本度量的实施步骤
(1)第一步
-
根据项目情况、项目的目标,去做好估算前期的准备工作。
-
例如:要确定项目测试范围、需要进行评审的文档(产品说明、软件测试、用户文档)等。
(2)第二步
-
根据确定好的项目范围及手机好的资料,估算未调整的软件测试工作量。
-
未经调整的人工工作量=用户文档评审工作量+未调整的软件测试人工工作量+产品说明评审工作量。
(3)第三步
-
根据文档审查和项目的情况确认各个调整因子的范围,然后再根据调整因子对软件测试人工工作量进行调整,就得到了最后的人工成本。
-
环境成本:一般大概采用的是人工成本的20%。环境成本=最终人工成本*20%。
-
工具成本:工具成本一般可以按照折旧、或者提供租赁的服务费进行计算。
-
直接成本=人工成本+环境成本+工具成本。
(4)第四步
-
在一般的场景下计算间接成本,是采用最多不超过直接成本的20%进行计算的。
-
间接成本=直接成本*20%。
-
所以箭头是直接成本指向间接成本。
(5)第五步
-
软件测试总成本=直接成本+间接成本。
2、软件测试成本度量
(1)人工成本工作量计算:UW=TW+SR+DR
-
UW:未经调整的人工工作量
-
TW:软件测试评审工作量
-
SR:产品说明评审工作量
-
DR:用户文档集评审工作量
(2)软件测试的调整因子:DF=C*I*R*U*X*A*(1+n*Tr)
-
C:复杂度因子
-
I:完整度因子
-
R:测试风险度因子
-
Tr:回归测试因子
-
U:加急测试因子
-
X:现场测试因子
-
A:评测机构资质因子
(3)测试人工成本:LC=UW*DF*S
-
LC:测试人工成本
-
调整后的工作量=未经调整的工作量UW*调整因子*
-
测试人工成本=调整后的工作量*每人日的成本
(4)测试工具成本:IC=OT+RT
-
测试工具成本=自有工具的费用+租赁工具成本。
-
OT:自有工具的费用。例如一个工具用5年,我们项目只用半年,那么就需把买工具的钱平均到每一天,然后乘以半年的时间,就是自有工具的费用。
-
RT:租赁工具的租赁费。
(5)测试直接成本:DC=LC+EC+IC
-
直接成本=人工成本+环境成本(人工成本的20%)+工具成本
(6)测试间接成本:不宜超过个DC的20%
-
间接成本=最多不能超过直接成本的20%。
(7)测试成本:STC=DC+IDC
-
测试总成本=直接成本+间接成本。
四、软件测试成本估算示例
1、软件测试成本的各项成本及各因子 系数示例
2、软件测试的人工成本工作量计算
-
UW=TW+SR+DR
-
UW=10+1+2=13(人日)
3、软件测试成本调整因子
-
DF=C*I*R*U*X*A*(1+n*Tr)
-
DF=1.0*1.0*1.0*1.0*1.0*1.0*(1+0.6)
4、测试人工成本计算
-
LC=UW*DF*S
-
LC=13*1.6*1000=20800(元)
5、测试工具成本计算
-
OT=(1000000/5+1000000*20%)/200*5=10000(元)
6、无租借设备
-
RT=0(元)
7、总的测试工具成本
-
IC=OT+RT
-
IC=10000+0=10000(元)
8、软件测试直接成本计算
-
DC=LC+EC+IC
-
DC=20800+20800*20%+10000=34960(元)
9、软件测试成本
-
STC=DC+IDC
-
STC=349600+349600*20%=41952(元)