# 测试报告标准

WesPy 活动埋点测试报告的输出格式和标准要求。

---

## 🔴 强制要求：严格按照标准模板输出

**用户要求（2026-03-19）**: 所有埋点测试报告必须严格按照以下标准模板格式输出

**标准模板路径**: `/reports/五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md`

**模板特点**:
- ✅ Widget埋点详细展开（每个埋点独立章节 + 详细测试用例表格）
- ✅ 代码验证片段（文件路径 + 行号 + 代码截图）
- ✅ 测试数据示例（操作步骤 + JSON + 表格 + 关键验证点）
- ✅ 问题汇总（🔴 Critical / ⚠️ Warning / ℹ️ Info）
- ✅ **不包含**"修复后预期埋点数据"和"修复代码示例"章节

**命名规范**: `{活动名称}_埋点测试执行报告_{活动ID}_{日期YYYY-MM-DD}.md`
- 示例: `五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md`

**输出位置**: 必须输出到 `reports/` 目录下

**参考标准**:
- [SKILL.md](../SKILL.md) - Widget 埋点测试标准（第247-400行）
- [MEMORY.md](MEMORY.md) - Widget 埋点测试要求

---

## 📋 使用标准模板创建报告

使用标准模板创建新的测试报告：

```bash
# 复制模板到 reports 文件夹
cp templates/tracking_test_report_template.md \
   reports/{活动名称}_埋点测试执行报告_{活动ID}_{日期}.md

# 示例：
cp templates/tracking_test_report_template.md \
   reports/五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md
```

**标准模板路径**: [templates/tracking_test_report_template.md](../templates/tracking_test_report_template.md)

**模板包含的章节**:
- ✅ 测试概述（活动信息、测试范围、测试方法）
- ✅ 活动配置信息（Widget配置、任务配置、奖励配置）
- ✅ 埋点代码映射（测试用例与代码位置的映射表）
- ✅ 测试用例执行结果（每个埋点的详细测试过程）
- ✅ 测试汇总（统计和详细清单）
- ✅ 问题汇总（Critical/Warning/Info分级）
- ✅ 修复验证计划
- ✅ 测试结论
- ✅ 附录（抓包截图、SQL查询、代码审查清单）

**成功案例参考**: [reports/五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md](../reports/五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md)
- 展示了Widget埋点详细展开的最佳实践
- 包含完整的代码验证片段和测试数据示例

---

## 📝 报告输出格式 🔴

⭐ **必须严格遵循以下格式要求**

**文件命名规范**:
```
reports/{活动名称}_埋点测试执行报告_{活动ID}_{日期YYYY-MM-DD}.md
```

**命名示例**：
- ✅ `reports/五周年三阶段_埋点测试执行报告_6360_2026-03-19.md`
- ✅ `reports/五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md` (多活动)
- ❌ `reports/五周年三阶段_埋点测试执行报告_6360.md` (缺少日期)
- ❌ `埋点测试报告_6360.md` (不在reports目录)

**报告内容要求**:
1. ✅ **Widget埋点必须详细展开** - 每个埋点独立章节，包含详细测试用例表格（参考SKILL.md第247-400行）
2. ✅ **代码验证必须包含** - 展示代码片段，标注文件路径和行号
3. ✅ **测试数据示例必须包含** - 操作步骤 + JSON格式 + 表格格式 + 关键验证点
4. ✅ **问题汇总必须分级** - 🔴 Critical / ⚠️ Warning / ℹ️ Info
5. ❌ **不包含"修复后预期埋点数据"** - 已删除此章节
6. ❌ **不包含"修复代码示例"** - 已删除此章节

**标准模板参考**:
```bash
# 查看标准模板
cat reports/五周年三阶段_埋点测试执行报告_6362_6420_2026-03-19.md
```

**输出文件类型**:
- **Markdown 文件** (必须): 用于版本控制和协作
- **PDF 文件** (可选): 用于正式提交

---

## 📄 报告结构示例

### 1. 标题和元信息

```markdown
# {活动名称} 活动埋点测试执行报告

**基于**: 代码审查结果（静态分析） + 配置中心真实数据
**日期**: YYYY-MM-DD
**测试方法**: 静态代码分析 + 逻辑验证 + 配置查询验证
**覆盖范围**: X个埋点，约Y个测试用例
**活动ID**: ...
**配置数据来源**: ...
```

