1. 软件测试工程师发展规划路线
1.1. 测试基础
了解测试的基础技能, 掌握主流缺陷管理工具的使用, 熟练测试环境的操作与运维
爱码小士 | 测试基础 |
---|
测试计划 / 测试用例 | 黑盒用例设计等价类 / 边界值 / 场景分析 / 判定表 / 因果图分析 / 错误推断 | 缺陷 | 缺陷生命周期 / 缺陷分级 / 缺陷管理工具禅道 / Jira | 数据库 | Mysql / 环境搭建 / 增删改查 / 关联查询 / 存储过程 | Linux | 系统搭建 / 基本指令 / 日志分析 / 环境搭建 |
1.2. Linux 必备知识
Linux 作为现在最流行的软件环境系统, 一定需要掌握, 目前的招聘要求都需要有 Linux 能力。
爱码小士 | Linux 必备知识 |
---|
Linux 系统简介与准备 | Linux 作为现在最流行的软件环境系统, 一定得会, 从 CenterOS 版本系统进行介绍, 安装, 目录结构等基础内容学起, 也为后续自建测试环境准备。 | Linux 远程工具 Xshell | 详细介绍如何入门使用 Linux, 并进行常规的远程管理, 文件传输操作, 涉及其中的工具 Xshell, Xftp | Linux 文件属性与管理 | Linux 文件, 目录基本属性, 文件操作, 文件管理, 目录操作, 目录管理。切忌自毁行为操作, 如何预防意外操作 | Linux 用户与组管理 | 如何在 Linux 中新增, 删除, 修改用户与组, 并赋予相应权限, 不再因为权限问题而卡壳 | Linux 文件编辑器 | Linux 文件编辑器 vi 的使用, 命令模式, 输入模式, 操作实例, 快捷键, 管道命令, 使用心得。在一个没有图形化的系统下到底如何编辑的呢? | Linux 常用系统设置 | 网络设置, 环境变量, 磁盘管理, 时间设置, 系统资源, 防火墙, 应有尽有, 不用担心毫无头绪。 | Linux 安装软件 | Linux 安装命令, 以及如何通过 tar, gz 等网络上下载的安装文件进行安装, 如 MySQL 数据库安装。 | Linux Docker 容器 | Docker 容器技术讲解, image 镜像管理, 仓库, 容器创建, 启动, 操作, 镜像打包, 赶上行业流行技术 |
1.3. Shell 脚本
掌握 Shell 脚本: 包括 Shell 基础与运用、Shell 逻辑控制、Shell 逻辑函数
爱码小士 | Shell |
---|
Linux Shell 基础与应用 | shell 脚本编程介绍, 环境类型, 变量, 参数, 运算符, 数组的使用, 零距离接触脚本 | Linux Shell 逻辑控制 | shell 逻辑应用, test 命令, 流程控制, 数据输入与输出, 脚本逻辑不再单调, 玩出花样 | Linux Shell 函数 | shell 脚本函数写法, 文件互相调用, 脚本实战应用, 懂得开发, 测试, 运维都可以做什么 | Windows 脚本批处理 | Linux 玩够了, 再来看看 Windows 常规命令用法, 批处理脚本写法, 实战应用, 并不是到哪都是 Linux, Windows 脚本也是常用脚本之一, 看到这里可能你就用的 Windows |
1.4. 互联网程序原理
自动化必经之路: 前端开发基础知识以及互联网网络必备知识四、互联网程序原理
爱码小士 | 互联网程序原理 |
---|
Web 前端开发基础 | HTML、CSS 基本内容学习。为什么测试课程有开发? 对不起, 如果不会, 自动化可能不欢迎, 很多自动化测试问题都出自于开发基础 | Web 前端开发脚本 | JavaScript 最主流的脚本学习, 同样的, 这也会在自动化测试中涉及, 在一些工具中其实也经常用到动态脚本, 也是 JavaScript 语言 | 开发者调试工具测试应用 | 虽然浏览器的 F12 被命名为开发者工具, 但实际上测试不管在功能测试还是自动化测试中, 都起到了很关键的作用。如解析 HTML, 定位元素, 调试脚本, 监控网络抓包等等 | 互联网程序网络架构 | 通过网络架构详细理解互联网程序的诞生, 逻辑细节, 互联网通讯原理又是如何将数据传递到其他计算机的, TCP, UCP, HTTP, 等等协议的关系又是什么。 | HTTP 协议数据结构分析 | 完整解析 HTTP 协议数据结构, 包括 Request、Response 数据格式, Header 的定义和用法各种状态代表什么, 如何辨别错误。分析协议中参数的位置, rest 结构, 各种常见的 body 数据形式, 解析方式, 常见数据解析错误的原因。 | Cookie 与 Session 机制 | 解读 Cookie 到底是什么, 和 Session 存在什么样的关系, 如何测试 Cookie 与 Session, 需要注意什么 |
1.5. MySQL 数据库
软件测试工程师必备 MySQL 数据库知识, 不仅仅停留在基本的 “增删改查”。
爱码小士 | MySQL 数据库 |
---|
MySQL 数据库测试应用 | MySQL 环境搭建, 客户端 Navicat 的基本使用与数据操作, 学习并巩固基本的 SQL 语法, 增删改查缺一不可, 掌握各种条件的使用方法 | MySQL 高级查询 | 查询升级, 掌握多表查询, 子查询, 查询分组, 统计函数的使用, 并对经典面试题进行学习与分析 | MySQL 自定义函数 | 既然有内置函数, 当然也不缺自定义函数的位置, 也是经常会使用到的, 这就好比任意一种开发语言一样都离不开函数的定义与使用 | MySQL 存储过程 SP | 数据库必不可少的存储过程, 通常也叫 SP, 如何定义? 如何测试? 怎么样使用更安全, 测试到底用存储过程还能做什么更多便于测试的内容 | MySQL 事物与编程 | 数据库事务使用案例, 索引的原理与使用, 数据库 SQL 编程在测试中的应用, 如何用其快速精准的产生大量指定的测试数据 |
1.6. 抓包工具
Fiddler, Wireshark, Sniffer, Tcpdump 各种抓包工具适用于各种项目, 总有一款适合你的
爱码小士 | 抓包工具 |
---|
抓包原理与方式 | 只有了解抓包的原理, 才能真正去用好一个适合的工具, 选择合适的方向和方法, 否则都是徒劳的 | 抓包工具选择 | 抓包工具的分类与功效, 什么样的项目适合哪种工具, 如何去辨别工具的优势 | Fiddler 基础功能 | 作为专业的 HTTP 体系的抓包工具, 详细介绍其工具原理, 如何过滤数据, 如何搜索想要的数据, 如何对 web, 非 web, 手机, HTTPS 协议等各种环境进行抓包 | Fiddler 高级功能 | 学会使用其进行接口测试, 断电, 脚本等方式进行数据的修改, 替换, 模拟数据进行接口 Mock 测试, 创建自己定义的菜单功能 | Wireshark | 与其说是抓包, 更是一种抓包后的分析工具, 在各个系统下利用其它与系统一体化的抓包工具进行数据抓取整理并展示, 有着强大的过滤和分析功能 | Sniffer | 黑科技抓包工具, 有多种版本, 非常专业的抓包工具 | Tcpdump | Linux、Android 系列的系统中的抓包插件神器 |
1.7. 接口测试工具
接口测试神器, 你绕不开的强大工具: Jmeter。小巧灵活: Postman
爱码小士 | 接口测试工具 |
---|
Jmeter 接口测试入门 | Jmeter 简介, 环境准备, 目录结构介绍 , 如何录制脚本, 以及基础组件的使用, 线程、作用域、HTTP 请求、定时器、断言等等 | Jmeter 接口测试进阶使用 | Jmeter 逻辑控制、前置处理器、后置处理器、监视器、结果树, 如何参数化、正则表达式关联、事务、检查点等等。并带领大家对带有 token 等动态数据的项目进行实战演练 | Jmeter 接口测试高级功能 | Jmeter 脚本思考时间、随机时间、线程启动间隔、并发集合点、联机远程调用, webservice、websocket、jdbc、命令调用等等 | Postman 接口测试工具使用 | 行业标准 HTTP、rest 接口测试神器, 基本请求、分组保存、动态变量、脚本、数据关联、参数化、自动断言、批量运行、持续集成。思路类似其他接口工具, 避免泛滥学习 |
1.8. Web 自动化测试 Java&Python
了解自动化的目的, 熟练掌握 TestNG&unittest 自动化框架, 以及断言与日志处理
爱码小士 | Web 自动化测试 Java&Python |
---|
自动化框架思路引导 | 我们做自动化到底为了什么? 节省人力、加快速度、还是让机器代替手动、还是提升自我。应该如何建立思路, 而非无脑进坑任机器摆布 | Java&Python3 开发环境及基本语法 | Java&Python 开发环境搭建, 基础语法入门, 让不会代码的以最快速度入门, 方便适应后续自动化测试开发内容学习, 代码够用即可, 并不是学得越多越好 | Java&Python3 集合类型与面向对象开发 | Java&Python 各种基本类型、集合数据类型的理解与操作, 循环语句、判断语句, 面向对象的开发, 函数的使用, 类的使用 | Selenium3 环境与浏览器驱动配置 | 基于 selenium3 的 web 自动化环境搭建, 正确的浏览器配置, 不再为起不了浏览器而烦恼。支持 IE、Firefox、Chrome 等等 | Selenium3 多种定位及动态操作 | selenium3 常见定位方法, 属性和值的获取, 如何动态判断不一定存在的元素, 复杂的网页结构, 需要多步骤操作的元素等等 | 特殊情况处理 (js、特殊控件等) | selenium3 自动化测试中, 常见的特殊情况处理, 如日期、控件、智能等待、文件上传下载、网页嵌套结构, 各种弹窗的处理方式, cookie 处理, JavaScript 脚本调用等 | TestNG&unittest 自动化框架使用 | Python unittest、Java TestNG 自动化框架的使用, 环境处理、基本使用逻辑, 数据驱动模型, 数据库数据载入等 | 自动化框架断言与日志处理 | 自动化中最重要的是什么? 作为测试当然是断言, 没有断言的自动化毫无用处, 如何展示日志与结果是自动化测试的根本 | PageObject 框架设计模式 | PageObject 框架设计模式, 到底是做什么的? 如何更好的快速管理控件, 从此做起 |
1.9. 接口与移动端自动化
专业接口调用、测试解决方案。组建完整的 web 和接口自动化框架, Appium 整体使用
爱码小士 | 接口与移动端自动化 |
---|
接口自动化方案 Requests | Python Requests、Java HTTPclient 接口框架, 都是专业的接口调用、测试的解决方案, 使用简单快速, 结合工具的使用方式和功能, 快速上手并对其操作, 解决其中的疑难杂症 | web + 自动化框架整合 | 自动化测试是相通的, 如何将 web 与接口、甚至更多的测试类型和方向结合起来, 组成完整的自动化框架 | Appium 环境搭建 | Appium 环境相对复杂, 针对 Android 系统进行完整的环境搭建演练, 解决环境上的问题, 并进行基本的自动化操作 | Appium 自动化实战与框架结合 | Appium 整体使用与 web 自动化类似, 引导使用典型功能, 并针对一款 APP 进行实战操作 |
1.10. 敏捷测试 & TestOps 构建
揭开 TestOps 的神秘面纱, 持续集成 Jenkins 框架烂熟于心
爱码小士 | 敏捷测试 & TestOps 构建 |
---|
构建敏捷测试运维架构体系 | 敏捷测试是什么? 为什么需要敏捷, 行业都提到的 devops 又是什么? TestOps 能做什么 | 持续集成 Jenkins 框架实战 | 持续集成最常见的一套框架, 介绍 Jenkins 操作、权限、系统管理等, 常用构建与运行实例讲解 | 静态扫描测试 Sonar | 一款自动化的代码扫描工具, 便捷式快速扫描代码中的问题, 做到提前发现, 统一规范, 自动化中的代码测试神器 |
1.11. 性能测试 & 安全测试
软件测试的彼岸: 性能测试和安全测试, 选个方向努力爬坑吧!
爱码小士 | 测试基础 |
---|
性能测试学习路线 | 如何学习性能测试, 性能测试到底该怎么学习, 使用什么工具? 工具并不代表性能, 接口的基础对性能测试非常重要, 而工具只是辅助, 更多的是思路和策略。你不会并不是分析而是准备阶段 | loadrunner 脱离浏览器录制专题 | IE 无法启动被测网站? 打不开浏览器? 程序无法在浏览器中被打开? 这些都没关系, 还是一样能录制, 但录制是偷懒专用的, 对于学习有一定的辅助作用, 也会带入无法脱离的坑 | 性能测试工具操作实践 | loadrunner、jmeter, 有了前面的基础使用, 看懂脚本不是问题, 带上关键的参数化、动态数据关联、事物、日志, 大部分的脚本都可以搞定进行实践 | 系统监控方案实施 | 工具自带监控? 系统监控? JVM 内部监控? 数据库监控? 各种监控的意义何在, 如何在各种情况下精准监控数据 | 安全测试起源与工具介绍 | 应该如何进行安全测试, 安全测试都有哪些分类? 都会用到什么样的工具, 各自的作用又是什么, 如 web 漏洞扫描, 端口扫描, 系统扫描等 | web 安全测试手工实战 | 接口测试在安全中的作用, 不会手动的安全测试, 那就永远无法理解自动化以后产出的结果 | 安全扫描工具测试实践 | 实际介绍以及使用 APPscan、awvs 等专业安全扫描工具 | 企业安全建设 (SDLC) | 企业应该如何进行安全建设, 制定更安全的软件生命周期。从哪些方面进行着手 |
|