测试工程经理是一个技术岗位,负责所有的支持团队之间的联络(开发、产品管理、产品发布、文档等)。不仅需要具备TE和SET的技能,还需拥有足够的管理技能来负责直接下属的职业发展。
1.测试工程经理的工作
TE和SET汇报给TEM,TEM直接汇报给测试总监,所有的测试总监都汇报给Patrick Copeland。
要想成为优秀的TEM,需要:
a)了解你的产品。从用户界面到后台数据中心实现,TEM都应该对自己负责的产品做到了如指掌。即相关项目中最强的产品专家。
b)知人善用。测试工程经理是产品专家并理解要有哪些工作需要完成。但真正完成工作的人是TE和SET,因此了解这些人的能力很重要。
2.获得项目和人员
TEM不能过于依赖于某位明星测试人员,那些促成这位测试人员成为明星的东西,必须要沉淀成可用的工具,或者总结成一套方法,这样可帮助其他人也能变成明星。TEM还管理着一套资源配置的流程,TEM可以在上面发布职位空缺消息。在入职高峰期间,每个项目都有多名候选人,而每名候选人也可能被提名到多个项目,最终在资源配置会议上进行分配,分配优先级如下:
a)新员工的技能与项目所需技能的匹配程度
b)新员工的个人意愿
c)项目需要
d)过往的分配记录
获取新项目也是TEM必须做的事情。随着TEM的经验和声望的提升,有些资历尚浅的TEM也可以直接向他汇报。获取新项目的过程是:开发团队组织一个会议邀请一位可信赖的TEM,向他介绍自己的项目,希望他能够为该项目组建一支测试团队。
3.影响力
每位工程师的个人目标都应该是建立影响力。测试团队的目标也应该是建立影响力。年度评审和晋升决议中,影响力是一个非常重要的因素。
测试工程经理要做的事是:一个测试团队中每位工程师都有能力完成极具影响力的工作,测试过程中每个单元都有明确的目的和明显的效果。开发团队非常理解测试工作并一起参与,直到最终完成目标。
测试工程经理还有一项工作就是处理跨团队的沟通。作为自己团队的代表,TEM必须努力发现团队里的好方法、好工具,并分享给其他团队。
4.Gmail测试工程经理Ankit Metha的访谈
开始接手一个新测试项目时,主要是倾听。除了质量和效率,团队的氛围非常重要。另外,要赢得尊重最好的方式就是解决掉一些难题,关注最重要的事。
测试经理管理下属和与其他人沟通会对完成技术工作有所干扰,可以通过以下两种方式:
1)在与TE和STE沟通时,有很多事情需要做,会选择留下一部分自己来完成;
2)如果想做一些技术工作时,必须尽量排除管理方面带来的干扰。
人员的问题就是绝不妥协,选用不合适的人来填充名额永远要比等待合适的人员要糟糕。从技能分配的角度来说,Gmail的经验是用20%的测试人员进行探索式测试,任何关注用户体验的产品都需要探索式测试;还有30%的测试工程师关注于产品的整体性测试,他们和测试开发工程师一起来保证测试的效果;另外50%的工作是测试开发工程师开发相关的自动化测试和工具。
测试开发工程师应该牢记:测试应该是开发人员的工作而他们自己应该专心让测试成为开发人员工作中的一环,测试开发工程师通过编写工具帮助开发人员做到这点,而且应该让开发人员在维护开发代码时,同时也负责维护测试代码。这样,测试开发工程师才能集中精力让测试执行更快。
Gmail更专注于预防bug而不是检测bug,我们推动自动化测试在代码提交之前更早执行,避免了大量质量不佳的代码污染项目。
快速迭代和高质量这个经典的矛盾迫使我为了这两个目标不断优化,创建一个产品不难,但要快速创建一个高质量的产品会有相当大的难度。
5.Android测试工程经理Hung Dang的访谈
项目初期的困难主要是建设团队和建立测试的基础框架。建立团队之后,开始让大家熟悉产品,所有测试人员都成为产品专家。当成为产品专家后,就能了解测试中的困难,就可以根据这些需求来建设你的团队。
团队建立好以后,就是创造价值。从开发到产品管理,测试都应该是一股推动的力量,否则就是在阻碍发展。最开始,创造价值就是帮助产品成功发布。所有的事情都是价值驱动的,并且需要持续地创造价值。
手工测试并不是自己钻研整个产品,而是要仔细观察测试的每日构建版本,分析里面的变化。
6.Chrome测试工程经理Joel Hynoski的访谈
没有一种单一的模型适用于所有团队,目前比较倾向于使用一种综合的方式,混合使用开发自测、脚本化测试、探索式测试、基于风险的测试、自动化功能测试等多种方法。
上篇读完,整体感受是测试工程经理需要的综合技能挺多的,另外,扩大自己的影响力,我想这是每个人的目标。Huang Dang的访谈中价值驱动测试的思想也很有用。