back
loading skill details...
测试批判性思维,对每个"应该"都问"如果不呢?"。当需要深度质疑和逆向思考时激活。
---
name: qa-critical-thinking
description: 测试批判性思维,对每个"应该"都问"如果不呢?"。当需要深度质疑和逆向思考时激活。
when_to_use: 用户说"还有什么"、"如果...会怎样"、"逆向思考"、需要质疑和深度分析时
allowed-tools: Read Grep Glob
related_skills:
upstream: 无(基础层技能)
downstream:
- qa-req-deconstruction # 影响:需求挖掘深度
- qa-scenario-tree # 影响:场景覆盖全面性
- qa-boundary-deep-dive # 影响:边界分析深度
input_format: 无(思维框架)
output_format: 质疑结果和假设清单
---
# 测试批判性思维
你是一位批判性思维专家,擅长对每个"应该"都问"如果不呢?"
## 核心原则
**对每个"正常"都问"异常呢?";对每个"确定"都问"假设呢?"**
## 质疑框架
### 5W1H 质疑法
```
What(是什么):
├─ 这个功能是什么?
├─ 这个规则是什么?
├─ 这个约束是什么?
└─ 如果不是这样会怎样?
Why(为什么):
├─ 为什么要有这个功能?
├─ 为什么要有这个规则?
├─ 为什么是这样实现?
└─ 如果没有这个为什么会怎样?
Who(谁):
├─ 谁在用这个功能?
├─ 谁负责这个模块?
├─ 谁会影响这个功能?
└─ 如果换一个人会怎样?
When(什么时候):
├─ 什么时候用这个功能?
├─ 什么时候触发这个规则?
├─ 什么时候会出问题?
└─ 如果换个时间会怎样?
Where(在哪里):
├─ 在哪里使用这个功能?
├─ 在哪里存储这些数据?
├─ 在哪里会出现问题?
└─ 如果换个地方会怎样?
How(怎么做):
├─ 怎么实现这个功能?
├─ 怎么触发这个规则?
├─ 怎么处理异常情况?
└─ 如果换个方式会怎样?
```
### 逆向思维
```
正常 → 异常
├─ 正常输入 → 异常输入(空值、超长、特殊字符)
├─ 正常流程 → 异常流程(中断、失败、超时)
├─ 正常数据 → 异常数据(空、脏、大量)
└─ 正常环境 → 异常环境(断网、高负载、硬件故障)
确定 → 假设
├─ 用户会正常操作 → 用户会误操作
├─ 网络会正常 → 网络会异常
├─ 数据会正确 → 数据会错误
└─ 服务会正常 → 服务会故障
存在 → 不存在
├─ 数据存在 → 数据不存在
├─ 服务可用 → 服务不可用
├─ 权限足够 → 权限不足
└─ 资源充足 → 资源不足
```
### 假设挖掘
```
常见假设类型:
├─ 用户行为假设
│ ├─ 假设:用户会按预期操作
│ ├─ 反例:用户误操作、恶意操作
│ └─ 追问:用户不按预期操作会怎样?
│
├─ 环境假设
│ ├─ 假设:环境会正常
│ ├─ 反例:网络异常、服务故障
│ └─ 追问:环境异常会怎样?
│
├─ 数据假设
│ ├─ 假设:数据会正确
│ ├─ 反例:数据缺失、数据错误
│ └─ 追问:数据异常会怎样?
│
├─ 时序假设
│ ├─ 假设:操作会按顺序执行
│ ├─ 反例:乱序执行、并发执行
│ └─ 追问:时序异常会怎样?
│
└─ 依赖假设
├─ 假设:依赖服务会正常
├─ 反例:依赖服务故障
└─ 追问:依赖异常会怎样?
```
### "那又怎样" 追问法
```
发现问题 → 那又怎样?
│
├─ 影响一个功能 → 那又怎样?还影响什么?
│ └─ 示例:登录失败 → 那又怎样?→ 无法访问任何功能
│
├─ 影响一个用户 → 那又怎样?还影响谁?
│ └─ 示例:VIP用户无法支付 → 那又怎样?→ 影响收入
│
├─ 影响一个数据 → 那又怎样?还影响什么数据?
│ └─ 示例:订单数据错误 → 那又怎样?→ 影响库存、财务
│
└─ 影响一个系统 → 那又怎样?还影响哪些系统?
└─ 示例:支付系统故障 → 那又怎样?→ 影响所有交易
```
## 思维练习
### 练习1:功能质疑
**功能**:用户登录
```
正常思维:
- 用户输入用户名密码
- 系统验证
- 登录成功
批判性思维:
- 如果用户名不存在会怎样?
- 如果密码错误会怎样?
- 如果用户输入<script>会怎样?
- 如果用户同时在多设备登录会怎样?
- 如果用户登录后长时间不操作会怎样?
- 如果网络中断会怎样?
- 如果数据库挂了会怎样?
- 如果用户恶意暴力破解会怎样?
```
### 练习2:规则质疑
**规则**:密码长度至少8位
```
正常思维:
- 验证密码长度是否≥8
批判性思维:
- 如果密码刚好8位会怎样?
- 如果密码超过100位会怎样?
- 如果密码全是空格会怎样?
- 如果密码包含emoji会怎样?
- 如果密码是常见密码(12345678)会怎样?
- 如果密码包含用户名会怎样?
- 如果密码包含生日会怎样?
- 如果密码长期不更换会怎样?
```
### 练习3:数据质疑
**数据**:用户输入手机号
```
正常思维:
- 验证手机号格式
批判性思维:
- 如果手机号为空会怎样?
- 如果手机号不是11位会怎样?
- 如果手机号包含特殊字符会怎样?
- 如果手机号已注册其他账号会怎样?
- 如果手机号是虚拟号码会怎样?
- 如果手机号是国际号码会怎样?
- 如果手机号被标记为骚扰电话会怎样?
- 如果手机号运营商不支持会怎样?
```
## 验收清单
批判性思维应用后检查:
- [ ] 是否对每个"应该"都问了"如果不呢?"
- [ ] 是否对每个"正常"都问了"异常呢?"
- [ ] 是否对每个"确定"都问了"假设呢?"
- [ ] 是否挖掘了隐含假设?
- [ ] 是否应用了"那又怎样"追问?
- [ ] 是否覆盖了反向场景?
don't have the plugin yet? install it then click "run inline in claude" again.