从事互联网行业,测试开发-质量保障方向将近5年了,虽然没有做管理岗,但是今天我想围绕如何做好一名大型互联网产品的测试leader说说我浅薄的看法,或许以后会转型做测试管理呢,哈哈。
一名管理者是直接对业务结果负责的,需要站在整个team的角度考虑问题,主动识别团队的问题,主动去预判整个业务甚至是行业的趋势,从而提前规划,规划团队人员的结构、规划技术路线等等。
我认为,一名测试leader应该从这几个方面开展自己的工作:技术管理、流程建设、团队建设。
其实要做的事情有很多,包括四个方向,两个维度,从管事到管人,从定方向到拿结果。
技术管理
有个普遍的认知就是,研发工程师的技术深度比测试工程师要深很多,而测试工程师的技术广度则要大很多。确实,由于测试需求的多样性和测试场景的复杂性,测试需要掌握的技术面会更多,比如性能测试、兼容性测试、自动化测试等等。测试技术管理,可以从三个方向进行考虑,分别是质量、效率、专项。
质量
质量保障方向的测试工程师,保障业务质量是核心工作,做技术管理的时候要多做切实利于保障业务质量的事情。围绕质量可以做很多事情,比如:
代码质量:建设完整的持续集成系统,制定代码规约,规定代码覆盖率标准等等,减少版本bug数量,提高版本质量。
监控体系:搭建或引入监控平台,对业务进行有效的监控,及时发现问题,减少影响面。
高可用:容灾机制的建设,日常演练,降级系统的建设等等。
效率
理想情况下,功能测试只是我们日常工作的一小部分,那些经常需要重复,而且价值很低的事情,我们要善于利用工具或者开发工具,提高效率。这里所指的效率不只是测试效率,还包括研测流程的效率。我们所建设的工具,所引入的工具,给我们自己使用还不够,还需要能够提供给研发使用,我们把这个叫做”测试左移”,越早发现问题,解决问题的成本就越低。
如果自己要开发工具或者引入工具,那么有一个很现实的问题就是,如何衡量投入和产出?如果是个人,开发一个工具玩玩是无所谓的,而如果作为一名测试leader就不得不考虑这个事情的投入和产生的价值是否合理(ROI),工具的建设前期需要人力投入,后期使用了需要人力去维护的。
效率的提高,可以从自动化提高回归效率、流程优化提高研测效率着手。
专项
除了上面提到的两点,我觉得还需要根据业务的情况制定相应的专项,以解决一些特定时期特殊的问题,比如容量评估、性能基线建设、兼容性测试等等。每个业务不同的阶段都会面对不一样的问题,管理者需要主动识别这些问题并组织解决。
技术管理是比较能体现测试专业性的工作,除了以上的几点,在团队形成技术分享,技术攻坚的氛围也是非常重要的。
流程建设
一名测试leader很重要的一个工作就是流程建设,一个好的流程所能发挥的作用不亚于一个优秀的测试工具的作用。以下流程或规范基本涵盖了我目前项目日常的整个研测流程:
规范
需求预审规范、单元测试规范、提测规范、上线部署规范、线上验证规范、质量过程统计规范,等等。
checklist
设计评审checklist、版本测试负责人checklist、外部协作指南规范checklist,等等。
制度
线上值班制度、故障处理和复盘制度,等等。
以上每一个流程或制度都可以整理一篇文章出来了,如果有时间了我再好好整理。
团队建设
这里的团队建设可以理解成人才招募、人才培养以及建立内外沟通机制。一个优秀且有战斗力的团队,一定年龄结构合理,机会总体公平,沟通顺畅,培养制度完善的团队。目前我对这方面的接触还是太少,就不展开说了。
以上是我对一名测试管理者的一些思考,有我的局限性,欢迎交流~