# 测试工作流程指南

## 概述

本指南详细说明如何使用 tester-workflow 进行完整的测试工作，从需求分析到测试用例生成和评审。

---

## 工作流程总览

```
需求阶段 → 设计阶段 → 用例生成 → 用例评审 → 测试执行
```

---

## 阶段1：需求分析

### 何时使用
- 收到需求文档
- 需要从测试角度分析需求
- 准备测试用例设计

### 使用的 Skill
**analyze-requirements**

位置：`included-skills/analyze-requirements/`

### 输入材料
- 需求文档（必须）
- 原型图（可选）
- 业务规则说明（可选）

### 执行步骤

1. **准备材料**
   - 收集完整的需求文档
   - 确保需求文档版本是最新的

2. **调用 Skill**
   ```
   使用 analyze-requirements skill
   ```

3. **按6个维度分析**
   - 需求概述
   - 内容提炼
   - 关键验收标准
   - 潜在风险点
   - 疑问清单
   - 一致性验证

4. **输出需求分析报告**
   - 使用标准模板
   - 标注风险严重程度（高/中/低）
   - 标注问题优先级（P0/P1/P2）

### 输出成果
- 需求分析报告
- 疑问清单（需要与产品经理澄清）

### 质量标准
- ✅ 覆盖所有6个维度
- ✅ 识别至少3-5个风险点
- ✅ 提出至少5-10个问题
- ✅ 标注优先级

### 常见问题

**Q: 用户说"快速看看就行"怎么办？**  
A: 使用标准话术："完整分析能避免后期返工，让我按照6个维度进行系统性分析。"

**Q: 需求文档不完整怎么办？**  
A: 在疑问清单中列出缺失的内容，标注为P0优先级。

**Q: 分析需要多长时间？**  
A: 通常需要1-2小时，取决于需求复杂度。

### 下一步
- 与产品经理澄清P0级别的问题
- 收集设计文档，进入阶段2

---

## 阶段2：设计文档理解

### 何时使用
- 收到设计文档
- 需要从测试角度理解技术设计
- 准备测试用例设计

### 使用的 Skill
**understand-design**

位置：`included-skills/understand-design/`

### 输入材料
- 设计文档（必须）
- 接口文档（必须）
- 数据库设计（必须）
- 需求分析报告（阶段1输出）

### 执行步骤

1. **准备材料**
   - 收集完整的设计文档
   - 确保设计文档版本是最新的

2. **调用 Skill**
   ```
   使用 understand-design skill
   ```

3. **按8个维度分析**
   - 安全性问题
   - 数据一致性问题
   - 边界条件问题
   - 接口设计问题
   - 数据库设计问题
   - 缓存/中间件设计问题
   - 性能问题
   - 可测试性问题

4. **输出问题清单**
   - 使用标准模板
   - 标注问题优先级（P0/P1/P2）
   - 提供时间盒方案（5分钟/15分钟/完整版）

### 输出成果
- 问题清单（带优先级）
- 关键风险点识别

### 质量标准
- ✅ 覆盖所有8个维度
- ✅ 识别至少10-20个问题
- ✅ 标注优先级（P0/P1/P2）
- ✅ 识别关键风险

### 常见问题

**Q: 用户说"马上要去开会"怎么办？**  
A: 提供时间盒方案："5分钟版只看P0问题，15分钟版看P0+P1，完整版看全部。"

**Q: 设计文档不完整怎么办？**  
A: 在问题清单中列出缺失的内容，标注为P0优先级。

**Q: 分析需要多长时间？**  
A: 通常需要1-2小时，取决于设计复杂度。

### 下一步
- 与设计团队澄清P0级别的问题
- 准备生成测试用例，进入阶段3

---

## 阶段3：测试用例生成

### 何时使用
- 需求和设计已明确
- 准备编写测试用例
- 需要生成CSV格式的测试用例

### 使用的 Skill
**generate-test-cases**

位置：`included-skills/generate-test-cases/`

### 输入材料
- 需求文档（必须）
- 设计文档（必须）
- 需求分析报告（阶段1输出）
- 问题清单（阶段2输出，已澄清）

