本文中考虑的软件测试过程专指第三方的软件测试过程,即在测试的过程中,不涉及开发人员的修复过程。
度量和分析的目的是开发和维持一个用于支持项目信息需要的度量能力。通过对项目的度量,一方面可以逐渐丰富和完善公司的度量财富库,从而为项目经理进行项目工作量、进度等的预估时提供可靠的参考依据;另一方面,通过度量分析,项目经理可以有效的对项目情况进行监控,当度量分析报告中提供的结果超过了一定的阈值时,项目经理就应该采取相应的措施,也就是说度量分析有利于项目经理做出正确的管理和技术决策以及采取适当的纠正活动。
从软件生存周期模型中来看,人们常常直观的认为软件测试仅仅是软件生存周期中软件编码完成之后的一个或几个阶段。而实际上,软件测试本身也是一个过程,它可以进一步具体的分成若干个阶段性活动,如:测试计划、测试设计、测试执行、测试总结。对测试过程的度量必须涉及到测试过程中的各个阶段的度量,包括规模、工作量、进度、缺陷等等。下面着重介绍下测试设计和测试执行阶段与效率和质量相关的度量。
(1)测试设计
软件测试设计阶段主要工作是测试用例的设计与开发,在这个阶段可度量项包括:
● 用例生产率
用例生产率 = 测试用例个数(个数)/ 设计用例的时间(小时)。
在项目组中度量时,既可以得到每个项目组成员的用例生产率,从而来衡量其生产率;也可以得到项目组的用例生产率,与公司的度量财富库中的用例生产率进行比较,可得到自己项目组的整体水平。
● 用例质量
在用例写完进入测试执行阶段之前或是写用例的过程中,都会有对用例进行评审的过程,用例质量可以通过评审中发现的问题来评价。用例质量 = 评审问题个数 / 用例个数。
(2)测试执行
软件测试执行阶段,是在准备好的测试环境上依次执行各测试用例并详细记录每一步测试结果,提交缺陷记录的过程。在这个阶段可度量项包括:
● 用例执行率
用例执行率 = 执行的用例个数 / 执行测试的时间。通过这个派生度量即可以得到项目组每个成员的用例执行率,同样也可以得到项目组的平均用例执行率。
● 用例有效率
用例有效性 = 发现的缺陷个数 / 用例个数。用例有效性的可比性在项目之间不是很大,因为各个软件项目质量的好坏会直接影响到用例的有效性,若项目质量较好,则同样的用例个数发现的缺陷较少,若项目质量较差,则同样的用例个数发现的缺陷较多,但若在同一个项目中进行比较,还是有一定的可比性可言的。
● 缺陷发现率
缺陷发现率 = 缺陷个数 / 执行测试的时间。前面提到用例执行率可以看出项目组成员的工作效率,但并不能保证其质量,通过项目组成员各自发现的缺陷个数除以各自所花的时间,通过缺陷发现率这个指标来关注项目组成员的工作质量。
● 缺陷等级分布
对项目组发现的缺陷,按缺陷等级进行分类统计,得到系统的各个等级的缺陷分布情况。
● 模块缺陷率
模块缺陷率 = 该模块发现的缺陷个数 / 该模块的用例个数。这样可以得到它与其他模块的横向比较。