1.4 度量和测度
学习目标
(K2)描述和比较与测试相关的度量标准。
(K3)通过测量测试对象和测试过程来监控测试活动。
术语
度量(Metric):测量所使用的方法或者度量刻度(Measurement Scale)。
测度(Measurement):给实体赋予一个数值或类别以描述某个属性的过程。
测试过程中,经常会碰到一些需要通过测度来解决的问题,例如:项目经理希望知道测试是否能够按时完成、版本质量如何、是否能够按时发布;测试经理在制定测试计划的时候如何保证计划的准确性等。这些问题都需要通过测度才能够比较准确地给出答案,避免由于“拍脑袋”而导致决策错误。
进行测度会碰到很多问题。由于测度需要占用一定的项目资源,因此,可能会遭到项目经理和开发经理的抵制;同时由于测度在很大程度上把产品开发和测试的过程从“黑盒”转换成“白盒”,由于担心度量数据被不正确地使用,测度也会遭到开发人员和测试人员的抵制,使得度量数据收集比较困难,有时候会发现度量数据和实际工作存在较大偏差。这些其实是测度的一些误区。在测试过程中,测度有助于了解项目当前的状态,为指导后面的活动提供基础。“You cannot predict nor control what you cannot measure”这句话很精辟地说明了测度的重要意义,想要对测试活动乃至项目活动进行控制的话,就必须进行测度。测度作为软件开发生命周期的一个重要工具,只要项目成员齐心协力,就完全能够达到共赢的结果。
测度主要包括下面三个方面的活动:
● 度量的定义:定义一组限定的有用度量。对这些定义的度量的解释必须得到利益相关者的认可,避免将来使用这些度量时产生争议。度量可以根据过程、任务的目标、面向系统组件、个人或团队进行定义。在实际测试过程中经常存在定义了过多的度量,而忽略了那些最重要的度量的情况。
● 度量的追踪:尽可能把度量报告和集成的工作自动化,以减少生成原始度量数据所用的时间。某些特定的度量数据可能会随着时间的变化带来其他信息,这些信息可能没有包含在度量的定义中。
● 度量的报告:目的是从管理角度迅速理解所获得的信息。度量报告应提供一个对某段时间度量的“快照”或对度量随时间变化的评估,并能进行趋势分析。
在选择度量的时候,通常会考虑下面的一些因素:
● 计划的进度、测试覆盖率及其随时间的演变。
● 需求及其变更,以及它们对一系列进度、资源和任务等的影响。
● 工作量和资源使用情况及其随时间的变化。
● 里程碑和范围及其随时间的变化。
● 完成任务所需的实际和所计划的成本。
● 风险及减轻风险的措施,及其随时间的演变。
● 已发现的缺陷、已修复的缺陷及修复缺陷所需的时间。
☆示例:Practical Software and Systems Measurement
PSM(Practical Software and Systems Measurement)是由美国国防部和陆军赞助,用来解决软件和系统在技术和管理方面的挑战。PSM是根据美国政府、国防部和企业界实际的度量经验发展而成的,它认为度量是一个弹性的过程,而不是预先定义好的一系列的图标和报告,它把度量需求集成到软件和系统供应商的过程中。PSM定义了一个信息驱动的分析方法,它可以帮助项目经理在软件和系统方面做出正确的决策。PSM对项目面临的一些问题进行分类,针对每个问题分类给出度量的分类和具体的度量指标。PSM将整个度量指标分为七类。
● 时间表和进度(Schedule and Progress)。
● 资源和成本(Resource and Costs)。
● 产品规模和稳定性(Product Size and Stability)。
● 产品质量(Product Quality)。
● 过程绩效(Process Performance)。
● 技术有效性(Technology Effectiveness)。
● 客户满意度(Customer Satisfaction)。