### 执行步骤

1. **准备材料**
   - 确保需求和设计问题已澄清
   - 准备测试数据

2. **调用 Skill**
   ```
   使用 generate-test-cases skill
   ```

3. **按5个策略生成**
   - 正常业务流程
   - 异常业务流程
   - 边界值测试
   - 输入校验
   - 用户体验相关

4. **生成CSV文件**
   - UTF-8 BOM编码
   - 使用 `||` 双竖线分隔符
   - 至少30-50个用例

### 输出成果
- 测试用例文件（CSV格式）
- 覆盖度分析报告

### 质量标准
- ✅ 至少30-50个用例
- ✅ 真实CSV文件（UTF-8 BOM）
- ✅ 使用 `||` 双竖线分隔符
- ✅ 5个策略全覆盖
- ✅ 正常流程覆盖率 = 100%
- ✅ 异常流程覆盖率 ≥ 80%
- ✅ 边界值覆盖率 ≥ 90%
- ✅ 输入校验覆盖率 = 100%
- ✅ 用户体验覆盖率 ≥ 50%

### 常见问题

**Q: 用户说"先生成几个示例"怎么办？**  
A: 使用标准话术："完整生成能避免测试遗漏，让我生成30-50个用例。"

**Q: 如何确保UTF-8 BOM编码？**  
A: 使用Write工具生成文件，内容开头添加 `\ufeff` 标记。

**Q: 生成需要多长时间？**  
A: 通常需要2-3小时，取决于功能复杂度。

### 下一步
- 评审测试用例，进入阶段4

---

## 阶段4：测试用例评审

### 何时使用
- 测试用例已生成
- 需要验证测试用例质量
- 准备开始测试执行

### 使用的 Skill
**review-test-cases**

位置：`included-skills/review-test-cases/`

### 输入材料
- 测试用例文件（阶段3输出）
- 需求文档（必须）
- 设计文档（必须）

### 执行步骤

1. **准备材料**
   - 完整的测试用例文件
   - 需求文档和设计文档

2. **调用 Skill**
   ```
   使用 review-test-cases skill
   ```

3. **按6个维度评审**
   - 完整性评审
   - 合理性评审
   - 覆盖度评审
   - 规范性评审
   - 可执行性评审
   - 改进建议

4. **输出评审报告**
   - 使用标准模板
   - 提供量化分析
   - 标注问题优先级（P0/P1/P2）
   - 评估风险

### 输出成果
- 评审报告（6个维度）
- 改进建议（带优先级和工作量）

### 质量标准
- ✅ 覆盖所有6个维度
- ✅ 提供量化分析（覆盖率百分比）
- ✅ 标注问题优先级
- ✅ 评估风险
- ✅ 给出具体改进建议

### 常见问题

**Q: 用户说"快速看一下"怎么办？**  
A: 使用标准话术："全面评审能避免测试遗漏，让我从6个维度系统性评审。"

**Q: 如果没有需求文档怎么办？**  
A: 主动询问需求文档，说明为什么需要（验证覆盖度）。

**Q: 评审需要多长时间？**  
A: 通常需要1-2小时，取决于用例数量。

### 下一步
- 根据评审报告修改测试用例
- 重新评审（如果有P0问题）
- 开始测试执行

---

## 完整流程时间估算

| 阶段 | 时间 | 输出 |
|------|------|------|
| 需求分析 | 1-2小时 | 需求分析报告 |
| 设计理解 | 1-2小时 | 问题清单 |
| 用例生成 | 2-3小时 | 测试用例（CSV） |
| 用例评审 | 1-2小时 | 评审报告 |
| 修改确认 | 1-2小时 | 最终测试用例 |
| **总计** | **6-11小时** | **高质量测试用例** |

---

## 质量检查清单

### 需求分析阶段
- [ ] 覆盖所有6个维度
- [ ] 识别至少3-5个风险点
- [ ] 提出至少5-10个问题
- [ ] 标注优先级（P0/P1/P2）

