今年其实日子并不好过,但是因为前两年被裁员过两回,所以也就无所谓了,积累点东西,做点事情其他其实没有任何太多想法,不管是测试管理也好,测试开发也好,业务测试也好,自己基本都做,名义上是管理者,但是基本上都参与不少,先从测试平台这块开始总结吧。

这篇先总结一下主要做的目的和想法,以及实际用到的工具和代码积累. 如果用自己的土话说就是:

  1. 平台最重要的是怎么帮助协作,共享和积累
  2. 有什么方便的工具就用什么方便的工具,怎么简单怎么来
  3. 积累一些小工具,慢慢都会用到的

1.为什么要做?

已经有自动化测试框架了,为什么还需要做所为的测试平台?其实叫平台还是叫其他都不重要,重要的是解决什么问题?

一个所为的平台比较和自动化测试框架或者自动化测试脚本最大的好处,个人认为是:

  1. 一个团队可以通过一个系统共享成果
  2. 一个团队可以通过一个系统积累内容
  3. 上游团队做的事情可以直接或者很低转化成本的方式被下游团队使用,比如产品的需求文档怎么快速变成测试用例

在现实中常见的场景是:

  1. 你的自动化脚本写好了,只能在本地跑,其他人如果想用还不那么好用
  2. 业务 A 的自动化脚本写好了,业务 B 想要利用业务 A 的脚本造点数据还是不太方便做
  3. 写自动化脚本的使用,有一些通用工具,每个业务都自己做一些而不能抽象/复用,造成重复工作
  4. 测试用例散落的到处都是,不好维护和复用

综合以上,测试平台也好,测试辅助系统也好,主要是提供:

  1. 可以共享,复用成果的工具
  2. 提高协作能力,比如说你的测试脚本我能拿来造数,比如说产品需求,可以直接部分转化成测试用例,有些内容本身是重复的,只是不同使用人需要把内容转化成不同的格式/表达,这实际上可以通过协作来满足双方需求
  3. 让好的方法和手段变成系统积累下来

所以测试平台/系统的要点帮助共享,提高协作,否则没有必要一个平台,都是一个人做,不需要什么平台.

提供这些主要其实是能够提高个人工作效率.比如以前有人做过的,如果有积累就不需要重新重头从零开始做,能复用一些就复用一些.

因此都是从实际需求出发,一点点积累,改进,好用的东西是磨出来的. 同时平台和个人工程师是一个合作关系,平台是为了提高工程师效率的,而不是去阻止工程师日常行为,个人怎么做一定是灵活的,平台是辅助功能消除一些日常繁琐重复的事情.

那么从这些出发,个人一年的实践中主要是将下面内容放到测试管理系统中:

  1. 接口测试生命周期管理,从接口的新建/弃用到接口自动化测试都进行平台话,打通接口定义代码变更到接口自动化测试完成
  2. 自动化测试管理,提供录制/生成代码/测试平台交互工具,不约束写代码,又可以自动收集测试进度/测试报告,在提供完全的灵活性的前提下,尽可能减少以前需要额外处理的事情比如整理报告,一个去抓包写接口测试用例
  3. 测试用例管理: 测试用例的统一管理,可以拆解/复用满足不同场景下需求,比如需要多人分工,就可以拆解测试用例分别追踪进度; 比如回归测试用例就可以复用以前写过的测试用例
  4. 测试需求: 规范话测试需求同产品达成某种写法的共识,就可以通过 AI 直接生成部分最常见的测试用例,介绍测试熟练工搬运需求到测试用例的时间,这本身就是协作的一部分

从一个端到端的场景来说,就是测试人员配备了工具箱 (类似各种 IDE 插件),可以直接本地直接使用 (可以在本地写代码处理特殊场景),完成任务之后可以快速告诉平台 (测试报告/测试结果),而需求其他人帮助的时候,通过平台 (控制中心) 获取已存在的工具支持

2.做的成本是什么?

做一个能用的一个平台,个人认为成本是不高的,这个平台包括前后端,包括一些报表工具,直接使用现有个低代码 (low-code) 工具,会让你非常快速的验证想法. 以自己实践的例子来说:

  1. 后端低代码supabase: 数据库表可以直接变成 API 接口不需要任何额外代码,存储过程可以直接变成接口不需要任务额外代码
  2. 前后端系统低代码工具erupts快速开发业务系统验证想法,一个 Entity 一个页面,开发非常快,基本可以满足日常需求
  3. metabase,通过 SQL 直接变成统计报表

当然 low-code 的工具非常多,但是以上三个是自己实操用的最多的,也是觉得比较好用的.

至于开发语言,JAVA/PYTHON/Typescript/Go,都可以,现在语言层面其实个人认为已经都越来越统一,用我的观点话,基本语法不说之后,思想都是通的,核心几个点:

  1. 结构化->结构体/entity
  2. 依赖注入/AOP -> Dependency Injection
  3. Adaptor -> 调用方式转换
  4. 几个合适的框架 -> springboot/gin/jpa,这里想说下 spring boot data jpa 绝对比 mybatis 方便用,如果你文档真的仔细看的话

当然如果你需要做交互很好的页面,那你就需要更多了,
REACT/VUE/NEXTJS/ANTD 等等,当然最麻烦的其实可能是 CSS,不过 CSS 慢慢原子化之后类似于 tailwind 这种工具的出现再结合 AI 的能力,做前端一定会越来越简单一些,这些是看的见的。甚至有一些 screen-to-code 的工具现在也可以简单用用了,比如:

  1. v0
  2. screenshot-to-code

3. 积累的一些代码

后续关于怎么简单怎么来还有很多小结,会继续在补补


↙↙↙阅读原文可查看相关链接,并与作者交流