本章节主要讲解“软件测试的功能点”的内容,之前我们介绍的是通过代码行的方式来度量缺陷,除了这种方式外,另外一种度量方式是通过功能点的方式来度量,这两种方式都是通过缺陷密度来表达系统出错的可能性。在近些年通过功能点来度量的方式越来越被人接受,可以从两个方面来度量:开发工程师的工作效率(如每人每年开发了多少功能点)和系统质量(如平均每个功能点所发现的缺陷数)。
一个功能是指一个可执行语句的集合,这些语句是用来执行某项工作任务的,其包括参数、本地变量和声明语句。使用功能点度量开发工程师工作效率时,只关注功能点的多少,而不需要关注代码行数。使用功能点度量缺陷,即关注每个功能点的缺陷分布情况,如果单位功能点缺陷率比较低,那么通常说明产品的质量比较高,即使这个时候KLOC 缺陷率比较高,但是如果一个功能点其实现的代码数很少,这样使用功能点去度量就可能会变得很困难。
功能度量最好是在IBM公司开始使用,但由于当时的技术并不能很好地对功能进行准确的度量,所以使用功能进行度量时出现一个失误的地方。使用功能点解决了生产率和代码行数的问题,因为在统计代码行时,有很多不确定的因素,特别是不同的语言其统计的结果可能差异比较大。在我们定义一个应用时,应该从五个方面来加权评估:
(1)如果是外部输入(如交易类型功能),权重为4。
(2)如果是外部输出(如报告类型),权重为5。
(3)内部逻辑文件,权重为10。
(4)外部接口文件,权重为7。
(5)外部查询数,权重为4。
上面是平均加权的方式,还一种是低复杂度和高复杂度的加权,具体如下:
(1)如果是外部输入(如交易类型功能),低复杂度权重为3,高复杂度权重为6。
(2)如果是外部输出(如报告类型),低复杂度权重为4,高复杂度权重为7。
(3)内部逻辑文件,低复杂度权重为7,高复杂度权重为15。
(4)外部接口文件,低复杂度权重为5,高复杂度权重为10。
(5)外部查询数,低复杂度权重为3,高复杂度权重为6。
组件复杂度的确定也是很难的,在确定这些组件复杂度时,需要有一些标准的准则。
例如:如果数据元素的类型超过20种,涉及的文件类型超过2个,这种情况复杂度为高;如果数据元素的类型少于5种,涉及的文件类型超过2个或3个,这种情况复杂度为低。
功能点总数的公式如下:
w是从5 个方面和复杂度的高、中、低三个方面进行加权的加权因子, ij x 表示应用程序中组件的数量。
接下来是确定0~5 的范围,它受系统的以下14 个特性影响:
数据通信;
函数分布;
性能;
使用配置;
交易率;
联机数据输入;
终端用户使用效率;
在线更新;
复杂的过程;
可重用性;
安装的易用性;
操作的易用性;
多站点访问;
改变的方便性。
这些特性的权值范围是0~5,通过下面的公式可以对特性的因子进行调整,具体的公式如下:
这些特性的权值范围是0~5,通过下面的公式可以对特性的因子进行调整,具体的公式如下:
综合上面的功能点和权重因子,最后功能点的公式如下:
从CMM(能力成熟度模型)的角度来看,CMM 级别与功能缺陷率的关系见表9-15。
表9-15 CMM 级别与缺陷率的关系
本章节关于“软件测试的功能点”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。