软件测试 的体系化学习框架,涵盖测试理论、方法论、工具链及行业最佳实践,适用于功能测试、自动化测试和性能测试工程师:
一、测试基础(1个月)
1. 测试分类
| 测试类型 | 测试目标 | 典型技术 |
|---|---|---|
| 功能测试 | 验证功能是否符合需求 | 等价类划分、边界值分析 |
| 性能测试 | 评估系统吞吐量、响应时间 | JMeter、LoadRunner |
| 安全测试 | 发现安全漏洞(如SQL注入) | OWASP ZAP、Burp Suite |
| 兼容性测试 | 多浏览器/设备适配 | BrowserStack、Selenium Grid |
2. 测试流程
mermaid
graph TD
A[需求分析] --> B[测试计划]
B --> C[测试用例设计]
C --> D[测试执行]
D --> E{缺陷管理}
E -->|发现缺陷| F[缺陷提交]
E -->|通过| G[测试报告]
F --> D核心文档:
- 测试计划(Test Plan)
- 测试用例(Test Case)
- 缺陷报告(Bug Report)
二、功能测试(1-2个月)
1. 黑盒测试技术
- 等价类划分:有效/无效输入分类
- 边界值分析:测试输入范围的边缘值
- 决策表测试:多条件组合覆盖
- 状态转换测试:系统状态迁移验证
用例设计工具:TestLink、XMind
2. 测试管理工具
- Jira:需求-用例-缺陷全链路追踪
- TestRail:测试用例管理与执行记录
实战项目:为电商系统的购物车模块设计测试用例。
三、自动化测试(2-3个月)
1. Web 自动化
| 工具 | 语言支持 | 核心优势 |
|---|---|---|
| Selenium | Java/Python/C# | 跨浏览器支持、社区生态强大 |
| Cypress | JavaScript | 实时重载、调试便捷 |
| Playwright | 多语言(Python/Java等) | 支持现代Web技术(PWA、WebSocket) |
框架设计:
- Page Object 模式(PO):分离页面元素与测试逻辑
- 数据驱动测试(DDT):外部数据(Excel/JSON)驱动用例
2. 移动端自动化
- Android:Espresso(原生)、Appium(跨平台)
- iOS:XCUITest(原生)、Appium
3. API 自动化
- 工具:Postman → 脚本化(Newman CLI)
- 框架:
- Python:
pytest+requests - Java:RestAssured + TestNG
- Python:
实战项目:搭建一个基于 Selenium 的电商平台自动化测试框架。
四、性能测试(1-2个月)
1. 核心指标
- 吞吐量(TPS/RPS)
- 响应时间(平均/90分位)
- 错误率
- 资源利用率(CPU/内存/网络)
2. 工具链
| 工具 | 协议支持 | 适用场景 |
|---|---|---|
| JMeter | HTTP/HTTPS、JDBC | Web 应用、数据库压测 |
| Gatling | HTTP/WebSocket | 高并发模拟、Scala DSL |
| Locust | 自定义协议 | 分布式压测、Python 脚本 |
3. 性能分析
- 前端性能:Chrome DevTools(Lighthouse)
- 后端性能:
- Java:Arthas(线上诊断)
- 数据库:慢查询日志、执行计划优化
实战项目:使用 JMeter 对 REST API 进行容量规划测试。
五、测试进阶(持续学习)
1. 测试左移与右移
- 左移:单元测试、代码评审、静态分析(SonarQube)
- 右移:A/B测试、混沌工程(Chaos Engineering)
2. 持续测试(CT)
- CI/CD 集成:mermaid
graph LR A[代码提交] --> B[自动化测试] B --> C{通过?} C -->|Yes| D[构建镜像] C -->|No| E[通知团队]