### 设计理解阶段
- [ ] 覆盖所有8个维度
- [ ] 识别至少10-20个问题
- [ ] 标注优先级（P0/P1/P2）
- [ ] 识别关键风险

### 用例生成阶段
- [ ] 至少30-50个用例
- [ ] 真实CSV文件（UTF-8 BOM）
- [ ] 使用 `||` 双竖线分隔符
- [ ] 正常流程覆盖率 = 100%
- [ ] 异常流程覆盖率 ≥ 80%
- [ ] 边界值覆盖率 ≥ 90%
- [ ] 输入校验覆盖率 = 100%

### 用例评审阶段
- [ ] 覆盖所有6个维度
- [ ] 提供量化分析
- [ ] 标注问题优先级
- [ ] 评估风险
- [ ] 给出改进建议

---

## 常见错误和避免方法

### 错误1：迎合用户的"简化"要求
**表现：** 用户说"快速看看"，AI立即降低标准  
**避免：** 使用标准话术，坚持专业标准

### 错误2：跳过某些维度
**表现：** 只分析部分维度，认为"够了"  
**避免：** 使用检查清单，确保全覆盖

### 错误3：只生成"示例"
**表现：** 只生成7-8个用例，说"先看看格式"  
**避免：** 坚持生成30-50个完整用例

### 错误4：表面检查代替系统评审
**表现：** "整体还不错，可能遗漏了..."  
**避免：** 按6个维度系统性评审

### 错误5：没有量化分析
**表现：** "覆盖度还可以"  
**避免：** 提供具体的覆盖率百分比

---

## 工作流程图

```
┌─────────────────┐
│   需求文档      │
└────────┬────────┘
         │
         ↓
┌─────────────────────────┐
│ 阶段1：需求分析         │
│ analyze-requirements    │
│ 6个维度                 │
│ 时间：1-2小时           │
└────────┬────────────────┘
         │
         ↓
┌─────────────────┐
│ 需求分析报告    │
│ + 疑问清单      │
└────────┬────────┘
         │ 澄清问题
         ↓
┌─────────────────┐
│   设计文档      │
└────────┬────────┘
         │
         ↓
┌─────────────────────────┐
│ 阶段2：设计理解         │
│ understand-design       │
│ 8个维度                 │
│ 时间：1-2小时           │
└────────┬────────────────┘
         │
         ↓
┌─────────────────┐
│   问题清单      │
│ P0/P1/P2        │
└────────┬────────┘
         │ 澄清问题
         ↓
┌─────────────────────────┐
│ 阶段3：用例生成         │
│ generate-test-cases     │
│ 5个覆盖策略             │
│ 时间：2-3小时           │
└────────┬────────────────┘
         │
         ↓
┌─────────────────┐
│ 测试用例(CSV)   │
│ 30-50个用例     │
└────────┬────────┘
         │
         ↓
┌─────────────────────────┐
│ 阶段4：用例评审         │
│ review-test-cases       │
│ 6个维度                 │
│ 时间：1-2小时           │
└────────┬────────────────┘
         │
         ↓
┌─────────────────┐
│   评审报告      │
│ + 改进建议      │
└────────┬────────┘
         │ 修改用例
         ↓
┌─────────────────┐
│ 最终测试用例    │
│ 质量：优秀      │
└────────┬────────┘
         │
         ↓
┌─────────────────┐
│   测试执行      │
└─────────────────┘
```

---

## 核心原则

### 1. 不降低标准
专业标准不应因用户的时间压力或简化要求而降低。

### 2. 系统性方法
使用标准化的分析框架，确保不遗漏关键点。

### 3. 量化分析
提供覆盖率、优先级、风险评估等量化数据。

### 4. 具体可执行
提供模板、建议、工作量估算，便于执行。

### 5. 持续改进
通过评审发现问题，及时修改，确保最终质量。

---

## 总结

完整的测试工作流程确保了从需求到测试用例的高质量交付：

- **前期投入：** 6-11小时
- **后期收益：** 避免数天的返工
- **质量保证：** 系统性方法确保不遗漏
- **风险控制：** 提前识别和规避风险

**一站式解决方案，立即可用。**
