题 记 以前分享过一些类似的话题,比如“如何当上测试经理” ,“新晋经理如何管理团队”,但限于篇幅和主题,很多问题无法细说,这也导致很多读者看完以后来找我了解同样的问题。今天结合小密圈里的问题,谈一谈一些问题的看法,希望可以给想当测试经理和刚当上测试经理的朋友一点启发。
一 测试经理的能力框架 测试经理最重要的能力是什么?
1、测试经理是做什么的
测试经理是做什么的?有的奔走于项目经理、技术、设计、下属之间,了解需求跟进进度;有的则是无时无刻都在与文档打着交道;也有的测试经理看起来“很闲”,上午看看邮件下午看看书喝喝茶。实际上,这都是真实的测试经理的工作状况。
通常来说,测试经理需要懂技术、懂管理,有时候可能还要懂组织政治、懂客户体验,因为他要与很多部门人员交流,保证理解正确项目需求,同时也更好的将测试范围与下属沟通充分 。
测试经理的本质工作在于对项目测试任务的实现。具体就是针对项目产生行为,对项目需求进行分析、研究并对项目的测试周期实施管控,以使团队在紧张、有限的周期内高质量交付。
不管怎么样,我们都不能忘记测试经理的初衷,明白到底是做什么的,才能出色的完成测试任务——这很难!毕竟能够按照计划和最初期望完成的测试任务只占极小一部分。
2、是否需要考个证书
行业内对测试经理有用的证书不多,某些领域如评测师算一个。
从我自身经历来看,系统的学习PMP也对提高测试管理能力很有帮助。引用郭教授的一句话就是:学习PMP的意义在于,每个人都应用专业的方法做事,这至少可以让我们少走弯路、少犯错误。但我并不鼓励所有人都去考证,除非你有现实的需求。
3、测试经理的能力知识框架
分享一个“测试想法来源”,可以透过这张图来看一下测试经理需要具备的能力。
图1 测试想法来源
从上图可以看出,想做好测试经理,测试经理需要掌握的知识和能力是相当繁杂的。总结来说,做事的方法和做人的态度都需要不断提升:研究做事,可以让事情做得更专业,讲究做人,可以让自己更成功!
PMI推出了项目经理能力发展框架,作为个人或组织来管理项目经理的专业发展。该项目经理能力发展框架有三个维度:项目管理知识、项目管理应用、个人能力,我觉得也同样适用于测试经理。
图2 理想项目经理的能力知识能力框架
4、测试经理最重要的技能
似乎很少有人思考这个问题,测试经理最重要的技能是什么?
这个问题,我自己的、现阶段的看法是识人、用人、带人。当然,肯定有很多人觉得其他能力可能更重要,比如做计划的能力,或者对业务的理解程度。其实,这都可能是正确的,因为管理的关键在于切合实际,每个测试经理面对的情况都是不同的,这也直接导致他们所需具备的核心能力是不同的。
二 测试经理最重要的决策是什么?
测试经理会不断面临各种各样的决策,大到招聘、提拔、团队建设、流程规划,小到同意某一次项目的测试计划、上线申请。那么问题来了,在这些决策中,那一项决策的影响是最重要的呢?
换个角度想,哪一项做了错误的决策之后,后果是最不能接受的?
个人认为,测试经理最重要的决策就是招聘,因为一旦录用了不合适的人,就会长期为自己的错误决策吞下苦果。
换句话说,测试经理需要持续不断的想方法提升自己的面试能力,特别是在招聘到了一个不那么合适的人之后,首先应该反省自身在面试过程中需要做哪些提升,而不是抱怨录用的员工有这样或那样的问题——失败的人找借口,成功的人找方法!
人才选用方面有哪些需要注意的呢?
有人说提拔基层管理人员的标准是稳定,对公司忠诚,做事积极,善于沟通。这是对的吗?
选择合适的人才的标准是什么? 资历?学历?忠诚度?还是兴趣?
卖个关子,欢迎感兴趣的朋友留言或者到我的小密圈(“软件测试经验与教训”)来讨论。
三 接手一个新的项目后如何开始工作?
接手一个新项目后,应该首先做什么事,搞清楚哪些问题?
比较忌讳的是在对项目情况不够清楚的情况下,匆匆忙忙跟项目经理制定了测试计划——这种情况并不罕见!
一般我在加入一个项目的头几个星期,主要用来倾听而不是发表意见和做出决定,我觉得深入理解团队非常重要,要学习项目的业务,学习程序的架构,了解团队的最新动态。我不能接受一位医生在观察我不到五分钟的时间就给我开具抗生素类的药品。同样的,我也不期望一个团队可以接受我一开始就提出的什么解决方案。在进行诊断之前你必须先要学习。
在这个阶段中,我发现最有力的问题就是“为什么”。为什么要做这个功能?为什么要这么设计?为什么你会进行这些测试?为什么你会想到这个用例?为什么你选择把这个任务自动化而不是那个任务?为什么我们要投入做这个工具?......很多时候,我感觉有的人做事只是因为看到别人这么做,或者他们测试某个功能特性的时候只是做那些他们知道怎么做的东西。如果你不问他们为什么,他们自己也不会费心思考这事儿,因为他们已经把那些作为了一种习惯。
另外,并不是所有问题都适合提问。我提问的初衷有三个。第一,它能够侦测风险、提高产品的质量;第二,它能提高开发产品的效率或者缩短测试周期;第三,不懂这个业务。
四 如何建立良好的工作氛围?
团队的气氛非常重要。我深信优秀的产品和优秀的团队紧密相关。我们必须要有拥有合适技能的人,正确的工作态度,并做正确的事情。特别是团队中资深的人,因为团队的文化和氛围很大程度上来源于这些人。
下面这几个问题,是测试经理需要思考、探索答案的:
五 如何平衡自己的管理和技术贡献?
测试经理一般都是需要为团队作出技术贡献的,同时我们也得承认,测试经理在管理和技术提升方面确实存在干扰。我曾有一段时间让自己陷入过多的细节,也曾有一段时间为了“管理”而忽略了技术提升,这使我明白,当管理和技术不能保持平衡时会有多么困扰。我总结了几个办法来让自己能保持技术敏锐度。
第一,选择留下一部分工作自己来完成。比如在设计阶段会积极地参与,持续地跟进项目并且自己也编写测试。
第二,其实这才是关键的部分。为了排除管理的干扰,我会尽可能在15:00之前把管理都做都完成,然后剩下的时间做我自己的工作。比如我曾经把项目源码导出来然后自己去修改,这个工作让我能从开发的角度来看待测试。当我碰到一个脆弱的测试,或者某个原因拖慢了测试进度时,我就能够理解那些开发工程师怎么看待我们的测试工作了。
第三,平时求生存,周末求发展。利用周末、下班以后的时间充电。
六 需要警惕的下属工作问题
1、关注最重要的事
难题永远也解决不完!测试部经常会面临要做太多的工作的情况,这时候我坚信只应该关注最重要的事情。就好像你要同时做五件事情,但是每件只能完成80%的时候,我就会要求他们退回来重新安排优先级。把你需要做的事情减少到两到三件,但都能完成到100%。这样团队才能获得真正的成就感,而不是好多事情在他们手里没有完成。如果这些工作最后都能积极地影响到产品质量,那么我也会感到特别高兴。
2、关注下属在哪里犯错
我发现,有的测试人员可能一上来就开始干,不明所以。他们写了很多测试,但忘记思考为什么要写这些测试,怎么让这些测试为整体目标服务。类似的问题很多,都需要测试经理静下心来研究工作,观察下属在哪里犯错,思考如何解决这类错误。
六 做哪些工作能够体现测试部的价值?
从对测试部的期望来说,我们只要能让项目/产品在规定时间内以高质量交付,就会体现测试部的价值。从这点出发,我们可以思考有哪些手段有助于达成我们的目标,比如自动化,比如持续集成,比如定期培训,比如打造一个学习形组织......
我比较欣赏谷歌的做法,他们更专注于预防bug而不是检测bug,这为他们带来了巨大收益。他们推动自动化测试在代码提交之前更早地执行,这样就会避免大量质量不佳的代码污染项目,让测试团队随时保持在最前沿,支持项目产出高质量的版本。
七 团队或者项目的人员如何配置?
很多人都会关心,开发和测试人员什么样的配比是比较合理的,但实际工作中,这点往往很难由测试经理来决定。
对于我来说,在人才选用上我的原则就是决不妥协,绝不录用不符合我要求的人。
什么样的人会让我喜欢呢?
我喜欢那些不会困扰于系统的复杂性、遇到困难的问题时能够分解为可执行的步骤并能最终解决的人。我喜欢有执行力的人,他们会被紧迫感激发而不是吓跑。我喜欢能够在创新和质量中掌握平衡的人,他们不应该只满足于发现更多的bug。但最重要的是,我喜欢能看到他们的激情。我喜欢那些真正想做测试的人。