### 2. 测试执行汇总

整体统计表格（埋点类型、数量、通过率、Critical/Warning问题）

### 3. 详细测试用例执行结果

每个埋点单独一个章节，使用表格化格式，包含：
- 用例ID（TC{编号}-{子编号}）
- 测试场景
- 预期结果
- 预测结果（代码审查）
- 状态（✅/🔴/⚠️）
- 问题

### 4. 代码验证片段

每个埋点必须包含代码截图，显示关键逻辑和字段，标注文件路径和行号

### 5. 测试数据示例（重要！）

- JSON 格式的预期埋点数据
- 表格格式的预期输出示例
- 关键验证点说明

### 6. 问题汇总与修复建议

按优先级分类（🔴 Critical / ⚠️ Warning / ℹ️ Info），包含代码位置、影响分析、修复建议

### 7. 修复验证计划 + 测试结论 + 附录

---

## 📊 测试用例表格格式（核心）

**标准格式**:
```markdown
| 用例ID | 测试场景 | 预期结果 | 预测结果（代码审查） | 状态 | 问题 |
|--------|---------|---------|---------------------|------|------|
| TC03-01 | 完成累消任务时上报 | action="complete_task" | action="complete_task"✅ | ✅ | - |
| TC03-02 | 包含task_id字段 | task_id=任务ID | data.TaskId ✅ | ✅ | - |
| TC03-03 | 包含task_name字段 | task_name="任务名称" | data.TaskName ✅ | ✅ | - |
```

**每个埋点的测试用例必须包含**:
1. 字段完整性检查（每个字段一个用例）
2. action/activity_type 固定值验证
3. 触发时机验证
4. 上报次数验证
5. 特殊逻辑验证（如条件判断、枚举值等）

**小计**: 在每个埋点的测试用例表格后，统计通过/失败数量

---

## 📋 测试数据示例格式（重要）

**必须包含三部分**:

### 1. 操作步骤
```
**操作步骤**:
1. 用户uid=100001
2. 完成任务ID=1
3. 后端触发埋点：TrackXXX()
```

### 2. 预期埋点数据（JSON格式）
```json
{
  "event_name": "ActivityTotal",
  "distinct_id": "100001",
  "time": 1710835200000,
  "properties": {
    "action": "complete_task",
    "activity_type": "task",
    "act_id": 6360,
    "task_id": 1,
    "task_name": "累消任务",
    ...
  }
}
```

### 3. 预期输出示例（表格格式）
```markdown
| user_id | task_id | task_name | time                |
|---------|---------|-----------|---------------------|
| 100001  | 1       | 累消任务   | 2026-03-19 15:30:45 |
```

### 4. 关键验证点
```markdown
**关键验证点**:
- ✅ task_id 从参数传递，非硬编码
- ✅ task_name 从配置中心查询
- ✅ 触发时机：任务完成时立即上报
```

---

## ✅ 报告质量检查清单

在提交报告前，检查以下要点：

### 必须包含的内容
- [ ] 标题和元信息（活动ID、日期、测试方法）
- [ ] 测试执行汇总（统计表格）
- [ ] 每个埋点的详细测试用例表格
- [ ] 每个埋点的代码验证片段
- [ ] 每个埋点的测试数据示例
- [ ] 问题汇总（Critical/Warning/Info分级）
- [ ] 修复验证计划
- [ ] 测试结论

### Widget埋点特殊要求
- [ ] Widget埋点必须逐字段展开测试
- [ ] 不能只说"通过代码审查"
- [ ] 必须包含完整的测试用例表格（≥6个用例）
- [ ] 必须包含代码验证片段
- [ ] 必须包含测试数据示例（JSON + 表格）
- [ ] 必须验证配置数据（枚举值、配置项）

### 格式要求
- [ ] 文件命名符合规范
- [ ] 输出到 reports/ 目录
- [ ] Markdown 格式正确
- [ ] 代码块有语法高亮
- [ ] 表格格式完整

---

[← 返回主文档](../SKILL.md)
