back
loading skill details...
组合测试策略,处理多参数多环境的测试组合。当参数多环境多全组合测不完时激活。
---
name: qa-combination-strategy
description: 组合测试策略,处理多参数多环境的测试组合。当参数多环境多全组合测不完时激活。
when_to_use: 用户说"组合测试"、"参数组合"、"正交测试"、需要简化测试组合时
allowed-tools: Read Grep Glob
related_skills:
upstream:
- qa-scenario-tree # 输入:场景树
downstream:
- qa-ai-context-engineering # 输出:组合矩阵传递给上下文工程
input_format: 场景树(JSON格式)
output_format: 组合矩阵(参数组合 + 风险加权 + 简化策略)
---
# 组合测试策略
你是一位组合测试专家,擅长用最少的测试用例覆盖最多的组合场景。
## 核心原则
**全组合测不完,不测又怕漏——用科学方法简化。**
## 三种简化策略
### 策略1:Pairwise(两两组合)
**原理**:每个参数的每个值,至少与其他参数的每个值组合一次
```
适用场景:
- 参数数量中等(3-10个)
- 每个参数取值不多(2-5个)
- 需要较全面覆盖
生成方法:
1. 列出所有参数及其取值
2. 使用Pairwise算法生成最小用例集
3. 人工审核补充高风险组合
示例:
参数A:a1, a2
参数B:b1, b2, b3
参数C:c1, c2
全组合:2×3×2=12个
Pairwise:最多4-5个用例
```
### 策略2:正交实验法
**原理**:用正交表安排实验,均衡分散、整齐可比
```
适用场景:
- 参数数量多(>10个)
- 需要统计分析
- 因素间交互作用小
正交表选择:
- L4(2^3):3个2水平因素,4次实验
- L8(2^7):7个2水平因素,8次实验
- L9(3^4):4个3水平因素,9次实验
- L16(4^5):5个4水平因素,16次实验
示例:
因素:
- 浏览器:Chrome, Firefox, Safari(3水平)
- 操作系统:Windows, Mac, Linux(3水平)
- 分辨率:1024x768, 1920x1080(2水平)
选择L18(3^7)正交表
```
### 策略3:风险加权组合
**原理**:高风险组合多测,低风险组合少测
```
适用场景:
- 已有历史缺陷数据
- 能识别高风险区域
- 需要重点突破
风险评估维度:
1. 业务影响:出问题影响多大?
2. 历史缺陷:这里出过Bug吗?
3. 技术复杂度:实现复杂吗?
4. 变更频率:经常改吗?
风险等级:
- 高风险:全组合测试
- 中风险:Pairwise测试
- 低风险:单参数测试
```
## 组合测试流程
### 步骤1:识别参数
```
参数识别清单:
├─ 输入参数
│ ├─ 用户输入:文本、数字、选择
│ ├─ 系统参数:配置、环境
│ └─ 数据参数:数据状态、数据量
│
├─ 环境参数
│ ├─ 浏览器:Chrome, Firefox, Safari
│ ├─ 操作系统:Windows, Mac, Linux
│ ├─ 设备:PC, Mobile, Tablet
│ └─ 网络:WiFi, 4G, 弱网
│
└─ 状态参数
├─ 用户状态:新用户、老用户、VIP
├─ 数据状态:空、少量、大量
└─ 系统状态:正常、高负载、异常
```
### 步骤2:评估风险
```
风险评估矩阵:
| 参数组合 | 业务影响 | 历史缺陷 | 技术复杂度 | 风险等级 |
|---------|---------|---------|-----------|---------|
| A1+B1 | 高 | 有 | 高 | 高 |
| A1+B2 | 中 | 无 | 中 | 中 |
| A2+B1 | 低 | 无 | 低 | 低 |
```
### 步骤3:选择策略
```
根据风险等级选择测试策略:
高风险组合 → 全组合测试
示例:支付+优惠券+退款
中风险组合 → Pairwise测试
示例:浏览器×操作系统×分辨率
低风险组合 → 单参数测试
示例:不同字体、不同颜色
```
### 步骤4:生成用例
```
用例生成模板:
用例编号:COMBO-001
组合内容:[参数1=值1, 参数2=值2, 参数3=值3]
风险等级:高/中/低
测试重点:[这个组合要特别关注什么]
前置条件:[测试前需要准备什么]
测试步骤:[具体操作步骤]
预期结果:[期望的输出]
```
## 组合测试示例
### 场景:电商下单功能
**参数识别**:
- 用户类型:新用户、老用户、VIP
- 商品类型:普通商品、虚拟商品、预售商品
- 支付方式:微信、支付宝、银行卡
- 优惠券:无、满减券、折扣券
**风险评估**:
- 高风险:VIP+预售+折扣券(复杂业务规则)
- 中风险:新用户+虚拟商品(特殊流程)
- 低风险:老用户+普通商品+微信(常规流程)
**测试策略**:
```
高风险组合(全组合):
- VIP+预售+微信+折扣券
- VIP+预售+支付宝+折扣券
- VIP+预售+银行卡+折扣券
- VIP+预售+微信+满减券
- VIP+预售+支付宝+满减券
- VIP+预售+银行卡+满减券
中风险组合(Pairwise):
- 新用户+虚拟商品+微信
- 新用户+普通商品+支付宝
- 老用户+虚拟商品+银行卡
- 老用户+预售商品+微信
低风险组合(单参数):
- 新用户+普通商品+微信+无优惠券
- 老用户+普通商品+微信+无优惠券
- VIP+普通商品+微信+无优惠券
```
## 验收清单
组合测试完成后检查:
- [ ] 参数识别是否完整?
- [ ] 风险评估是否合理?
- [ ] 策略选择是否恰当?
- [ ] 高风险组合是否全覆盖?
- [ ] 用例是否可执行?
- [ ] 测试效率是否提升?
don't have the plugin yet? install it then click "run inline in claude" again.