软件测试管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 度量和测度

学习目标

(K2)描述和比较与测试相关的度量标准。

(K3)通过测量测试对象和测试过程来监控测试活动。

术语

度量(Metric):测量所使用的方法或者度量刻度(Measurement Scale)。

测度(Measurement):给实体赋予一个数值或类别以描述某个属性的过程。

测试过程中,经常会碰到一些需要通过测度来解决的问题,例如:项目经理希望知道测试是否能够按时完成、版本质量如何、是否能够按时发布;测试经理在制定测试计划的时候如何保证计划的准确性等。这些问题都需要通过测度才能够比较准确地给出答案,避免由于“拍脑袋”而导致决策错误目前国内对Measurement和Metrics的翻译比较混乱,本文中对这两个词汇的翻译来自ISTQB的中文术语表,详细的术语定义可以参考 CSTQB 的官方网站 www.cstqb.cn。读者在阅读过程中应该将重点放在对内容的理解上,避免在术语翻译上过多的纠结。

进行测度会碰到很多问题。由于测度需要占用一定的项目资源,因此,可能会遭到项目经理和开发经理的抵制;同时由于测度在很大程度上把产品开发和测试的过程从“黑盒”转换成“白盒”,由于担心度量数据被不正确地使用,测度也会遭到开发人员和测试人员的抵制,使得度量数据收集比较困难,有时候会发现度量数据和实际工作存在较大偏差。这些其实是测度的一些误区。在测试过程中,测度有助于了解项目当前的状态,为指导后面的活动提供基础。“You cannot predict nor control what you cannot measureN. Fenton and S. Pfleeger,Software Metrics(2nd ed.), PWS Publishing,1997。”这句话很精辟地说明了测度的重要意义,想要对测试活动乃至项目活动进行控制的话,就必须进行测度。测度作为软件开发生命周期的一个重要工具,只要项目成员齐心协力,就完全能够达到共赢的结果。

测度主要包括下面三个方面的活动:

● 度量的定义:定义一组限定的有用度量。对这些定义的度量的解释必须得到利益相关者的认可,避免将来使用这些度量时产生争议。度量可以根据过程、任务的目标、面向系统组件、个人或团队进行定义。在实际测试过程中经常存在定义了过多的度量,而忽略了那些最重要的度量的情况。

● 度量的追踪:尽可能把度量报告和集成的工作自动化,以减少生成原始度量数据所用的时间。某些特定的度量数据可能会随着时间的变化带来其他信息,这些信息可能没有包含在度量的定义中。

● 度量的报告:目的是从管理角度迅速理解所获得的信息。度量报告应提供一个对某段时间度量的“快照”或对度量随时间变化的评估,并能进行趋势分析。

在选择度量的时候,通常会考虑下面的一些因素:

● 计划的进度、测试覆盖率及其随时间的演变。

● 需求及其变更,以及它们对一系列进度、资源和任务等的影响。

● 工作量和资源使用情况及其随时间的变化。

● 里程碑和范围及其随时间的变化。

● 完成任务所需的实际和所计划的成本。

● 风险及减轻风险的措施,及其随时间的演变。

● 已发现的缺陷、已修复的缺陷及修复缺陷所需的时间。

☆示例:Practical Software and Systems Measurement

PSM(Practical Software and Systems Measurement)更多关于PSM的信息,请查阅PSM的官方网站:http://www.psmsc.com。是由美国国防部和陆军赞助,用来解决软件和系统在技术和管理方面的挑战。PSM是根据美国政府、国防部和企业界实际的度量经验发展而成的,它认为度量是一个弹性的过程,而不是预先定义好的一系列的图标和报告,它把度量需求集成到软件和系统供应商的过程中。PSM定义了一个信息驱动的分析方法,它可以帮助项目经理在软件和系统方面做出正确的决策。PSM对项目面临的一些问题进行分类,针对每个问题分类给出度量的分类和具体的度量指标。PSM将整个度量指标分为七类。

● 时间表和进度(Schedule and Progress)。

● 资源和成本(Resource and Costs)。

● 产品规模和稳定性(Product Size and Stability)。

● 产品质量(Product Quality)。

● 过程绩效(Process Performance)。

● 技术有效性(Technology Effectiveness)。

● 客户满意度(Customer Satisfaction)。