记录从单纯的测试或者技术小白如何一步步进阶成为一名合格的测试开发工程师
Tips
文中如果有不当的地方欢迎大家指正
有同学对某些点感兴趣的或者有想了解某些领域相关知识的欢迎留言和投稿
以下为大家介绍在每一个阶段需要掌握的基础知识以及对应的实践文档
1 测试方法与理论
名称 |
相关知识点 |
1.1 软件开发生命周期 |
SCRUM/XP、持续集成/持续交付/DevOps |
1.2 测试流程体系 |
传统测试流程、测试左移、测试右移 |
1.3 测试技术体系 |
分层测试体系、单元测试、UI 测试、接口测试、白盒测试 |
1.4 测试经典书籍 |
全程软件测试、探索式测试、持续交付、Google 测试之道、不测的秘密 |
2 Shell脚本相关
名称 |
相关知识点 |
2.1 Bash |
pipe |
2.2 Linux三剑客 |
grep、awk、sed |
2.3 Linux基本命令 |
find、netstat、ps |
2.4 Android基本命令 |
adb、dumpsys、am、UIAutomator、instruments |
2.5 iOS基本命令 |
libimobiledevice |
3 数据库相关
名称 |
相关知识点 |
3.1 关系型数据库 |
mysql |
3.2 非关系型数据库 |
redis、mongodb、neo4j |
4 git 代码管理
名称 |
相关知识点 |
4.1 常用命令 |
commit、merge、rebase、push |
4.2 分支管理 |
gitflow流程简介 |
5 Python 编程语言与测试框架
名称 |
相关知识点 |
5.1 Python环境搭建、多版本安装 |
Mac/Windows环境搭建、IDE日常使用 |
5.2 基本数据类型与操作 |
python 的数字、字符串、列表的使用 |
5.3 控制流语法 |
条件、循环等表达式与流程控制 |
5.4 常用数据结构 |
列表、元组、集合、词典与常用便捷表达式 |
5.5 模块 |
项目目录结构、模块定义、文件引用 |
5.6 输入与输出 |
字面量打印与格式化、文件读取、json 格式转换 |
5.7 错误与异常 |
语法错误与定位、异常捕获、异常处理、自定义异常 |
5.8 面向对象编程 |
类定义、方法定义、类变量、实例引用、实例变量 |
5.9 标准库 |
os 与文件处理、科学计算、网络访问、日期与时间等处理 |
5.10 多线程处理 |
进程与多线程处理,log 处理 |
5.11 第三方库 |
pytest、requests |
5.12 pip 依赖管理与虚拟环境 |
第三方的依赖管理与项目管理 |
5.13 unittest |
python 自带单元测试框架 |
5.14 pytest |
python 最流行的全能型测试框架 |
6 Web 自动化测试
名称 |
相关知识点 |
6.1 selenium |
selenium简介及实战 |
6.2 page object |
page object 设计模式详解及实战 |
7 移动端 app 自动化测试
名称 |
相关知识点 |
7.1 appium |
appium 基础知识及实战 |
7.2 appium使用技巧 |
元素定位、弹窗识别、webview测试等 |
8 常用开源测试平台
名称 |
相关知识点 |
8.1 monkey |
android 健壮性与压力测试工具 monkey 的进阶使用 |
8.2 maxim |
android 遍历工具 |
8.3 appcrawler |
多平台自动遍历测试工具 |
8.4 STF |
多设备管理平台 STF 打造自己的智能设备实验室管理上百台设备 |
8.5 Selenium Grid |
跨平台设备管理方案 Selenium Grid 构建支持 android、ios、web 的多架构自动化测试平台 |
9 客户端专项测试
名称 |
相关知识点 |
9.1 启动性能分析 |
冷启动、热启动、暖启动、首屏启动指标分析 |
9.2 接口性能分析 |
dns、http/https 的接口性能分析 |
9.3 Webview性能分析 |
hybrid app 的性能分析 |
9.4 H5性能分析 |
手机浏览器的性能数据获取与分析 |
9.5 卡顿分析 |
过度绘制、冰冻帧、卡顿数据 |
9.6 系统资源分析 |
cpu 统计、mem 统计、网络流量分析 |
9.7 耗电量测试 |
使用 batterystats 与 battery historian 完成耗电量的基准分析 |
9.8 弱网测试 |
模拟弱网、丢包、延迟、不可访问等多种条件下的应用体验 |
9.9 健壮性测试 |
使用 monkey maxim 完成 app 的健壮性测试 |
9.10 兼容性测试 |
使用 appcrawler 完成遍历与兼容性分析 |
9.11 代码覆盖率 |
jacoco 代码覆盖率 |
10 服务端接口测试
名称 |
相关知识点 |
10.1 常见接口协议 |
tcp/udp/http/restful/dubbo |
10.2 抓包分析 tcp 协议 |
使用 tcpdump 与 wireshark 分析三次握手与四次挥手流程 |
10.3 postman/curl |
postman及curl简介及使用 |
10.4 常用代理工具 |
charles、burpsuite、mitmproxy、anyproxy |
10.5 http/https 抓包分析 |
ssl 证书设置与 https 抓包 |
10.6 http 协议讲解 |
状态码、header、请求与响应的格式分析 |
10.7 get、post |
get 与 post 的本质区别与具体抓包解读 |
10.8 session、cookie、token |
了解 session、cookie、token |
11 服务端接口自动化测试
名称 |
相关知识点 |
11.1 接口测试框架 |
requests |
11.2 接口请求构造 |
get/post/put/head 等 http 请求构造 |
11.3 接口测试断言 |
状态码、返回内容等断言 |
11.4 json/xml 请求 |
优雅的发送 json、xml 请求 |
11.5 json/xml 响应断言 |
json path、xpath 进行断言 |
11.6 schema 断言 |
大量响应数据字段的格式断言 |
11.7 header cookie |
header 自定义与 cookie 复用 |
11.8 认证体系 |
http basic、oauth2 等认证体系的测试 |
12 服务端性能测试
名称 |
相关知识点 |
12.1 JMeter |
JMeter 实战 |
12.2 性能监控系统 |
influxdb、grafana、prometheus 实战 |
13 接口安全测试
名称 |
相关知识点 |
13.1 服务端安全测试体系 |
详解 OWASP 的 top10 安全漏洞与安全防护体系 |
13.2 安全测试演练环境 |
搭建安全测试演练环境实操常见安全漏洞 |
13.3 常见接口安全测试工具 |
zap、burpsuite、sqlmap 等知名安全测试工具介绍 |
13.4 BurpSuite |
黑客与白帽子最常用的安全测试工具详解 |
13.5 命令注入漏洞 |
命令注入漏洞原理与实操 |
13.6 sql 注入漏洞 |
sql 注入、sql 盲注等漏洞的原理介绍与实操 |
13.7 xss 漏洞 |
xss 多种漏洞的原理介绍与实操 |
13.8 csrf 漏洞 |
csrf 漏洞原理介绍与实操 |
14 docker 容器技术
名称 |
相关知识点 |
14.1 docker基础 |
技术讲解与常用命令实战 |
14.2 构建可发布的镜像 |
使用 docker 搭建测试用例管理平台testlink |
14.3 搭建持续集成平台 |
使用 docker 搭建持续集成管理平台Jenkins |
14.4 搭建 Web 服务器 |
搭建基于 nginx 的网站 |
15 持续集成
名称 |
相关知识点 |
15.1 持续集成体系介绍 |
持续集成的核心概念 |
15.2 UI 自动化测试集成实战 |
将 selenium、appium 的用例放入持续集成 |
15.3 接口测试集成实战 |
将接口测试用例放入持续集成管理 |
15.4 持续集成体系构建 |
代码变更后的全自动测试流程体系构建 |
16 持续交付/DevOps
名称 |
相关知识点 |
16.1 基础内容 |
基于 docker 与 blue ocean 构建企业的持续交付体系 |
16.2 进阶 |
基于 jenkins api 实现运维与测试的协同自动化 |
17 测试左移
名称 |
相关知识点 |
17.1 Android |
Jacoco、FindBugs、PMD、CheckStyle、infer、lint |
17.2 Java |
Sonar、ASM |
17.3 iOS |
oclint、 infer |
18 测试右移
名称 |
相关知识点 |
18.1 测试右移介绍 |
测试右移的价值与实践体系 |
18.2 logstash |
数据采集与传输 |
18.3 elastic search |
elastic search 的索引、文档、查询语法基本概念讲解 |
18.4 kibana |
ibana 经典的分析方法与图表使用 |