---
name: game-test-case-generator
description: 基于需求文档（xls/csv）生成专业游戏测试用例，支持完整用例和快速测试点两种模式。当用户提到"游戏测试"、"测试用例生成"、"需求转测试用例"、上传需求文档或原型时使用此技能。
---

# 游戏测试用例生成器

## 核心能力

将游戏需求文档（xls/csv/文本/图片）转换为标准化测试用例，支持两种生成模式：
- **完整模式**：含前置条件、详细步骤、预期结果的规范用例
- **快速模式**：简洁的测试点列表，适合快速评审

输出格式：Markdown（可导入Xmind）或 Excel

## 使用流程

### 第一步：确认生成模式

询问用户选择模式：
```
请选择测试用例生成模式：
1. 完整模式 - 生成规范的测试用例集（含编号、前置条件、操作步骤、预期结果）
2. 快速模式 - 仅生成测试点列表（快速评审用）

默认：完整模式
```

### 第二步：解析需求材料

**支持的输入格式**：
- xls/xlsx/csv 文件
- 文本描述
- 原型图片（识别UI元素、交互流程）
- 混合格式（文本+图片）

**解析策略**：
1. **结构化文档**（xls/csv）：
   - 识别列：功能模块、需求描述、UI说明、验收标准等
   - 提取关键信息：玩法流程、数值配置、交互逻辑
   
2. **文本描述**：
   - 拆解功能模块（如登录、战斗、社交、付费）
   - 提取核心玩法（如抽卡、副本、任务系统）
   - 识别交互点（按钮点击、手势操作、弹窗逻辑）

3. **原型图片**：
   - 识别界面元素：按钮位置、文本框、弹窗样式
   - 理解流程逻辑：任务引导、页面跳转、状态变化

**输出需求映射表**：
```markdown
| 需求ID | 需求描述 | 来源 | 测试点数量 | 备注 |
|--------|----------|------|-----------|------|
| REQ-001 | 用户登录 | 需求文档第3行 | 8 | 含第三方登录 |
```

### 第三步：生成测试用例

#### 完整模式流程

**1. 模块分类**
按游戏功能模块组织：
- 账号系统（登录/注册/账号安全）
- 核心玩法（战斗/养成/社交）
- 系统功能（商城/背包/任务）
- 性能/兼容性

**2. 场景覆盖原则**
每个功能点至少覆盖3种场景：
- **正常场景**：标准流程执行
- **边界场景**：极限值测试（等级上限、道具数量最大值、长字符输入）
- **异常场景**：错误处理（断网、非法输入、并发操作）

**3. 用例结构**（使用模板：templates/full-template.md）
```markdown
## 用例编号：模块-功能编号-场景类型

**测试类型**：功能/性能/兼容性/安全
**优先级**：高/中/低
**前置条件**：
- 条件1
- 条件2

**操作步骤**：
1. 具体操作（精确到"点击XX按钮"）
2. 具体操作（精确到"输入XX内容"）

**预期结果**：
- 可量化的验证点
- 无歧义的判断标准

**异常分支**：
- 异常情况描述及预期处理
```

**4. 用例编号规则**
- 格式：`模块缩写-功能编号-场景类型`
- 示例：`LOG-001-N`（登录模块-第1个功能-正常场景）
- 场景类型：N(正常)/B(边界)/E(异常)

**5. 优先级定义**
- **高**：核心流程、付费环节、账号安全
- **中**：常用功能、次要玩法
- **低**：优化功能、边缘场景

#### 快速模式流程

**使用模板**：templates/quick-template.md

**输出结构**：
```markdown
# 模块名称

## 核心测试点
- [ ] 测试点描述（含验证标准）
- [ ] 测试点描述（含验证标准）

## 边界场景
- [ ] 测试点描述
- [ ] 测试点描述

## 异常场景
- [ ] 测试点描述
- [ ] 测试点描述

## 待确认项
- ❓ 模糊需求描述 → 推荐方案
```

### 第四步：质量检查

**必检项**：
- [ ] 需求覆盖度：所有需求点都有对应用例
- [ ] 场景完整性：正常/边界/异常三类场景齐全
- [ ] 表述清晰度：无"可能"、"大概"等模糊词
- [ ] 可执行性：步骤具体、结果可验证
- [ ] 跨模块联动：涉及多模块的场景已覆盖

**待确认项处理**：
对模糊/冲突/缺失需求标注：
```markdown
## 待确认项

### 问题1：登录方式未明确
**描述**：需求未说明是否支持第三方登录
**方案A**：仅支持账号密码登录
**方案B**：支持微信/QQ第三方登录
**推荐**：方案B（符合行业惯例）
**影响用例**：LOG-003、LOG-004
```

### 第五步：格式转换

**Markdown输出**（默认）：
- 直接可用于文档查看
- 支持导入Xmind（脚本：`scripts/convert_to_xmind.py`）
- 层级结构：模块 → 功能点 → 用例

**Excel输出**（可选）：
使用脚本：`scripts/convert_to_excel.py`

Excel表结构：
| 用例编号 | 模块 | 功能点 | 测试类型 | 优先级 | 前置条件 | 操作步骤 | 预期结果 | 异常分支 |
|---------|------|--------|---------|--------|---------|---------|---------|---------|

**转换命令示例**：
```bash
# 转换为Excel
python scripts/convert_to_excel.py output.md -o 测试用例集.xlsx

# 转换为Xmind格式
python scripts/convert_to_xmind.py output.md -o 测试用例.xmind
```

