一、测试左移的概念

测试左移是指将关键的测试实践移至开发生命周期的早期。左移是在软件交付过程中尽早发现和防止缺陷的一种实践方法,目的是尽量在软件开发生命周期中尽早将测试任务左移,以提高产品质量。

测试左移的思想本质是越早的发现不合理的地方,出问题的几率就越低。

二、测试左移的内容

PRD评审

这一点相信很多测试同学都有参与过,需求的PRD评审,但是很多时候可能只是局限于听需求,而缺少了分析or测试需求的部分。测试一方面是熟悉需求的内容,另一方面也是找出需求的问题,确认需求的合理性,判断需求是否全面、正确,上下文具备不二性。

研发设计评审

这一点当我们测试在做测试方案、用例设计的时候,研发也在做研发设计,做好了之后通常会有研发设计的评审。测试在这个阶段是非常有必要参与研发设计的评审的。

有的同学可能会觉得,研发设计评审说的都是研发如何实现整个需求,自己去听也听不太懂,浪费时间。其实不然,虽然不一定我们能全部听懂所有的研发技术,但是至少我们能听到研发去开发整个需求的整体设计思路,听完对于我们熟悉整个需求的架构图非常有帮助,也就能帮助测试更好的去设计对应的测试用例,提高测试用例的覆盖率。

避免纯粹从黑盒的角度去设计测试用例,导致有一些个别情况下的缺失测试用例覆盖的情况。当然,如果测试具备走读研发代码的能力,参与研发的设计评审,对于提升测试用例覆盖率,会更加的事半功倍!

单元测试

这一点现在应该只有一些大厂会执行得好一些,很多中小公司都没有严格要求研发必须做单元测试。一方面是中小公司流程上要求普遍不会那么严格,另一方面也是需求开发时间越来越短,导致研发们普遍都没有很多的时间去执行单元测试的工作,为保障按时交货,都直接开发完成就扔给测试去做相应的测试。

在这一点上我依然坚持研发为主、测试为辅的思路。测试辅助研发更好的完成单元测试。为什么不是测试直接去做单元测试呢?因为这一方面需要测试具备白盒测试。

模块集成联调测试

这一点我们测试可以做一个mock平台或者mock服务提供给研发,帮助研发可以快速mock接口内容,提高联调测试的效率。

代码规范检查

这一点也是提高研发提测质量的手段,可以通过各类代码检查工具来规范提高研发的代码质量。比如Java系比较流行的SonarQube, 可以结合进CICD的流程,作为代码提测的必查项。

代码复杂度检查

这一点也一样,只是很多公司目前不太在意这一点。其实越复杂的代码,也就意味着其存在bug的可能性越高。同样代码越复杂,也意味着编码质量可能不高或者后期代码维护成本的升高。SonarQube目前也能扫描代码的复杂度,编译器Idea的也有类似的插件提供该项检查,因此这一点也可以列为流程中的必查项。

自动化测试

这一点就是测试最熟悉的了,自动化测试,目前主要包括UI自动化和接口自动化,实现的方式也是多种多样,编写脚本的方式、录制回放的方式,用平台、不用平台都OK。重点在于选择适合自身组织的方式,以及如何自动化是否真的提升了测试的效率,避免为了自动化而自动化。