在跟团队成员进行绩效面谈时,成员问我,怎样才能做测试管理。
先看看百科的定义:
测试管理,即是组建和管理一个测试团队,制定和落实一个有效的测试流程,计划、设计、执行并跟踪输出项目的测试报告,为项目质量提供有效保障。
再看看市面上来自两家公司对测试经理岗位的职责要求:
能力要求一:
1.制订测试方案及计划,包括人员安排测试进度测试流程等
2.带领测试团队完成公司产品的测试工作,执行测试计划,跟踪执行进度;
3.完成组内人员招聘培训以及及团队建设;
4.负责测试团队人员的绩效考核,培养团队成员的成长;
5.与上级及协作部门沟通测试进度及测试结果。流程管理
能力要求二:
1.带领团队完成产品和项目测试的任务,统计和分析测试结果,问题确认和跟踪,推动问题及时合理解决;
2.测试环境的配置和版本管理;
3.软件测试流程体系的梳理和建立;
4.负责测试组人员的技能和业务培训,提升团队的测试能力;
5.制定编写软件测试方案与计划,完成测试任务,编写测试报告;
6.测试团队的人员管理工作及团队建设。质量管理
所以结合我的理解,梳理了下我对测试管理的定义,以及我认为目前一个最基层的测试管理所做的事情。
把测试管理的能力模型分为六个部分
![](http://upload-images.jianshu.io/upload_images/3409491-1789d88101ca3ac6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
![](http://upload-images.jianshu.io/upload_images/3409491-fbfe59daf8bb5ee4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
人员招聘
确定招聘需求和招聘要求,为团队招募合适的人才。
l刚刚走出校园的实习生,和社招的资深测试工程师的能力和经验自然是不一样的,所以对于社招和应届生的招聘要求需要分开。
l通常我在面试社招时,更多关注的是社招同学的项目经验,以及过往所承担的职责,自动化工具能力,软性素质上更看重协调能力和推动能力。
l而在实习生的面试时,不会过多去关注实习生的项目经验,更多关注的是实习生的学习能力和主观能动性,如果能有一些对软件测试岗位的基础知识学习和理解,那么是很加分的。
人员培养
制定学习目标和计划,因人而异施教,安排专业的导师,及时跟进新人学习进度并解疑。使招聘的人才在最短的时间内快速适应项目的流程,胜任项目的任务。
l对于新入职的人而言,一个类似于这样的明确的工作任务和目标非常重要。
![](http://upload-images.jianshu.io/upload_images/3409491-811cb369ade98bf6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
人员管理
1、职能明确:各岗位职能职责区分清楚,避免团队成员之间职能混乱,出现工作交叉干预、重复劳动的现象,也避免出现踢皮球的场景。
l有的测试团队会按照测试技术、测试设计、测试执行的组织结构来管理,这样每个团队都术有专攻,管理上也会更容易
l有的测试团队会按照个人全方位能力培养,要求个人同时具备测试技术、测试设计和测试执行的能力,这样对每个人的长远发展更有利,但是会因为每个人的能力参差不齐,导致团队的成员能力不均衡,个人优势不够突出
2、知人善任:依据各人的特质、能力层级、优势劣势进行任务分配,给团队成员充分展示优点的机会,避其缺点,合适的人做合适的事情。
l比如有的测试人员擅长测试设计,有的测试人员擅长挖掘工具自动化搭建,有的测试人员沟通协调能力比较强,根据每个人的意愿和长处来安排任务。
3、善于倾听:尊重团队里的每个人,确保成员能够无所顾忌地表达个人观点,并能够及时觉察成员情绪上的波动,换位思考,及时建立疏通、宣泄的渠道,做好正面引导。
4、敢于授权:在明确的目标要求下,适当的放手,让团队成员有能力与权力去承担并对结果负责,但是在过程中,管理者也需要随时去抽查,以便及时发现落实过程中的偏差或者问题
5、激发潜能:不畏惧新人犯第一次错误,因为错误中的总结,才能令人印象更深刻,后续不再犯。而不断的尝试新事物,才能够挖掘团队成员的潜力。
6、等级淡化:成为团队成员的朋友,在成员迷茫时能给出合适的建议,在困难时伸出援手,必要的时候需要言传身教,做成员的坚实后盾。
这些主要讲的是向下管理,另外还有向上管理,如何处理自己与上级之间的关系,如何向上级述职,更好的展现自己和团队的工作成绩,也是管理的一门学问。
![](http://upload-images.jianshu.io/upload_images/3409491-def888964725c34a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
团队建设
1、共同目标:可以是时间、项目等,团队成员有着共同的目标,才能提高整个团队的凝聚力和斗志,从而取得1+1大于2的效果。
2、团队规划:制定半年、一年,短期和长期的规划,让团队成员了解公司的远景,让大家对团队、个人的发展有信心。
3、树立标杆:一个团队中各个成员都是不同的个体,素质和能力颇有差异,树立标杆,推广优秀成员的成绩和经验,才能提升团队的能力,使团队能力最大化。
4、奖惩激励:团队成立阶段,多奖励,少惩治。及时的给予鼓励和奖励,会让团队成员的被尊重、被信任、被认同感提高,工作动力和积极性提高。但是,团队成长成熟阶段,要多规范,建立多种合理的制度来管理与约束。
5、绩效管理:有一套公开、公正的绩效激励体系。结合每个成员的自身特点和能力制定,制定合理的绩效。
团队潜能
通过团队活动、团队培训等方式,培养协作精神和团队精神,提升团队整体的能力,创造一种良好的氛围,提高团队的凝聚力。
加强测试团队在整个项目中的地位和影响力,影响力越强,团队成员的成就感会更强,工作的动力和信心会更大,更积极正能量的心态面对工作。
团队提升
通过各种各样的途径,培训分享,共享资源库,或者是团队图书馆也好,提升团队整理硬性软性能力。
![](http://upload-images.jianshu.io/upload_images/3409491-37c17123116777a8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
流程建立
大到项目研发流程和职责分工,小到测试缺陷跟踪流程、案例评审流程,都有一个从无到有制定和完善的阶段。
下图只是一个项目的测试流程的一部分。
![](http://upload-images.jianshu.io/upload_images/3409491-43f0bb37f645f9ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
流程实施
推动流程的落实
流程优化
流程的落实过程中,不断的总结经验,及时调整和完善流程。
![](http://upload-images.jianshu.io/upload_images/3409491-f2110b9077598b7b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
质量指标
前期要确定一些项目中质量的指标,比如交付时间要求、BUG修复率的要求、用例通过率的要求等等。
质量管控
再通过不同的手段来管控,从而实现和达成目标。
在达成的过程中需要研发、产品、测试、项目经理等多个角色的共同推动规范项目研发流程、代码管理流程、缺陷管理流程、测试案例评审流程等等。
并且做好测试分层,从代码级、接口级和ui级别进行测试,从工具自动化和手工多层面进行考虑,从功能、性能、兼容安全性等多纬度进行覆盖。从某些方面来讲,流程的管理,是质量管理的前提。
质量分析
通过对质量的可视化数据分析,从而加强管控机制,改善测试流程,丰富质量指标。
![](http://upload-images.jianshu.io/upload_images/3409491-45ffba7539e22a59.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
资源整合
整合测试相关的技术、文档、工具、专利等,成为测试团队的知识资产;整合测试内部、外部的人力、物力、财力,成为测试团队的能量储备。并且对资源进行维护和更新。
资源共享
建立统一的共享平台,将测试资源共享,管理测试用例、管理缺陷、管理测试方法、测试技术工具,减少团队成员的重复劳动。
资源协调
协调测试组内的各种资源,协调组外的各种资源,共同达成目标。
在人力的协调上,一方面需要和团队内、团队外的人员建立良好的关系,取得他们的支持,另一方面,建立跨部门的利益相关性,成为利益共同体。
![](http://upload-images.jianshu.io/upload_images/3409491-ea48e51af5c0302b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000)
通过对风险的识别和分析,选择有效的方式,主动地、有计划地处理风险,以最小成本获得最大的保证。
风险识别
项目运行的各个环节可能出现的风险都应关注,风险信息收集时需要注重全面性和多样性。
l比如需求上存在的缺失,交互上可能违背大部分用户习惯多设计,开发实现上可能存在的漏洞,测试案例上可能存在的遗漏,都是项目中常见的风险。
l常见信息收集手段如现场访谈、会议研讨、问卷调查等。
风险评估
通常可以用可能性、严重性,结合可控性、相关性几个指标来描述风险。
l比如当判断一个不能固定重现的BUG到底是否重要需要在上线前修复时,可以参考如下风险评测标准:
l这个BUG发生的概率有多高?
l这个BUG对用户的体验和使用影响有多大?
l这个BUG如果在生产上出现了,怎样可以解决和减少影响?
l这个BUG可能引发其他的问题吗?
风险应对
采取各种措施减小风险问题发生的可能性,或者把可能的损失控制在一定的范围内,以避免在风险事件发生时带来的难以承担的损失。
风险应对和控制的四种基本方法是:回避、控制、转移和自留。
l比如新增加了一个功能是展示列表,根据我对项目组产品和开发的了解,他们经常会忘记页面为空白时怎么显示。而这一次我相信如果不提前提出来他们仍会出现这个问题。那么我可以采取如下几种措施:
l我知道可能出现这种风险,但是不打算提出来,也不打算搭理他。准备直接带着这个问题上线。——这是回避。
l我把风险提出来,然后声明,这个问题一旦出现,需要开发承担责任。——这是转移。
l我默默的认为这个风险影响不大,仅保留给自己知悉。后续等问题暴露出来,再去处理——这是自留。
l我把这个可能出现的问题提出来,让产品完善需求,开发提前处理。避免提测后这个bug的出现。——这是控制。
讲了这么多,不知道有没有帮助到大家呢。
作者:alice_tl