1.2.2 提高团队成员的测试工作效率

我们曾经在一些不够高效的软件开发团队工作过,也曾经在非常高效的软件开发团队工作过。高效的团队往往有着清晰的目标、相互信任,能够利用他们出色的技能在团队中做出承诺并辅以实施。高效的团队往往会从事公司内一些重要的、核心的业务系统或技术架构的研发工作,换言之,就是参与公司内“拳头产品”的研发;而那些不够高效的团队,却很少承担公司内“拳头产品”的研发工作。相比之下,高效的团队为公司带来的价值更高,团队成员也会获得高价值的回报。

在高效的软件开发团队中,对于测试工作效率的要求也会更高。在团队中,如何提高测试工作效率呢?大家可以再尝试问自己以下问题:

● 阻碍测试工作效率提升的瓶颈在哪?是人员能力、流程,还是其他因素?

● 使用什么工具会让测试工作更高效?已经尝试用了哪些,效果理想吗?

● 都有哪些可行的解决方案供选择?

● 这个决定是不是性价比最高的选择?

优秀的测试工程师往往需要想得更多、更深,需要结合自己的技术和能力,提高团队成员的测试效率。其实,每个行业的测试工作所遇到的问题是不一样的,但解题思路大致相同,可以分为以下六个方向。

1.保证可测试性

可测试性应该属于软件开发设计的一部分,测试工程师得有意识地优先考虑软件设计的可测试性。

测试工程师在产品设计阶段就应该和开发工程师进行讨论,通过引导开发工程师完成可测试性工作的相关设计和布局,避免造成产品开发完成后,测试工作开展耗时耗力或难以入手的尴尬局面。

2.环境管理

测试工程师可以通过改进环境管理方式,结合发布流水线和容器技术来随用随建测试环境;无须感知环境这层概念,只需关心测试系统能够在环境中快速地被创建、部署出来。构建一套确定的、稳定的、可靠的测试环境,能够让测试工程师在开发调试代码或测试产品时无须消耗大量的精力去准备测试环境。

3.数据管理

测试数据是提升测试工作效率绕不开的话题,如果把测试工具比作武器,那么测试数据就是子弹,不同武器需要的子弹是不同的,难度也有差异,大体上可以把测试数据分为如下四类。

● 系统主数据:软件中的核心配置数据。以开网店为例,包括一个网店可以上架多少个宝贝;网店店主在创建店铺时,有哪些类型的店铺可供选择等。

● 系统生成数据:软件在使用过程中所产生的数据。以开网店为例,包括上架的商品信息、买家和卖家交易中所生成的订单信息、物流信息等。

● 测试验证数据:测试工程师为了对软件进行测试而使用的一些测试数据。这是大家日常工作中接触最多的数据,这类数据是测试工程师为了测试该软件而设计和生成的一些测试数据,如测试使用的身份证号码、手机号、邮箱地址等。

● 其他数据:当测试工程师测试不同特点的软件时,还会涉及其他的测试数据,包括但不限于测试环境配置数据、测试工具平台数据等。

4.自动化测试

自动化是提升测试效率的有效手段,但不是解决效率问题的唯一技术手段。对于不同业务生态的产品来说,使用的策略和框架也不尽相同。

在开始启动自动化测试工作前,需要将被测系统架构、系统内各个服务的依赖、上下游的依赖、数据依赖、环境配置等信息弄清楚,确保自己在动手之前,掌握足够多的信息,做好自动化测试设计工作,最终选择投入产出比较高的方式开展自动化测试工作。

5.产品探索式测试、精准测试

探索式测试是近年来软件行业中特别流行的一种测试方法。在合适的时机,在团队中普及探索式测试并落地实施,能够间接提升团队成员的测试效率。探索式测试只是一种测试方法,是传统测试方法的一种补充,其目的也是为了让测试工程师更加了解系统,发现更多的缺陷。

精准测试也是近年来行业内特别关注的一个方向,在本书第7章的内容中,你可以了解到一个完整的精准测试工具的研发实践过程。

6.明确和优化工作流程

很多时候,团队分工不明确,工作职责不清晰,导致团队的工作得不到高效执行。测试工程师应该先弄清楚在团队中的工作范围和边界,再利用自己的经验和技能,帮助团队成员规范好测试工作,明确工作目标和方向。技术的改进并不是提高测试效率的唯一办法,有时,通过仔细分析团队的日常工作流程,对阻碍工作效率的流程稍加改进,也可以大幅度提高测试效率。

其实,无论是直接还是间接提高测试工作效率,都远远不止以上几种思路。在团队中,无论你是测试团队的负责人还是组员,无论团队成员是多还是少,都可以找到很多办法来提高工作效率,从而把测试工作的价值体现出来。