# 测试

> 所属公司：瑞来兹软件技术有限公司
> 更新日期：2026-05-04

---

## 一、角色定义

测试工程师（QA Engineer）是产品质量的守门员，通过功能测试、自动化测试、性能测试、安全测试等手段，保障软件交付质量，降低线上故障风险。

---

## 二、主要职责

### 2.1 测试规划
- 参与需求评审，从测试角度提出可测性建议
- 编写测试计划，明确测试范围、策略、资源
- 设计测试用例（功能、异常、边界、兼容性）
- 评估测试工作量，规划测试排期
- 定义测试准入/准出标准

### 2.2 功能测试
- 执行冒烟测试（Smoke Test），验证提测版本可用性
- 执行全量测试用例，记录测试结果
- 发现 Bug 并提交到缺陷管理平台，清晰描述复现步骤
- 回归测试：验证 Bug 修复，确保无新增问题
- 探索性测试：发现用例未覆盖的缺陷

### 2.3 自动化测试
- 搭建自动化测试框架（Selenium / Playwright / Appium）
- 编写接口自动化测试脚本（pytest / JMeter / Postman）
- 编写 UI 自动化测试脚本
- 集成到 CI/CD 流水线，实现自动化回归
- 维护自动化用例，保证脚本稳定性

### 2.4 性能测试
- 制定性能测试方案，确定压测场景与指标
- 使用 JMeter / Locust / k6 进行压力测试
- 分析性能瓶颈（CPU/内存/IO/数据库慢查询）
- 输出性能测试报告，给出优化建议
- 生产环境容量评估与容量规划

### 2.5 安全测试
- 执行安全扫描（OWASP Top 10）
- SQL 注入、XSS、CSRF 等常见漏洞检测
- API 接口权限验证、敏感数据泄露检查
- 配合第三方安全公司进行渗透测试

### 2.6 质量度量
- 统计缺陷密度、Bug 修复率、Bug 严重程度分布
- 分析线上故障，推动故障复盘
- 建立质量大盘，可视化质量趋势
- 推动质量左移，提升提测质量

---

## 三、常用平台与工具

| 分类 | 工具 | 用途 |
|------|------|------|
| **缺陷管理** | Jira | Bug 跟踪与管理 |
| | 禅道 | 国产缺陷管理 |
| | 飞书项目 | Bug 跟踪 |
| | Bugzilla / Mantis | 开源缺陷管理 |
| **测试管理** | TestRail | 测试用例管理 |
| | Xray（Jira 插件） | 测试管理+Jira集成 |
| | TestLink | 开源测试管理 |
| | PingCode | 测试用例与计划 |
| **接口测试** | Postman / Apifox | 手动接口调试 |
| | REST Assured | Java 接口自动化 |
| | pytest + requests | Python 接口自动化 |
| | JMeter | 接口压力测试 |
| **UI 自动化** | Selenium | Web 自动化 |
| | Playwright | 新一代 Web 自动化 |
| | Cypress | 前端 E2E 测试 |
| | Appium | 移动端自动化 |
| | Airtest | 移动端/游戏自动化 |
| **性能测试** | JMeter | 接口压力测试 |
| | Locust | Python 性能测试 |
| | k6 | 云原生性能测试 |
| | Gatling | Scala 性能测试 |
| | wrk / ab | 轻量 HTTP 压测 |
| **安全测试** | OWASP ZAP | Web 安全扫描 |
| | Burp Suite | 渗透测试 |
| | SQLMap | SQL 注入检测 |
| | Nmap | 端口扫描 |
| **抓包与调试** | Charles / Fiddler | HTTP 抓包 |
| | Proxyman | Mac 代理调试 |
| | Whistle | 跨平台抓包 |
| **数据库** | Navicat / DBeaver | 数据库管理 |
| | RedisInsight | Redis 可视化 |
| **CI/CD 集成** | Jenkins / GitLab CI / GitHub Actions | 自动化测试流水线 |
| | Allure | 测试报告可视化 |

---

## 四、测试流程

```
需求评审 → 测试计划 → 用例设计 → 用例评审 → 冒烟测试 → 功能测试 → 回归测试 → 验收测试 → 上线
    │         │         │         │         │         │         │         │         │
    ▼         ▼         ▼         ▼         ▼         ▼         ▼         ▼         ▼
  提出可测  测试策略  用例库    团队评审  版本准入  执行用例   Bug验证   UAT参与   测试报告
  性建议   资源排期   TestRail  对齐标准  快速验证  Bug提交   全量回归  验收签字   质量评估
```

---

## 五、测试策略分层（测试金字塔）

```
            ╱  〰  ╲
          ╱    E2E    ╲          少量端到端测试（全链路验证）
        ╱──────────────╲
      ╱    集成测试      ╲        中量集成测试（模块联调、API）
    ╱──────────────────╲
  ╱      单元测试         ╲       大量单元测试（函数/类级别）
╱──────────────────────────╲
       成本 ⬆️ ｜ 速度 ⬇️
```

- **单元测试**：占 70%，开发编写，CI 自动运行
- **接口/集成测试**：占 20%，测试+开发共同维护
- **UI/E2E 测试**：占 10%，覆盖核心业务主流程

---

## 六、能力模型

| 级别 | 能力要求 |
|------|----------|
| **初级** | 执行功能测试，编写测试用例，提交 Bug |
| **中级** | 独立负责模块测试，编写接口自动化脚本，性能测试执行 |
| **高级** | 搭建自动化框架，主导性能/安全测试，制定测试策略 |
| **资深** | 全链路质量体系搭建，测试左移/右移，团队赋能 |

| 通用能力 | 要求 |
|----------|------|
| 测试方法论 | 黑盒/白盒/灰盒、等价类、边界值、场景法 |
| 编程能力 | Python/Java 至少一种，能写自动化脚本 |
| SQL | 复杂查询、数据验证、造数据 |
| Linux | 查看日志、部署服务、排查问题 |
| 网络协议 | HTTP/HTTPS、TCP/IP、抓包分析 |
| 业务理解 | 深度理解业务场景，设计有效用例 |
| 细心与耐心 | 不放过任何一个异常现象 |

---

## 七、产出物清单

| 产出物 | 交付节点 |
|--------|----------|
| 测试计划 | 需求评审后 |
| 测试用例 | 编码阶段 |
| 冒烟测试报告 | 提测后 |
| Bug 报告 | 测试过程中 |
| 功能测试报告 | 测试完成 |
| 性能测试报告 | 性能测试后 |
| 安全测试报告 | 安全测试后 |
| 自动化测试脚本 | 持续维护 |
| 质量月报 | 每月 |
