# 测试用例编写规范

## 1. 用例结构标准
所有生成的测试用例必须遵循以下字段结构：

| 字段 | 说明 | 示例 |
| :--- | :--- | :--- |
| **用例编号** | 唯一标识，建议使用稳定英文缩写，格式 `端_模块_子模块_编号` | `PLT_MKT_MC_001` |
| **模块** | 功能归属模块，建议使用层级路径表达 `端-一级模块-二级模块` | `平台端-营销管理-商家优惠券` |
| **用例标题** | 简明扼要，动宾结构 | `验证使用有效优惠券下单成功` |
| **优先级** | P0(核心流程), P1(主要功能), P2(次要/异常) | `P0` |
| **类型** | 用例类型，必须使用团队枚举 | `功能测试` |
| **前置条件** | 执行前必须满足的状态 | `用户已登录，购物车有商品` |
| **测试步骤** | 分步骤描述操作，清晰无歧义 | `1. 点击结算 2. 选择优惠券` |
| **测试数据** | 具体的输入数据（如有） | `优惠券码: TEST100` |
| **预期结果** | 对应步骤的系统反馈，包含 UI 和数据 | `1. 订单金额减少100元 2. 跳转支付页` |
| **备注** | 待确认项、历史缺陷来源或 AI 修正说明 | `[AI修正: 补充历史缺陷防御场景]` |

## 2. 编写原则
- **原子性**：一个用例只验证一个主要功能点。
- **独立性**：用例之间尽量不依赖（除前置条件外）。
- **可重复性**：预期结果必须明确，不能模棱两可。
- **可追溯性**：每条用例应能追溯到需求条目、历史缺陷或团队规则。

## 3. 类型字段规范

- `类型` 必须从以下枚举中选择其一：
  - `功能测试`
  - `性能测试`
  - `兼容性测试`
  - `易用性测试`
  - `安全性测试`
  - `冒烟测试`
  - `回归测试`
  - `其他`
- 默认优先使用 `功能测试`，不要滥用 `其他`。
- 涉及权限绕过、抓包篡改、越权访问、敏感数据校验的场景，优先标记为 `安全性测试`。
- 涉及 RT、吞吐、并发容量、性能基线的场景，标记为 `性能测试`。
- 核心链路首轮冒烟验证可标记为 `冒烟测试`。
- 来自历史缺陷或确认后的重点回归链路，可标记为 `回归测试`。

## 4. 模块字段规范

- **推荐层级**：`端-一级模块-二级模块`，必要时可扩展到 `端-一级模块-二级模块-功能点`。
- **推荐示例**：
  - `平台端-营销管理-平台优惠券`
  - `平台端-营销管理-商家优惠券`
  - `商家端-营销活动-商家优惠券`
  - `用户端-下单结算-平台券使用`
- **生成规范**：Markdown 表格中的 `模块` 列统一写 `-` 连接的层级路径，不直接写 `|`，避免表格分列风险。
- **读取与导出规范**：脚本在读取 Markdown 和导出 Excel 时，会将模块路径自动标准化为 `|` 连接形式，例如：

```text
平台端-营销管理-商家优惠券
-> 平台端|营销管理|商家优惠券
```

- **兼容说明**：历史数据如果已经使用 `平台端\|营销管理\|商家优惠券` 或 `平台端|营销管理|商家优惠券`，当前脚本仍可兼容读取。
- **编号建议**：`用例编号` 不要直接使用中文模块路径，建议使用稳定英文缩写，例如：

```text
PLT_MKT_PC_001   # 平台端|营销管理|平台优惠券
PLT_MKT_MC_001   # 平台端|营销管理|商家优惠券
MCH_MKT_MC_001   # 商家端|营销活动|商家优惠券
```

## 5. 唯一表头

最终 Markdown 表格必须严格使用以下表头顺序：

| 用例编号 | 模块 | 用例标题 | 优先级 | 类型 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 | 备注 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |

## 6. 云效导出映射

- Excel 导出默认按团队云效字段模型输出：
  - `标题`
  - `编号`
  - `目录`
  - `创建时间`
  - `前置条件`
  - `步骤描述`
  - `预期结果`
  - `优先级`
  - `类型`
  - `URL`
- Markdown 中的 `测试数据` 会在导出时自动并入 `步骤描述`，避免字段丢失。
