最近被不少人问到:如何提升团队工作效率?
我想问的人心里大概也是有了一定的答案:"自动化测试"或者"工具平台"。
我们先抛开腾讯、网易、米哈游等等这些国内前五,前十的大厂。他们的自动化,平台工具确实做的不错,很是羡慕这样的平台,但是他们搭建这样的平台付出了多少成本,这个也是中小公司望而却步的。
我们先说说中小型公司怎么来提升团队效率。中小型公司项目的业绩压力往往更大,项目一两年里没有达到预期的成绩,就会面临解散;所以中小型公司项目的迭代更快,测试时间更短,而且测试团队的成本也更低。
先说说对自动化测试的看法,我们都知道自动化测试是将原本手工执行的功能用自动化的方式来执行,这种情况下自动化测试更多的是服务于质量,追求80分到90分甚至95分的过程。其目的是发现新特性对老特性产生的,不为人知的影响。如果我们每次发版本都产生了很多老版本功能的问题,从而不得不对版本所有的功能进行回归测试,那一定是产品的架构出了问题,优化架构比实现自动化测试的优先级要高。
除开自动化后,我们来看看还有什么提升团队工作效率的方法。
1、制定有效的测试策略
“测试策略”通俗来讲就是6个字:“测什么”和“怎么测”。
具体来讲,就是答好和产品测试相关的几大问题:
- 测试的对象和范围是什么?
- 测试的目标是什么?
- 测试的重点和难点是什么?
- 测试的深度和广度?
- 如何安排各种测试活动(先测试什么,再测试什么)?
测试策略提升测试效率的逻辑是:减少不必要的测试,重要的问题早发现早解决。
减少不必要的测试
测试金字塔 大家应该都有了解,界面测试就是我们常说的黑盒测试,大部分的测试执行都发生在这个阶段。做测试我们要提防过度测试,怎么理解呢,比如说一个新功能,我做了一遍完整的功能测试,还需要完整做一遍接口测试吗?之前很多人问我,接口测试要怎么做,是每个功能的接口都要做吗?我们在做功能测试的时候,会先写测试用例,做测试数据,至少80%的功能都可以通过界面测试确认,剩下的那部分无法通过界面测试才需要用接口测试或者其他测试。像我们测任务次数,一般次数使用完后,前端UI会做限制,置灰让你无法再点击领取。那你要测任务次数为0后的情况,就只能绕过界面,通过接口的方式直接向服务端发包来测了。
重要的问题早发现早解决
时间-质量-成本曲线 越早发现问题,越早解决,所需要的成本就越低。在功能还在开发阶段的时候,如果能进行单元测试就可以马上发现问题,马上解决。如果是到了系统集成阶段,就需要逐步分析,逐步排查问题。如果是上线运营阶段,一旦出现问题,那所需要的成本可能就翻倍增长,不光要排查功能模块的问题,还要排查环境因素。测试左移也是提前进行测试比较有效的方式,大家可以去查资料了解下测试左移相关的内容。
2、规范项目的测试过程
一、明确项目工作流程
你们遇到最头疼和测试相关的流程问题是什么?
策划需求改了没告诉你......
技术做了代码优化,让你把相关模块全部过一遍......
技术开发完成时间就是版本截至日期......(难道测试要晚上等开发下班后来测?)
......等等
你没遇到这些问题?那是你经历的项目还不够。
一旦出现这些问题,别说提高测试效率,能正常进行测试已经很不错了。
W模型,是比较常用的软件测试模型,左边绿色的是研发过程,右边橙色的是测试过程,两者有一个很好的对应。测试左移的概念也在该模型中有很好的体现。
二、制定合理的测试计划
制定计划能让工作有条不紊进行,那怎么才算一份合理的测试计划?5W1H,What做什么、Why为什么做、When何时做、Where何地做、who何人做,How如何做。
What 做什么,就是这份计划的目标是什么。
Why 为什么做,为什么要做这个事情,工作中很多时候都会缺失这一环,大家只知道埋头做事,却不想过为什么要这么做。
When 何时做,具体的时间安排。
Where 何地做,在哪里做,对我们测试也可以理解为在什么环境下测。
Who 何人做,谁来做,这个就对管理者有一定要求了,你需要了解你每个下属,知道他们的特点是什么,哪些人能够负责复杂的战斗模块,哪些人能够负责细致的运营活动。工作能力,性格特点,做事方式等等,你都要想办法去了解清楚。
How 如何做,也就是上面说的测试策略。
三、使用项目管理工具
较好地使用项目管理工具也能提升工作效率,一开始让大家使用项目管理工具的时候,大家很多时候都是拒绝的,特别是人少的团队,认为口头沟通比工具更有效。导致大家有这种想法的因素有很多,主要问题就是使用不规范。比如说策划在平台上(指项目管理工具)提了一条需求单,描述很简单“优化普通攻击的动作“,技术看到后一头雾水,肯定还是要做大量口头沟通,所以就认为你提这个单,还不如直接口头沟通。
常用的项目管理工具:TAPD(腾讯),飞书(字节),JIRA(Atlassian),禅道(国产开源),Redmine(Ruby)
四、及时复盘,过程改进
工作都是环环相扣,前面没做好,后面也很难输出。之前最苦恼的就是要出测试报告和做问题复盘的时候。大家不能规范使用项目管理工具,缺陷BUG没有提到平台,单的状态没有及时处理,导致最后的报告惨不忍睹。
有了报告后,我们就可以根据报告内容及时做出调整了。
另外一个就是问题分析复盘。
线上的问题各种各样,但是经过统计后就能找到一定的规律和原因。
下面这些地方更值得大家关注:
- 1、主流程,奖励(不怕多次确认的重灾区)
- 2、新人进组(必经磨合期,错漏多)
- 3、老系统迭代(事故往往发生于后续迭代)
- 4、跨系统关联(尤其注意程序较底层的修改)
提升测试团队工作效率的方法真的有很多很多,除了上面这些,还有测试驱动开发,CI/CD(我遇到过版本发布很差的项目,真的是苦不堪言),提升研发每个环节的交付质量。