识别那些"看起来很简单但实际风险很高"的测试区域,帮你在有限的测试资源下做优先级判断。当测试时间不够、不知道应该重点测哪些功能、或者直觉告诉你某个功能可能有问题但说不上来为什么时,应当使用此技能。有经验的测试看到某些变更会本能地警觉——这不是玄学,是可以结构化的信号模型:变更/业务/技术/数据/集成五大风险信号雷达,量化打分后按等级分配测试深度与资源。每个风险点带唯一 ID(RISK-{模块}-{风险类型}-{序号})。 触发场景:风险评估、优先级、哪里风险高、风险信号、测试重点、资源分配、高优测试、需要判断测试重点、测试资源有限需要聚焦时。 Use when the user asks about: identifying high-risk areas that look simple — frequently changed modules, third-party dependencies, money and security paths, and historical defect hotspots.
---
name: qa-risk-intuition
description: >-
识别那些"看起来很简单但实际风险很高"的测试区域,帮你在有限的测试资源下做优先级判断。当测试时间不够、不知道应该重点测哪些功能、或者直觉告诉你某个功能可能有问题但说不上来为什么时,应当使用此技能。有经验的测试看到某些变更会本能地警觉——这不是玄学,是可以结构化的信号模型:变更/业务/技术/数据/集成五大风险信号雷达,量化打分后按等级分配测试深度与资源。每个风险点带唯一 ID(RISK-{模块}-{风险类型}-{序号})。
触发场景:风险评估、优先级、哪里风险高、风险信号、测试重点、资源分配、高优测试、需要判断测试重点、测试资源有限需要聚焦时。 Use when the user asks about: identifying high-risk areas that look simple — frequently changed modules, third-party dependencies, money and security paths, and historical defect hotspots.
license: MIT
allowed-tools: Read Grep Glob
metadata:
display-name: "Risk Intuition"
version: "1.8.0"
when-to-use: "用户说\"风险评估\"、\"优先级\"、\"哪里风险高\"、\"风险信号\"、\"测试重点\"、\"资源分配\"、\"高优测试\"、需要判断测试重点、测试资源有限需要聚焦时"
related-skills: "{\"upstream\":[\"qa-req-deconstruction\"],\"downstream\":[\"qa-test-estimation\",\"qa-test-strategy-design\",\"qa-req-deconstruction\",\"qa-ai-context-engineering\",\"qa-agent-testing\",\"qa-api-testing\",\"qa-mobile-testing\",\"qa-bug-lifecycle\",\"qa-release-risk-governance\",\"qa-test-env-data\",\"qa-test-data-engineering\",\"qa-expert-review\"]}"
references: "[\"references/risk-signals.md\",\"assets/risk-matrix.md\"]"
input-format: "{\"required\":[{\"name\":\"功能模块\",\"type\":\"string\",\"description\":\"待评估的功能或变更范围\"}],\"optional\":[{\"name\":\"变更说明\",\"type\":\"string\",\"description\":\"本次变更内容(触发变更信号雷达)\"},{\"name\":\"历史缺陷\",\"type\":\"array\",\"description\":\"同类功能的历史缺陷模式\"}]}"
output-format: "{\"traceability\":[\"每个风险点带唯一ID:RISK-{模块缩写}-{风险类型}-{三位序号}\",\"风险类型取自 docs/standards.md:STOCK/CALC/CONC/TIME/DATA/SEC/PERF/VAL/PAY\",\"关联需求ID:REQ-{需求模块缩写}-{序号}\"],\"structure\":[{\"risk_matrix\":\"风险评估表:风险ID|功能模块|业务影响|发生概率|技术复杂度|风险分数|风险等级|测试深度\"},{\"risk_report\":\"风险评估报告:按高/中/低三组列出风险点 + 资源分配建议\"},\"评分:业务影响 × 发生概率 × 技术复杂度,三因子各取 1/3/5,取值域 1-125\",\"阈值:≥45 高(深测)/ 15-44 中(常规)/ ≤14 低(冒烟)——全项目唯一定义,见 assets/risk-matrix.md\",\"本技能不产出 9 列用例表 —— 风险点转换为用例由 qa-test-case-design 完成\",\"覆盖率:标注口径(基于当前评估范围),禁止\\\"全覆盖/100%\\\"绝对化表述\"]}"
error-recovery-guidance: "{\"on_failure\":\"风险信号扫描遗漏维度时回退到需求解构补充上下文\",\"retry_behavior\":\"补充上下文后重新扫描风险信号\"}"
categories: "[\"Development\",\"Testing\"]"
depth-requirement: "{\"reference_value\":\"每个功能模块至少识别 5 个风险点\",\"minimum\":\"五大信号雷达(变更/业务/技术/数据/集成)全部扫过;未覆盖的信号维度必须标注原因\"}"
---
> ⚠️ 本技能单独使用效果有限,建议配合完整技能集(12 步工作流)使用。安装:npx skills add Kokxi/qa-test-skills
# 测试风险直觉
## 核心原则
有经验的测试看到某些变更会本能地警觉——**这不是玄学,是可以结构化的信号模型**。
信号雷达扫出风险点 → 量化打分 → 按等级分配测试深度与资源。
## 1. 五大风险信号(速查)
| 信号 | 问什么 | 典型高危特征 |
|------|--------|-------------|
| **变更信号** | 改了什么?多久改一次? | 频繁变更的模块、核心链路上的改动 |
| **业务影响** | 出问题谁受损? | 资金、安全、核心链路 |
| **技术复杂度** | 实现有多难? | 并发、状态流转、分布式 |
| **数据风险** | 数据会怎样错? | 迁移、对账、一致性、精度 |
| **集成风险** | 依赖谁? | 第三方服务、外部支付/消息队列 |
> 五大信号的全量子项与检查清单见 `references/risk-signals.md`。
> **每个功能模块至少识别 5 个风险点**。
## 2. 评分与阈值(全项目唯一定义)
```
风险分数 = 业务影响 × 发生概率 × 技术复杂度
```
| 因子 | 1 分 | 3 分 | 5 分 |
|------|------|------|------|
| 业务影响 | 内部工具/文档 | 内部管理/辅助功能 | **资金/安全/核心链路** |
| 发生概率 | 很少出问题 | 偶尔出问题 | 经常出问题 |
| 技术复杂度 | 简单 CRUD/静态展示 | 复杂规则/数据转换 | **并发/状态/分布式** |
三因子各取 1/3/5,**取值域 1–125**。
| 风险分数 | 等级 | 测试深度 | 资源占比(起步) |
|---------|------|---------|----------------|
| **≥ 45** | 高 | 深测 | ~60%(资深测试) |
| **15 – 44** | 中 | 常规 | ~30%(初中级) |
| **≤ 14** | 低 | 冒烟 | ~10%(自动化) |
> **历史修正**:本技能此前同时存在 `≥15/8-14/≤7` 与 `≥75/25-74/≤24` 两套阈值,
> 输出示例还用了第三套 10 分制(`10×8×7=560`)——三者量纲不一致且互相矛盾。
> 现统一为上表一套。
## 3. 加载时机
| 什么时候读 | 读哪个 |
|-----------|--------|
| 展开五大信号的全量子项 | [`references/risk-signals.md`](references/risk-signals.md) |
| 写风险评估表或按等级分组的报告 | [`assets/risk-matrix.md`](assets/risk-matrix.md)(评分表 + 报告模板 + 填写要求 + 自检) |
## 4. 产出
**风险评估表**:
| 风险 ID | 功能模块 | 业务影响 | 发生概率 | 技术复杂度 | 风险分数 | 风险等级 | 测试深度 |
|---------|---------|---------|---------|-----------|---------|---------|---------|
| RISK-PAY-CONC-002 | 支付/并发回调 | 5 | 5 | 5 | 125 | 高 | 深测 |
| RISK-PAY-STOCK-001 | 支付/库存扣减 | 5 | 3 | 5 | 75 | 高 | 深测 |
| RISK-ORDER-EXPORT-005 | 订单/导出 | 3 | 3 | 3 | 27 | 中 | 常规 |
| RISK-NOTIFY-PUSH-004 | 通知/推送 | 1 | 3 | 1 | 3 | 低 | 冒烟 |
风险类型:`STOCK` 库存 / `CALC` 计算 / `CONC` 并发 / `TIME` 时序 / `DATA` 数据 /
`SEC` 安全 / `PERF` 性能 / `VAL` 校验 / `PAY` 支付
> 完整报告模板(按高/中/低分组 + 资源分配建议)见 `assets/risk-matrix.md`。
> **本技能不产出 9 列用例表**——风险点转用例由 `qa-test-case-design` 完成。
## 5. 好示例 vs 坏示例
**好**:支付网关替换
```text
✓ 变更类型:支付网关替换(高风险)
- 业务影响:资金相关,影响所有交易(5)
- 发生概率:第三方 SDK 替换,历史上回调格式出过问题(5)
- 技术复杂度:并发回调 + 幂等(5)
→ 125 分 → 高风险
→ 测试策略:全量回归 + 专项兼容 + 灰度验证
→ 资源:2 人专项 2 周,线上灰度观察 3 天
```
**坏**:支付网关替换
```text
✗ 风险不大,简单测测就行了
- 没说替换了多少接口,没评估影响范围
- 没考虑资金安全,没考虑第三方不可用
- 没区分"灰度验证"和"全量上线"
→ 结果:上线后新网关回调格式不一致,订单状态不同步
```
## 6. 交付前自检
- [ ] 五大信号雷达(变更/业务/技术/数据/集成)全部扫过
- [ ] 每个功能模块至少 5 个风险点
- [ ] 每个风险点有 `RISK-` ID,类型取自 standards.md
- [ ] 三个因子只取 1/3/5,风险分数 = 三者乘积且表中一致
- [ ] 风险等级按 §2 阈值表查得,无主观判定
- [ ] 三档测试深度不同质(不是全"深测")
- [ ] 每个风险点的测试建议是具体动作,不是"重点关注"
- [ ] **"看起来简单"的功能也扫过雷达**——低直觉 ≠ 低风险
- [ ] 覆盖率已标注口径,无"全覆盖/100%"绝对化表述
don't have the plugin yet? install it then click "run inline in claude" again.