前言

1、测试开发具备的能力

测开工程师所开发的工具或者平台,一般都是为了提升业务测试的效率,具体工作场景如下:

用Jmeter 这样的压测工具做性能测试还是比较麻烦的,我们可以考虑做性能压测平台,进行一键压测,供测试内部使用非常方便

构造测试数据非常麻烦,编写了构造数据脚本,但是还是不太通用,所以可以开发Mock造数据平台,进行配置化构造数据

业务场景某些场景构造比较麻烦,可以搭建业务测试中台,用作场景构造并集成日常测试需要用到的功能,比如直播业务,我们开播时需要设置比较多的步骤,可以平台化为一键开播,减少测试时开播的耗时

日常做接口测试,一般使用Postman这样的工具,然后再结合接口自动化测试框架,编写接口自动化case,步骤繁琐,可以建设接口自动化测试平台,维护接口自动化case以及打通CI/CD,减少编写用例成本

日常做UI测试,也可以搭建云真机UI自动化测试平台,配置化进行UI自动化测试

搭建测试平台,需要使用哪些技术栈呢,和后端开发一样,也是基于Web开发框架,如Spring Boot、Flask、Django,因此学好编程语言Python很重要

2、测试开发学习路线

阶段一:入门

目标
该阶段是通过学习编程语言基础,能够了解编程语言的基本语法、使用规则,能编写出简单的程序,为后续学习自动化测试框架、Web开发框架做准备。

Python
知识点
  函数
  面向对象编程
  模块
  包
  异常处理
  文件操作
  迭代器/装饰器/生成器
  常用库(Requests、openpyxl)

阶段二、基础

目标
本阶段有两个部分,一个是掌握开发的基础知识,另一个是掌握测试的基础知识

在掌握了编程语言以后,还需要巩固计算机基础知识。

比如数据结构与算法,除此之外,操作系统、计算机网络、数据库、Linux这些计算机基础知识也是企业里常用到的知识 ,对你后面学习Web框架之类的知识都有帮助

对于测试基础,需要学会基础的用例设计方法、抓包等测试工具使用,这些都是做软件测试的必备技能

数据结构与算法

常用数据结构
  数组
  字符串
  队列
  栈
  链表
  集合
  哈希表
  二叉树


常用算法
  排序
  双指针
  查找
  分治
  动态规划
  递归
  回溯
  贪心
  位运算
  DFS
  BFS
  图


计算机网络
知识点
  网络分层模型
  HTTP / HTTPS 协议
  UDP / TCP 协议
  网络安全
  DNS域名解析
  ARP 地址解析协议
  Socket


操作系统
知识点
  进程、线程
  进程 / 线程间通讯方式
  进程调度算法
  进程 / 线程状态
  死锁
  内存管理


MySQL数据库
知识点
  MySQL 搭建
  SQL 语句(重点)
  索引
  事务
  锁机制
  设计数据库表


Linux
重点知识
  常用命令
  常用环境搭建
  Shell 脚本编程
  VIM 的使用


功能测试基础
知识点
  编写测试用例设计
  编写测试计划
  编写测试报告
  测试工具
  抓包工具
    Charles
    Fiddler
  接口测试工具
    Postman
  用例编写工具
    XMind
  缺陷Bug管理工具
    禅道
    Jira
  接口管理工具
    Yapi

阶段三:进阶

目标
该阶段分为开发进阶与测试进阶两个部分,开发进阶主要为Web开发框架学习,代码管理工具Git以及Redis缓存,为后续能开发测试平台做准备。

测试进阶则是包含了自动化测试部分,学完此部分应能利用自动化测试框架编写自动化case

Web开发框架
  python web框架
    Flask
    Django


Git
知识点
  工作区
  分支
  代码提交、推送、拉取、回退、重置
  分支操作
  代码合并、解决冲突


Redis缓存
知识点
  数据类型
  常用操作
  Java 操作 Redis
  主从模型搭建
  哨兵集群搭建
  日志持久化


自动化测试
知识点
  单元测试自动化
    TestNG:Java 测试框架
    JUnit:Java 测试框架
    Unittest:Python单元测试框架
  接口自动化
    Pytest(测试管理框架,可用来做接口自动化)
    Robotframework(测试管理框架,可用来做单元/接口/UI自动化)
  UI自动化
    Selenium
    Appium

阶段四:项目实战

目标
此阶段分为两个部分,开发实战和测试实战。
对于开发实战,希望大家能把前面所学的编程语言,数据库,Linux等知识,开发出测试平台,或者利用自动化测试框架,实现case编写、case执行以及生成测试报告一系列操作。

对于测试实战部分,可以通过利用测试工具,如Postman、Charles 完成接口测试,对于遇到的问题,能够通过日志分析,自主排查问题

学习建议
对于测试开发岗位的实战学习,最好能在公司真实环境内部进行,因为只有在公司内部才能体验到完整的项目流程。

如果说对于想转行做软件测试的同学实在没有项目经历,可以在阶段3 学习Web框架的时候,开发出一个平台,作为开发的项目经历(测试开发岗位有开发经历会更吃香)

知识点
  测试工具脚本(平台)开发
  监控平台
  接口自动化测试平台
  压测平台
  业务测试中台
  集成信息查询
  环境自动部署
  测试数据构造、mock数据
  测试实战
  
  客户端测试
    Web测试
    App测试
    
  服务端测试
    接口测试
    白盒测试
    Mock数据
    测试数据构造
    HTTP返回数据分析
    日志分析与问题排查

阶段五:持续学习

目标
持续学习,提升自己核心竞争力

学习方向
  测试效能提升
  CI/CD
  容器化
  测试左移/测试右移
  diff 测试
  AI 测试
  流量回放
  测试平台(工具)开发
  性能测试
  算法测试
  大数据测试
  专项测试
  稳定性测试
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生命的意义不在于站在终点,而是在于奋斗的过程。即使前路布满荆棘与坎坷,也要保持信念与勇气,坚持不懈地追逐梦想,因为只有奋斗才能书写辉煌的篇章!

不要让失败成为你放弃的理由,而是让它成为你前进的动力。奋斗的路上会有苦难与挫折,但只要坚定信念,持续努力,最终必将收获辉煌的成功!

相信自己的力量,勇敢地去追逐梦想,即使路途坎坷,不放弃也不退缩。拥有坚定的意志和毅力,你就能攀登高峰,创造属于自己的辉煌人生!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