---
name: qa-heuristic-checklist
description: >-
  提供登录、支付、搜索、购物车、导入导出、审批、消息通知、权限管理等不同类型功能的测试要点模板。当面对一个新功能类型不知道从哪里开始测试、或者担心遗漏了某个功能类型的特有测试点时，应当使用此技能。特别适合测试新人——照着清单逐项检查就不会漏掉该功能类型的典型问题。例如支付类要测金额精度和幂等性，导入导出类要测格式兼容和性能，每个功能类型都有其特有的高风险区域。 触发场景：这个功能怎么测、有什么测试要点、checklist、测试模板、表单测试、支付测试要点、导入怎么测、测试新人需要指引时。 Use when the user asks about: heuristic checklists and testing points by feature type — login, payment, search, cart, import/export, approval, notification, and permissions.
license: MIT
allowed-tools: Read Grep Glob
metadata:
  display-name: "Heuristic Checklist"
  version: "1.8.0"
  when-to-use: "用户说\"这个功能怎么测\"、\"有什么测试要点\"、\"checklist\"、\"测试模板\"、\"表单测试\"、\"支付测试要点\"、\"导入怎么测\"、面对新功能类型、测试新人需要指引时"
  related-skills: "{\"upstream\":[\"qa-retrospective\"],\"downstream\":[\"qa-scenario-tree\",\"qa-boundary-deep-dive\",\"qa-team-coaching\"]}"
  references: "[\"references/checklists.md\"]"
  input-format: "{\"required\":[{\"name\":\"测试上下文\",\"type\":\"string\",\"description\":\"待测试的功能或场景描述\"}],\"optional\":[{\"name\":\"测试类型\",\"type\":\"string\",\"description\":\"功能/性能/安全/兼容性等\"},{\"name\":\"历史缺陷\",\"type\":\"array\",\"description\":\"历史缺陷模式\"}]}"
  output-format: "{\"traceability\":[\"本技能应用清单，不新增唯一ID；标注覆盖的启发式编号\"],\"structure\":[\"覆盖率：标注口径（基于现有需求/输入文档），禁止\\\"全覆盖/100%\\\"绝对化表述；缺失模块标注\\\"未覆盖+原因\\\"\",{\"heuristic_list\":\"启发式检查清单\"},{\"covered_areas\":\"已覆盖领域\"},{\"uncovered_areas\":\"未覆盖领域提示\"},{\"exploration_guide\":\"探索测试指南\"}]}"
  error-recovery-guidance: "{\"on_failure\":\"清单应用遗漏功能类型时回退到需求解构补充\",\"retry_behavior\":\"补全功能类型后重新应用清单\"}"
  categories: "[\"Development\",\"Testing\"]"
  depth-requirement: "{\"reference_value\":\"根据功能类型数量调整清单深度：简单×1/中等×2/复杂×3\",\"minimum\":\"至少应用5个相关启发式\"}"
---
> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills

> **⚠️ 安全警告**：本技能的示例可能涉及被测对象的增删改操作描述（如购物车删除商品）。
> 这些是测试场景示例，不是对本技能数据的操作；请勿在测试执行中误删真实数据。
> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。

# 启发式检查清单

> **无复盘数据时的兜底策略**：如果当前没有 `qa-retrospective` 的输出数据（首次使用或复盘未执行），直接使用本技能内置的默认检查清单模板，覆盖以下 8 类常见功能测试要点。上游依赖为可选，不阻塞工作流执行。

## 核心原则

对不同类型的功能，资深测试脑子里有一份"这类功能通常要测什么"的 mental checklist。

## 功能类型清单

**必须掌握的8大功能类型**：

