优秀的测试工程师应该具备宽广的知识面,设计出有的放矢的测试用例,保证整个软件产品的质量
开发工程师是“深度遍历”,测试工程师是“广度遍历”
- 操作系统,数据库,中间件,脚本开发,版本管理工具与策略,CI/CD流水线设计,F5负载均衡技术,抓包工具,浏览器Developer Tool
- 大到网站架构,容器技术,微服务架构,服务网格,DevOps,云计算,大数据,人工智能和区块链技术等
一、网站架构的核心知识
- 如果想要做好互联网产品功能测试以外的其他测试,比如性能测试、稳定性测试、全链路压测、故障切换测试、动态集群容量伸缩测试 服务降级测试和安全渗透测试等,必须掌握网站的架构知识
- 比如不清楚Memcached这类分布式缓存集群的应用场景和基本原理,不清楚缓存击穿、缓存雪崩、缓存预热 缓存集群扩容局限性等问题,设计不出针对缓存系统特有的测试用例
- 再比如,对网站的可伸缩性架构设计不了解,不清楚应用服务器的各种负载均衡实现的基本原理,不了解数据库的读写分离技术,无法完成诸如故障切换 动态集群容量伸缩 服务降级等相关的测试 同时对于性能测试和全链路压测过程中可能遇到的各种瓶颈 也会很难定位和调整
- 掌握网站架构的核心知识,至少需要理解架构相关的基本知识以及核心原理
二、容器技术
- 容器技术在轻量化程度,资源占用运行效率等方面有压倒性的优势
- Selenium Grid提供官方Docker版本,可以直接以容器的方式建立测试执行环境
- 基于Docker的Selenium Grid大大减轻了批量虚拟机节点上Web Driver、浏览器版本和守护者进程版本等升级维护的工作量
- 可以通过Docker Image的形式提供某些测试工具,而不是以传统的安装包或者JAR文件的形式,可以实现测试工具开箱即用
https://docs.docker.com/get-started/
三、云计算技术
- 互联网企业都在尝试上云?
- 必须理解服务在云端部署的技术细节才能更好的完成测试任务
- 测试服务也在走向云端
- 测试执行私有云?
- 如何使用云提供的基础设施以及服务
- 建议采用的云方案的官方文档,结合实际案例学习
- 尝试用云服务去部署自己的应用,结合云平台的各类服务和应用集成
- 建立自己的集群,体验集群规模的动态收缩与扩展
- 尝试在云平台上直接使用Docker部署发布你的服务
- 尝试在云端建立自己的Selenium Grid集群,Selenium Grid已经发布对应的Docker版本镜像,可以非常方便地在云平台上搭建自己的Selenium Grid
四、DevOps思维
- 强调开发、测试和运维等组织团队高效协作和沟通,提升业务的持续高质量交付
- 表现形式可以是工具、方法和流水线,更深层次是思想方法
- 不是简单学习几款工具,而是将工具有机结合,提供高效的CI/CD流水线
- 先深入掌握Jenkins类工具,熟练应用和组合各种plugin完成灵活高效的流水线搭建
- 不断在流水线中添加工具
五、前端开发工具
- 更高效做前端的测试,更容易发现潜在缺陷
- 还可以自己构建测试页面,完成各类前端组件的精细化测试,提高测试覆盖率和效率