上周六和几个测试大佬吃饭,席间聊到了一个问题:很多公司在招测试开发,开发各种测试平台,目的是什么?测试平台解决了什么问题?

顺着这个话题又聊了很多团队管理、向上管理的话题,受益良多。这篇文章,算是整理了当时聊天的部分内容,还有部分我个人的思考,仅供参考。

先假想下,如果现在有一个40人测试团队,技术栈各不相同,为了提升回归效率需要做自动化,你会怎么解决这个问题?首先我们要考虑到做自动化测试平台要面临的问题,大概有如下几种:

  1. 业务特性不一样(人多一般意味着业务的多样性)
  2. 迭代频次有所不同(正常的版本迭代&独立迭代的项目)
  3. 团队每个人技术的差异(技术栈&技术实践能力的差异)
  4. KPI&OKR导致的利益竞争(谁负责做自动化?怎么做?你做的别人如何适应?)

当然还有很多其他因素,如果放任自由,那可能面临的问题就有:

  1. 每个业务线测试团队有自己的一套自动化框架;
  2. 不同业务线之间的交汇处极容易出现问题(数据问题/交互问题/责任问题);
  3. 资源的浪费(重复造轮子/不同轮子带来的结果不同导致的排查和解决问题成本);
  4. 维护轮子本身耗费的人力时间成本;

因此开发测试平台的目的就是:通过平台提供标准化操作,将不同个体差异通过流程化的方式约束起来,减少重复造轮子和轮子之间差异导致的排查和解决问题的成本,进一步提高人效。

我在上一篇文章《自动化测试如何管理测试数据》中聊到过自动化测试从学习阶段到成熟阶段的一些过程,其实背后的本质是技术在不断实践迭代中不断系统化和标准化的过程。

无论是软件测试还是研发或者其他岗位,实际上还是软件工程的范畴。

工程本身就要求通过严格的作业工序、专业的技术人才加上合理的管理方式来交付产出。

测试平台其实只是“只做刚刚好的设计”、“先做MVP方案然后不断迭代小步快跑”这些很好的软件工程实践理念某个阶段的产物而已。

当然,言必称平台,动则撸代码的方式,也有企业发展和个人职场生存之间的博弈成分在内。