## 输出规范

### 文档结构

**完整模式输出**：
```markdown
# [游戏名称] 测试用例集
**版本**：v1.0
**测试模块**：XXX模块
**生成时间**：2026-01-27

## 📋 需求映射表
[需求点 → 用例编号 → 覆盖场景]

## 📦 测试用例集

### 模块1：账号系统
#### 功能1.1：用户登录
##### 用例 LOG-001-N：正常登录流程
[完整用例内容]

##### 用例 LOG-001-B：边界测试 - 密码长度上限
[完整用例内容]

##### 用例 LOG-001-E：异常测试 - 网络中断
[完整用例内容]

## ❓ 待确认项
[问题描述 + 方案对比 + 推荐方案]

## 📊 统计信息
- 总用例数：XX
- 高优先级：XX
- 中优先级：XX
- 低优先级：XX
- 待确认项：XX
```

**快速模式输出**：
```markdown
# [游戏名称] 测试点清单
**版本**：v1.0
**生成时间**：2026-01-27

## 模块1：账号系统

### 用户登录
- [ ] 正确账号密码登录成功，进入游戏主界面
- [ ] 错误密码提示"密码错误"，不允许登录
- [ ] 密码输入32位（上限）正常登录
- [ ] 网络断开提示"网络连接失败"
- [ ] 连续5次密码错误触发账号锁定

### 第三方登录
- [ ] 微信授权登录成功，自动绑定游戏账号
- [ ] 取消微信授权返回登录页，不创建账号
...

## ❓ 待确认项
- 登录方式是否包含手机验证码登录？
- 账号锁定时长未明确（建议30分钟）
```

## 特殊场景处理

### 需求冲突
**识别标准**：需求文档中不同章节描述矛盾
**处理方式**：
```markdown
## ⚠️ 需求冲突

**冲突点**：用户等级上限
- 需求第3章描述：等级上限100级
- 原型图显示：等级上限150级

**协调方案**：
- 方案A：采用100级（文档为准）
- 方案B：采用150级（原型为准）

**推荐**：方案A，并补充说明：若后续版本提升上限，需修改UI显示范围

**临时处理**：生成两套边界测试用例（100级和150级）
```

### 图片信息提取

当需求包含原型图时：
1. **识别UI元素**：按钮、文本框、图标的位置和样式
2. **提取交互逻辑**：点击流程、页面跳转、状态变化
3. **生成UI测试点**：
```markdown
### UI测试点（基于原型图）
- [ ] "立即登录"按钮位于屏幕下方，蓝色背景白色文字
- [ ] 账号输入框显示提示文字"请输入账号"，字体灰色
- [ ] 密码输入框内容显示为圆点，支持明文/密文切换图标
- [ ] 忘记密码链接位于密码框右侧，字体12px蓝色
```

### 性能指标

如需求涉及性能要求：
```markdown
### 性能测试用例 PERF-001-N
**测试类型**：性能
**优先级**：高

**测试场景**：100人同时在线战斗
**性能指标**：
- 服务器响应时间 ≤ 200ms
- 客户端帧率 ≥ 30fps
- 内存占用 ≤ 512MB

**测试步骤**：
1. 启动性能监控工具
2. 模拟100个玩家同时进入战斗场景
3. 持续测试5分钟
4. 记录性能数据

**预期结果**：
- 所有指标均在阈值范围内
- 无崩溃、无卡顿
```

## 进阶技巧

### 用例复用
对于相似功能（如不同道具的使用逻辑），使用参数化：
```markdown
### 用例模板：道具使用 ITEM-USE-N
**参数**：道具类型、使用效果、冷却时间

**测试数据**：
| 道具类型 | 使用效果 | 冷却时间 |
|---------|---------|---------|
| 生命药水 | 恢复50%HP | 30秒 |
| 魔法药水 | 恢复50%MP | 30秒 |
| 复活石 | 原地复活 | 无 |
```

### 自动化标识
对于可自动化的用例添加标签：
```markdown
**自动化程度**：🤖 可自动化 / ⚠️ 半自动化 / 👤 纯手工

用例 LOG-001-N：正常登录流程 🤖
用例 COMBAT-005-N：战斗特效表现 👤
```

## 注意事项

1. **术语统一**：全文使用一致的术语（如"玩家"不混用"用户"）
2. **步骤具体**：避免"检查功能正常"，改为"检查HP值从100降低到50"
3. **禁用模糊词**：不用"可能"、"大概"、"基本"等词汇
4. **跨模块用例**：涉及多模块交互的场景独立列出
5. **版本标记**：如需求分版本迭代，标注用例所属版本

## 质量标准

**合格标准**：
- ✅ 需求覆盖率 ≥ 95%
- ✅ 每个功能点至少3个场景（正常/边界/异常）
- ✅ 核心流程用例优先级为"高"
- ✅ 无模糊表述
- ✅ 所有待确认项已标注

## 辅助资源

- **完整用例模板**：[templates/full-template.md](templates/full-template.md)
- **快速测试点模板**：[templates/quick-template.md](templates/quick-template.md)
- **Excel转换脚本**：[scripts/convert_to_excel.py](scripts/convert_to_excel.py)
- **Xmind转换脚本**：[scripts/convert_to_xmind.py](scripts/convert_to_xmind.py)
