聊聊测试团队的基础架构建设
大概20年这个时候,听过公司一位架构师的分享,他提到了基础架构团队的定位和主要产出,即为整个技术团队提供所有研发活动开展所必须的基础设施。
关于技术基础设施的目标,他定义了如下三点:
- 成为全站稳定运行的基石
- 成为业务高速发展的保障
- 成为大家值得依赖的伙伴
换个角度,从测试工程师的视角来看,测试团队的基础架构设施包含哪些?它们的目标又是什么?
这篇文章,我想结合自己的经验,谈谈我的一些想法。
基础技术设施的目标
从软件迭代交付的整个生命周期来看,测试要做的工作几乎贯穿了整个生命周期。
那么测试团队的基础架构设施所产生的作用,从我的角度来说,应该是如下几点:
保障测试活动高效率开展
测试团队的基础架构设施,首先一定是在整个生命周期内,对测试活动的开展提供高效率的保障。
通过流程机制确保活动开展过程的正确和合理性,通过工具平台提高测试活动开展过程的效率,通过专业的方法为测试活动开展提供指导。
支撑研发活动高质量进行
从软件工程角度来说,测试属于软件研发(开发、测试、运维)的一环。
因此测试基础架构设施除了保障测试活动开展以外,还要对软件研发过程提供支撑。比如:质量门禁(准入准出标准)、质量内建(质量保障文化)、测试左移右移。
辅助线上业务高可用运营
有句话这么说:测试环境的问题不是问题,线上问题才是问题。
测试的基础架构设施,除了保障线下测试活动的开展,还要通过线上质量巡检、质量度量和质量运营,保障线上服务的稳定性,对线上业务的高可用运营提供辅助作用。
测试基础技术设施清单
技术同学对于整个技术团队的基础架构设施,应该都比较熟悉,常见的有:
注册中心:Nacos、Consul、Zookeeper;
配置中心:Nacos、Apollo、Spring Cloud Config;
消息队列:Kafka、RocketMQ、RabbitMQ;
监控工具:Zabbix、Skywalking、Prometheus;
任务调度:Airflow,Azkaban、xxl-job;
代码管理:Github、Gitee、Azure Devops;
数据持久化:JPA、Mybatis、JDBC Template;
到这里打住!整个技术团队所需要的基础架构设施是覆盖多个方面的,复杂度肯定很高。
但对于测试团队来说,基础架构设施就相对简单。我个人认为,测试团队的基础架构设施,主要是如下三个方面:
设施类型 |
详细分类 |
举例 |
流程规范 |
评审流程 |
需求评审、方案评审、用例评审、变更评审 |
提测流程 |
code review、code diff、CI构建、冒烟 |
|
测试流程 |
单元测试、集成测试、回归测试 |
|
上线流程 |
变更检查、线上验证 |
|
应急响应 |
bugfix、故障跟进、线上巡检 |
|
工具平台 |
需求管理 |
Jira、禅道、PingCode |
用例管理 |
Jira、禅道、PingCode |
|
bug管理 |
Jira、禅道、PingCode |
|
造数工具 |
自建 |
|
度量平台 |
自建 |
|
知识库管理 |
语雀、飞书文档、Confluence |
|
自动化工具 |
Appium、Cypress、PlayWright |
|
性能测试工具 |
Jmeter、Locust、Ngrinder |
|
方法策略 |
用例设计 |
\ |
单元测试 |
\ |
|
性能测试 |
\ |
|
接口测试 |
\ |
|
自动化测试 |
\ |
注意事项:
- 需求&用例&bug之间关联性很高,因此相关管理工具一般是技术团队的管理者选型决定;
- 造数据和度量工具,暂时没有好用的,一般都是测试团队根据团队自身的需求自研搭建;
- 用例设计方法,各种测试方法和策略,都是通用的,根据测试团队需求选择合适的即可;
- 自动化测试并不是单独的选择工具或者搭建一个平台就行,而已需要融入到CICD流水线中;
- 性能测试并非选个工具压测出报告就完事,它既可以融入CICD流水线,也是容量保障的重要手段。