正文 长期以来,如何考核测试人员的工作是富有争论的话题, 一个理想化的方法是收集测试阶段之后项目阶段的缺陷来确定系统测试的质量。但是,这种方法的不可操作性在于:一是维护和实施阶段的缺陷难于收集;二是缺陷贯穿产品的整个使用周期,无法穷尽,难于将时间段分割开来比较;三是成本过于庞大,时间跨度过长,起不到有效激励的作用。能不能就在项目过程中寻找可以评价测试人员工作的方法呢?就这这个思路,本人摸索出一套有效的办法。 首先声明的是,第一,这套考核方发在一个功能点估算超过 10000 个的项目中经过实践,但是对于小项目而言,可能缺少足够的数据和必要性;第二,项目组内考核的成功不能意味着在测试部门内可以采用类似的考核方法,仅提供一种参考方法,部门考核可能更多考虑投入工程的工作量大小和任务分配重要性;第三,除了量化指标外,测试人员工作态度、工作能动性和技术学习意愿要通过定性分析来得到。 项目组测试人员考核主要包括工作效率和工作质量两大块,工作效率用于考察活动,而工作质量用于考察产出物质量。由于考核基于测试过程进行,因此必须在过程结束之后才能进行。当然,由于工程是分布提交测试的,每月可以根据实际情况进行月考核,工程结束后或任务结束后在统一考核。按照传统测试周期,测试过程分为:测试计划、测试设计和测试执行三个方面进行。测试计划属于测试经理的范畴,在最后讨论。测试人员主要是测试设计和测试执行,测试经理的考核可包含在测试人员的考核内,当然,这部分考核也可以纳入项目组中进行。考核指标如下: 一 测试设计 工作效率相关指标 文档产出率 这项指标值主要为测试用例文档页数除于编写文档的有效时间获得。用于考察测试人员测试用例文档的生产率大小。 公式:∑测试用例文档页数(页) / ∑编写测试用例文档有效时间(小时) 参考指标:根据项目汇总得出平均在 1.14 页 / 小时左右,高于此值为优,低于此值为差。 用例产出率 这项指标值主要为上述指标值的补充,用于考察测试人员测试用例产出率大小。测试文档页数可能包含的冗余信息较多,因此要查看文档中测试用例的多少。方法是测试用例文档中测试用例编号总和数除于编写文档的有效时间。 公式:∑测试用例数(个) / ∑编写测试用例文档有效时间(小时) 参考指标:平均 4.21 个用例 / 小时 工作质量相关指标 需求覆盖率 计算测试用例总数之和除于与之一一对应的功能点数之和,主要查看是否有功能点遗漏测试的情况。 公式:∑测试用例数(个) / ∑功能点(个) 参考指标: 100 %。如果连功能指标都不能满足 100 %覆盖,起码说明测试不充分。这个指标收集起来相当困难,如果存在需求跟踪矩阵或者测试管理工具能把用例与需求一一对应就容易得多。 注意:有的功能是难于测试的,那么未能覆盖到的需求要综合分析,明确是测试人员遗漏?还是无法测试?这需要放入问题跟踪表中进行后续跟踪;另外,有的功能点包含的信息较多或者有的用例包含几个功能点,这时只能把重复的功能点或重复用例按一个计,难于区分的要做说明。 文档质量 测试用例进行评审和同行评审发现的缺陷数,或者将此缺陷数除于文档页数算出比率。此指标考察测试人员文档编写的质量如何。 公式:∑缺陷数(评审和同行评审)(个) ∑缺陷数(评审和同行评审)(个) / ∑测试用例文档页数(页) 参考指标:由于评审是发现的缺陷数是不固定的,因此,这个指标没有可供参考的数值。如果缺陷数大小不能直接用于比较就使用缺陷 / 页方式进行横向对比。 文档有效率 使用测试用例文档进行测试时发现的系统测试缺陷数除于此文档页数。用于考察文档是由有效的指导了测试工作。 公式:∑缺陷数(系统测试)(个) / ∑测试用例文档页数(页) 参考指标:平均 2.18 个缺陷 / 页 注意:如果存在测试人员在测试时创建新文档用于辅助测试时应包含这一部分。 用例有效率 使用测试用例发现的全部缺陷除于测试用例数总和。这一指标是上一指标的补充指标,用于考察用例质量是否较高 公式:∑缺陷数(系统测试)(个) / ∑测试用例数(个) 参考指标:平均 0.59 个缺陷 / 用例,也就是说,每执行两个用例才得到 1 个缺陷,各工程有所不同,可以自己实践一下 二 测试执行 工作效率相关指标 执行效率 利用测试用例文档页数除于此次系统测试执行的时间总和(不包含用例文档编写时间)。补充指标方法是用例的个数除于此次系统测试的时间总和。用于获得工作中测试人员每小时执行测试的速度。 公式:∑测试用例文档页数(页) / ∑执行系统测试的有效时间(小时) ∑测试用例数(个) / ∑执行系统测试的有效时间(小时) 参考指标:平均 0.53 页 / 小时, 1.95 个用例 / 小时。即测试人员每小时执行半页测试用例或者每小时执行 2 个测试用例。通过横向比较,容易知道那位成员的执行效率较高。注意:执行效率高的不代表测试质量也高,甚至执行效率和测试质量成反比,所以后面工作质量的指标会补充这一部分的偏离。实际结果表明,用例执行效率高的成员,其缺陷发现率往往偏低,考核如果不将此纳入进来也可以将其作为测试改进的一项重要数据进行收集。 进度偏离度 检查计划时间和实际时间的进度,方法是计划时间差额减去实际时间差额除于实际工时总和,用于考察测试人员进度情况,监控测试是否按照日程进行,是否满足了工程的进度要求。 公式:∑(计划开始时间 - 实际开始时间)+∑(计划结束时间 - 实际结束时间) / 总工时 参考指标: 15 % 进度偏离是个相对的指标,可能偏离了 20 个工作日,但是对于一个长达半年时间的测试而言偏离天数比上整体测试所需天数不足 15 %,可能偏离了 3 个工作日,但是对于一个只有 1 星期时间的测试已经超过了整个测试阶段所需天数的 60 %。 注意:计算时分子分母要保持一致,即开始或结束时间已经去除了非工作日时间,则总工时也要去除非工作日时间。因为制定计划时是根据每个公司的工作日来制定的,也就是说,考虑了非正常工作日的日程。 测试进度也是考核很重要的一步,如果没有进度保证,所有的测试都存在风险,第一种方法是测试人员可以采用自下而上的方式向测试经理报告计划用时,这种方式风险比较少,个人根据自己能力大小确定,但是缺点是存在测试人员虚报可能性。另一种方法是测试经理进行估算后分配工作日程,这时估算是很重要的前提,除了依赖于测试经理的经验外,对评估结果进行同行评审是很客观可取的方法。 缺陷发现率 测试人员各自发现的缺陷数总和除于各自所花费的测试时间总和。由于执行效率不能足够代表测试人员是否认真工作,那么,每小时发现的缺陷数就是重要的考核指标,你的工作可以通过这项指标得到反馈。 公式:∑缺陷数(系统测试)(个) / ∑执行系统测试的有效时间(小时) 参考指标:平均 1.1 个缺陷 / 小时 假使有位测试人员没有达到 1 小时发现 1 个缺陷,那么,除非产品质量高、模块较小,否则,就是他的缺陷发现能力不如其他测试人员。当然,详细分类中可以根据发现重要缺陷的多少来定义缺陷发现能力。 工作质量相关指标 有效缺陷数 / 率 被拒绝和删除的缺陷数总和,或者被拒绝和删除的缺陷数总和除于缺陷总数。这项指标用于考察测试人员发现的、被确认为缺陷的缺陷数高低或者百分比,数和比率越低测试质量越高。 公式:∑缺陷数(系统测试中被拒绝和删除的)(个) ∑缺陷数(系统测试中被拒绝和删除的)(个) / ∑缺陷数(系统测试)(个) 参考指标:平均 21.9 %(测试人员发现的每 100 个缺陷中平均有 22 个缺陷不被开发组确认、认为不是“缺陷”或者错误录入缺陷)。有效缺陷比率容易给出,但是有效缺陷数具体数据要根据项目情况,无法给出可参考的数值。 注意:这项指标可能有不正确的情况,假使缺陷被拒绝和被删除的原因不是因为测试人员误操作和需求理解等自身错误引起,而是系统本身不能实现或者数据错误引起的,那么就要考虑剔除这部分。对于测试人员发现系统框架根本性的、初始化参数设置错误引发的、错误数据、错误环境等而开发人员因无法修正、可以通过改变环境而无需修改程序、重新导入数据、再次发布从而拒绝或删除的缺陷,应给予此测试人员奖励。 严重缺陷率 这个比例用于弥补缺陷发现率的不足。主要是根据严重程度分类的缺陷数比全部缺陷或者有效缺陷数。一般而言,每个公司基本把缺陷严重程度分为严重、一般和微小,或者更细(通常等级数为奇数)。另外,可以对缺陷严重程度进行折算(严重:一般:微小 =1 : 3 : 5 )通过折算可以得出权重,然后在计算测试人员分值,在此不冗述 公式:∑严重 / 一般 / 微小 / ∑缺陷数 ∑严重 / 一般 / 微小 / ∑有效缺陷数 参考指标:严重 ~10% 一般 ~70% 微小 ~20% 。当测试人员发现的缺陷中严重错误比率越高,说明测试质量相对就好,通常严重程度缺陷数的分布呈正态分布。 模块缺陷率 这个指标主要是根据一个单独测试模块的缺陷数除于模块本身功能点数得出来的。假使一个模块是单独测试的话,很容易可以和其他模块进行指标横向对比,参照对应的测试人员,得出所测试模块的缺陷数,可以考察测试人员测试水平,也为开发考核提供数据。 公式:∑缺陷数(系统测试(个) / 功能点(个) ∑缺陷数(系统测试(个) / 子功能点(个) 参考指标 平均 3.74 个缺陷 / 功能点 1 个缺陷 / 子功能点 注意:有些功能点没有子功能点,计算子功能点时要进行说明。 三 测试管理 开头提到对测试经理的考核就复杂一些,除了测试经理参与测试设计和执行外,还要考察他的测试管理能力,即测试计划阶段工作,其中 计划质量 测试计划的评审缺陷数或比率,可以与其他同类型项目或数据库平均指标进行对比。
|