转帖:软件项目中测试人员的考核
摘要 在项目中,测试人员考核往往成为项目经理和测试经理的一个难题,怎样评估测试人员的工作?怎样定义测试质量的差别?本文通过从事测试工作多年中对不同项目的数据收集和网上有限资料的参考分析,思考总结出一套可行的方法,在此提供给大家。关键字 测试人员考核 工作效率指标 工作质量指标
正文
长期以来,如何考核测试人员的工作是富有争论的话题, 一个理想化的方法是收集测试阶段之后项目阶段的缺陷来确定系统测试的质量。但是,这种方法的不可操作性在于:一是维护和实施阶段的缺陷难于收集;二是缺陷贯穿产品的整个使用周期,无法穷尽,难于将时间段分割开来比较;三是成本过于庞大,时间跨度过长,起不到有效激励的作用。能不能就在项目过程中寻找可以评价测试人员工作的方法呢?就这这个思路,本人摸索出一套有效的办法。
首先声明的是,第一,这套考核方发在一个功能点估算超过 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 个缺陷 / 子功能点
注意:有些功能点没有子功能点,计算子功能点时要进行说明。
三 测试管理
开头提到对测试经理的考核就复杂一些,除了测试经理参与测试设计和执行外,还要考察他的测试管理能力,即测试计划阶段工作,其中
计划质量 测试计划的评审缺陷数或比率,可以与其他同类型项目或数据库平均指标进行对比。
公式:∑缺陷数(评审和同行评审)(个)
∑缺陷数(评审和同行评审)(个) / ∑测试计划文档页数(页)
参考指标:无
成本质量 成本度量主要放在工作量这块。因为无论涉及工资还是奖金,都要和工作量挂上关系。成本质量主要是对测试活动的计划工作量总和比上实际的工作量数值总和。对测试人员考核的进度偏离已经考虑了进度因素,而工作量涉及的是成本因素。
公式:∑测试活动计划工作量(估算人日) / ∑测试活动的实际工作量(人日)
参考指标:原则上不能偏离计划的 ± 15 %~ ± 20 %。实际上,这个指标是对成本的一种度量。对于一个大的项目来说,估算值往往差距非常大,阶段统计时可能有± 500 %!!这时调整计划是很必要的,在最终阶段取考虑计算平均估算值。一个测试经理必须对完成任务的成本进行有效控制。
这两项指标是相对容易量化的部分,而需要添加其他量化指标需要综合考虑由项目经理和测试部部门经理给出标准,例如管理用时比率(整个项目测试期间管理时间占整个项目测试总时间)、系统整体缺陷数与其他同类型项目或数据库平均指标进行对比等等。
考核具体方法:
1 .将各项指标进行汇总分析,得出总和表格,根据测试人员各项指标大小进行排行榜制作,如列出 1 、 2 、 3 、 4 名。
2 .确定阶段涉及的权重。例如将测试设计和测试执行权重各为 50 %。其中,工作效率占 40 %(即占所在阶段 20 %),工作质量占 60 %(即占所在阶段 30 %)。
3 .确定每类指标的分值,然后每类指标达到平均标准给 100 %,达不到或者超过根据 80 % ~120 %比率给分
3 .将比分统计出来后进行综合评定,必要的话增加一些调整系数。
4 .最好将定性分析纳入进来,采用问卷调查和项目经理评分制度给出定性指标分数,建议这部分权重不要超过 10 %~ 15 %以保证测试考核的可度量性。
当所有考核分数给出之后,提醒一点的是,既然做了考核,就必须公开这些结果,而且考核具有导向型,不要让考核误导了对质量工作的追求才是最重要的。
考核注意事项:
1 .项目并不是一个月就能完成的,如每月进行,要考虑“可考核部分”为那些,挑选那些指标能够横向对比,然后分阶段、分任务评定。
2 .参与测试的时间长短也要给予重视,除了上述量化指标外,测试人员整体投入时间长短也是很重要的,加班也要作为特殊考虑因素,也许某个测试人员只参加了测试执行 3 小时,各项指标都是良好的,但是不可能给他比其他参与时间更长的人员更多的分数。这部分就是增加调整系数的原因。
3 .测试经理的测试设计和执行部分和项目测试人员一起考核,但是测试管理工作要单独考核,作为另外的加分,或者如文章前面所述纳入项目组给予考核。因为测试经理在项目测试中起着管理者和质量保证负责人的角色,不要把他和其他测试工程师平等对待。
4 .考核前要考虑项目的实际情况,不要盲目的轻易承诺测试组人员考核会和薪金或者淘汰机制挂钩,否则考核会起到反效果。
项目组测试人员考核的主要目的是在于激励测试组测试人员工作,鼓励能者,鞭策落后;另外,还可以起到发现人才和查找不足的作用。考核中即要体现多劳多得的原则,也要体现公正性和合理性原则,奖罚分明才能有效促使质量管理工作的进步。要想考核得到满意的效果,上述方法的重要的前提条件是:必须要在项目中充分收集相关的数据,包括采集缺陷数,记录工时、提交详细工作日志和进行文档配置管理,没有这些数据,定量分析就无从谈起,测试人员考核也无从谈起。 文章中提到的这些观点,存在很多值得商榷的地方:
需求覆盖率: 这个指标收集起来相当困难,如果存在需求跟踪矩阵或者测试管理工具能把用例与需求一一对应就容易得多。 何解?如果有这些个工具,那覆盖率肯定是100%——需求确定在先,而测试用例的编写在后,没有人笨的会遗漏对需求的测试。呵呵~~
文档质量: 由于评审是发现的缺陷数是不固定的,因此,这个指标没有可供参考的数值。如果缺陷数大小不能直接用于比较就使用缺陷 / 页方式进行横向对比。 何异纸上谈兵?
文档有效率/用例有效率: 这两个考察点且不说从何而来,只说其执行过程。在运用测试文档进行测试时,除非是文档的编写者去执行,不然编写者肯定有话要说。不同的人去执行同一个测试文档,会有不同的测试结果,这是显而易见的,编写者的劳动通过执行者的测试结果来反应,这是什么样的逻辑呢?编写者能没有意见?这种评写肯定是行不通的!
执行效率: 与时间关联在一起,一看就知道是个BUG!谁能保证每一个Case,执行的标准时间大致相同?
进度偏离度: 这是管理上的事,与测试者有何干系?
有效缺陷数 / 率: 这又和开发人员的水平有了关系。发现的BUG,开发人员没能力修改,这难道说是测试人员水平低?
严重缺陷率: 如何定义BUG的级别肯定会产生很多争议~~
当测试人员发现的缺陷中严重错误比率越高,说明测试质量相对就好,通常严重程度缺陷数的分布呈正态分布。 双击*.EXE文件,软件确无法运行。这样的BUG够严重吧?但又如何能说明测试者的能力?——在我看来越是细小的BUG,有时反而能看出测试人员的功底。
模块缺陷率: 又扯到开发上去了~~
计划和成本:如果真的和测试人员有这么大的关系,那测试人员还不爬到开发人员、产品设计人员的头上?成为公司的顶梁柱?
也许言辞不敬,但并无恶意。 文章是好文章,提出了很多好的度量指标,但可惜就是把度量的目的弄错了。度量的目的不是为了考核员工,而是为了对软件进行过程控制和过程改进。如果不是因为这个,我想Nio不会有那么多的意见:)
度量和考核挂钩,会导致虚假的度量,而这比不度量更有害。 测试还是新手,不知道看这个能不能深刻领悟~~~~~~~~ 到现在没觉得有什么合适的方法评估工作效率:书上所说的什么需求覆盖率、代码覆盖率都是假的,在实际中根本行不通。
有些东西书本上都是纯绝对话的理论,把前提设想的很完美,那当然有结果了。 我比较同意天网的意见:度量的目的不是为了考核员工,而是为了对软件进行过程控制和过程改进。
不过对于测试的管理者来说,楼主的文章是有参考价值得!
以后当了测试经理时,一定要多向楼主学学!
不仅要管理好软件,也要管理好人。
[ Last edited by 嘻嘻哈哈 on 2005-7-11 at 11:21 ] 俺们公司的考核就是为了扣员工钱 不错不错啊!
ok
ok转帖:软件项目中测试人员的考核
不错不错啊! Good! 绩效考核需要考虑的东西太多,软件测试只是考核的一部分,还应包括积极性,主动性,新知识学习能力,交流能力,判断力等等,这方面我以前的项目经理作得很出色。 谢谢 路过,对我们新手来说还轮不到要我们来考核别人 不错,很好! 先COPY来在说 哈哈``我是新手哦`准备找工作呢
页:
[1]