| 类型 | 典型场景 | 测试重点 |
|------|---------|---------|
| 表单类 | 登录、注册、搜索、提交 | 输入验证、业务规则、用户体验 |
| 列表类 | 商品列表、订单列表、数据报表 | 数据展示、分页、筛选、排序 |
| 购物车类 | 电商购物车、收藏夹 | 库存、价格、并发、数据一致性 |
| 支付类 | 在线支付、退款、转账 | 金额安全、状态一致性、幂等性 |
| 导入导出类 | 批量导入、数据导出 | 格式兼容、数据校验、性能 |
| 审批类 | 请假审批、报销审批 | 流程控制、权限、通知 |
| 消息通知类 | 系统通知、推送消息 | 触发条件、发送频率、渠道 |
| 权限类 | 角色管理、资源权限 | 越权防护、权限继承、审计 |

> 每个功能类型的**完整检查清单**（输入验证/业务规则/并发/异常等详细测试要点）参见 [`references/checklists.md`](references/checklists.md)。

## 加载时机

**需要时才读，不要一上来全读**：

| 什么时候读 | 读哪个 |
|-----------|--------|
| 拿到一个功能，想知道该测什么 | [`references/checklists.md`](references/checklists.md)（按功能类型的测试要点模板） |

> 本文的速查表只覆盖常见功能类型；完整清单按需加载。


---

## 使用方法

### 步骤1：识别功能类型

```text
这个功能属于哪种类型？
- [ ] 表单类
- [ ] 列表类
- [ ] 购物车类
- [ ] 支付类
- [ ] 导入导出类
- [ ] 审批类
- [ ] 消息通知类
- [ ] 权限类
```

### 步骤2：应用检查清单

```text
根据功能类型，逐项检查：
1. [ ] 核心测试要点是否覆盖？
2. [ ] 边界条件是否分析？
3. [ ] 异常场景是否考虑？
4. [ ] 用户体验是否验证？
```

### 步骤3：补充特定场景

```text
根据业务特点，补充特定测试场景：
1. 业务特殊规则：
2. 技术特殊约束：
3. 历史缺陷模式：
```

> 详细检查清单参见 [`references/checklists.md`](references/checklists.md)，覆盖表单/购物车/列表/支付/导入导出/审批/消息/权限 8 大功能类型。

## 应用场景

**用户说"帮我测购物车功能"**
→ 识别为"购物车类功能"，应用检查清单：
  - 添加商品：数量、规格、库存、限购
  - 修改数量：增/减/超库存/为0
  - 删除商品：单个/批量/删除已失效商品
  - 价格计算：单品折扣/满减/运费/优惠券叠加
  - 异常：库存不足/下架/价格变动

**用户说"测一下审批流程"**
→ 识别为"审批类功能"，检查链式流转、多人审批、驳回重审等要点

## 输出示例

**好示例：识别购物车功能 → 应用购物车清单**
```text
✓ 识别结果：购物车类功能
  - 商品管理测试：添加（正常/库存不足）、修改数量（边界/库存限制）、删除（单条/批量）
  - 价格计算测试：单价×数量、满减与优惠券叠加、运费计算
  - 并发测试：最后一件库存多人竞争、多设备同步
  - 异常测试：支付中断后购物车状态保持、商品下架后购物车提示
  → 全面覆盖了购物车类功能的核心风险点
```

**坏示例：识别购物车功能 → 泛泛的测试**
```text
✗ 打开购物车页面，看看能不能加商品、删商品
  - 没测价格变化（促销开始/结束时的价格差异）
  - 没测并发（多人抢最后一件库存）
  - 没测库存不足/商品下架后的购物车状态
  - 没测优惠券叠加逻辑
  → 结果：上线后出现价格显示错误、多人抢购超卖
```

## 自检清单

测试设计完成后检查：
- [ ] 是否识别了正确的功能类型？
- [ ] 是否应用了对应的检查清单？
- [ ] 是否补充了业务特定场景？
- [ ] 测试要点是否可执行？


## 检查清单

- [ ] 8大功能类型是否都应用？
- [ ] 清单覆盖是否完整？
- [ ] 遗漏类型是否补全？
- [ ] 经验启发式是否标注来源？
- [ ] 应用结果是否记录？
