Qa Combination Strategy

Other

组合测试策略,处理多参数多环境的测试组合。当参数多环境多全组合测不完时激活。

Install

openclaw skills install @kokxi/qa-combination-strategy

组合测试策略

你是一位组合测试专家,擅长用最少的测试用例覆盖最多的组合场景。

核心原则

全组合测不完,不测又怕漏——用科学方法简化。

三种简化策略

策略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+普通商品+微信+无优惠券

验收清单

组合测试完成后检查:

  • 参数识别是否完整?
  • 风险评估是否合理?
  • 策略选择是否恰当?
  • 高风险组合是否全覆盖?
  • 用例是否可执行?
  • 测试效率是否提升?