# 先收藏 测试同学的成长之道—from github


今天在 github 上看到一份测试同学的成长之路图谱，不敢独享，在这里给大家汇报一下。

![%E5%85%88%E6%94%B6%E8%97%8F%20%E6%B5%8B%E8%AF%95%E5%90%8C%E5%AD%A6%E7%9A%84%E6%88%90%E9%95%BF%E4%B9%8B%E9%81%93%E2%80%94from%20github%2047ddeb01df294765bd908d165758d602/roadmap.png](%E5%85%88%E6%94%B6%E8%97%8F%20%E6%B5%8B%E8%AF%95%E5%90%8C%E5%AD%A6%E7%9A%84%E6%88%90%E9%95%BF%E4%B9%8B%E9%81%93%E2%80%94from%20github%2047ddeb01df294765bd908d165758d602/roadmap.png)

## 基本概念

首先明确几个基本概念

- STLT: Software Testing Life Cycle 软件测试生命周期
- SDLC:Software Develop Life Cycle 软件开发生命周期
- TDD: Test Driven Development 测试驱动开发
- RPA: Robotic Process Automation 过程自动化

## 必须掌握的基础能力

### 测试策略

- 白盒测试
- 灰盒测试
- 黑盒测试

### 测试类型

- 功能测试
  - 单元测试
  - 冒烟测试
  - 集成测试
  - 回归测试
  - 健全性测试(sanity testing)
  - 用户接受性测试(uat)
- 非功能性测试
  - 负载测试
  - 压力测试
  - 安全测试
  - 性能测试

上面的负载，压力以及性能测试在国内其实不怎么分，可以统一看作是性能测试，只不过测试策略不同而已。

### STLC 管理工具

- qTest
- TestLink（常用）
- Zephyr
- Testrail

### 项目管理工具

- Jira(常用)
- Youtrack
- Trello
- Assembla

### 软件研发模型

- V 模型
- 敏捷模型：迭代式，较为常用
- 瀑布模型

## 深度手工测试技能

手工测试目前看来还是软件测试工程师的核心能力，优秀的手工测试能力可以让你的职业生涯发展更加平滑。

做一个数据驱动的测试人员可以节约你的时间精力并让你的质量改进行为更加有效。

### TDD

先写用例，开发的过程实际上就是不停的去实现这些用例。

### 测试计划定义

- 测试范围
- 测试资源
- 测试策略
- 如何进行测试

### 测试用例及场景(必须掌握)

测试用例设计是测试同学的主要工具，基本上就是把用户的行为转换为测试用例。

### 测试报告

上级领导最关注的部分。

包含了软件/系统在修改或者发布后的真实表现。

### 兼容性

作为测试人员，你必须在测试计划优先级之上具有兼容性，毕竟世界上唯一不变的就是变化。

### Verification & Validation

- Verification: 我们是用正确的方式去开发产品么？
- Validation: 我们是在开发正确的产品么？

### 一些建议

- 不要相信没有失败的测试代码。
- 了解软件测试，不盲目自动化； 我个人将自动化分类为处理冗余任务的有效方法。 确保正确设计您的测试标准，以后，您可以自动化实现先前的测试标准。
- 自动化不只是记录手动编写的测试用例用代码以一种易读和重用的方式翻译出来。
- 确保您的测试代码实际上正在测试某些东西。
- 您的测试代码不需要进行测试。
- http 状态中，200〜OK 并不总是可以的； 在测试过程中，不要仅依靠服务器状态，未经授权的 API 调用会获得 200 的状态，这会威胁到您的软件安全。

需要大图的同学请在对话框直接回复:线路图

###

