360 Secure SkillHub
360 安全技能中心

qa-combination-strategy

当参数或环境组合过多时,按识别参数、评估风险、选择策略、生成用例的流程,采用正交实验、Pairwise 或风险加权压缩组合数量,输出组合覆盖矩阵、成对组合列表、N 维组合分析、覆盖遗漏及带编号的测试用例,并提示高风险组合需全组合覆盖。

kokxi
kokxi
热度 58.50
最近更新 2026-09-29 12:27:43
分类:开发依赖:读写文件 / 内部调用大模型应用场景:报告撰写 / 工作流 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add qa-combination-strategy
Metadata
displayName
组合测试策略
name
qa-combination-strategy
description
当参数多、环境多、"全组合测不完"时运用正交试验法、Pairwise和判定表来解决组合爆炸问题。如果系统有多个输入字段的组合依赖关系(如"A=1且B=2时C不能为3")、或者需要适配多浏览器多操作系统多语言,一定要用此技能来设计高效的组合覆盖方案。不要试图全覆盖——组合测试的核心是用最少的用例达到最高的组合覆盖率。输出组合覆盖矩阵并标注覆盖遗漏。 触发场景:组合测试、参数组合、正交测试、组合爆炸、Pairwise、全组合测不完、判断表、参数多环境多时。 Use when the user asks about: parameter and environment combination explosion — orthogonal arrays, pairwise testing, decision tables, and combinatorial test reduction.
license
MIT
allowed-tools
Read Grep Glob
metadata
{"slug":"qa-combination-strategy","display-name":"组合测试策略","version":"1.8.0","when-to-use":"用户说\"组合测试\"、\"参数组合\"、\"正交测试\"、\"组合爆炸\"、\"Pairwise\"、\"全组合测不完\"、\"判断表\"、需要简化测试组合、参数多环境多时","related-skills":"{\"upstream\":[\"qa-scenario-tree\"],\"downstream\":[\"qa-ai-context-engineering\"]}","references":"[\"references/reduction-strategies.md\"]","input-format":"{\"required\":[{\"name\":\"场景树\",\"type\":\"object\",\"description\":\"来自qa-scenario-tree的场景树\"},{\"name\":\"需求解构表\",\"type\":\"object\",\"description\":\"来自qa-req-deconstruction的需求解构结果\"}],\"optional\":[{\"name\":\"风险评估\",\"type\":\"object\",\"description\":\"来自qa-risk-intuition的风险评估\"}]}","output-format":"{\"traceability\":[\"每个组合矩阵带唯一ID(COMBO-XXXX)\",\"关联场景ID:SC-{场景模块缩写}-{序号}\"],\"structure\":[\"覆盖率:标注口径(基于现有需求/输入文档),禁止\\\"全覆盖/100%\\\"绝对化表述;缺失模块标注\\\"未覆盖+原因\\\"\",{\"combination_matrix\":\"组合覆盖矩阵\"},{\"pairwise_combinations\":\"成对组合列表\"},{\"n_way_combinations\":\"N维组合分析\"},{\"coverage_gaps\":\"组合覆盖遗漏\"}]}","error-recovery-guidance":"{\"on_failure\":\"回退到全组合方案或增加取样率\",\"retry_behavior\":\"扩大取样范围后重新生成组合方案\"}","categories":"[\"Development\",\"Testing\"]","depth-requirement":"{\"reference_value\":\"根据参数数量和取值范围调整策略深度:简单×1/中等×2/复杂×3\",\"minimum\":\"至少使用1种组合简化策略\"}"}

⚠️ 本技能单独使用效果有限,建议配合完整技能集(12 步工作流)使用。安装:npx skills add Kokxi/qa-test-skills

⚠️ 安全警告:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。

组合测试策略

核心原则

全组合测不完,不测又怕漏——用科学方法简化。提供 Pairwise、正交实验法、风险加权组合三种简化策略。组合数必须少于全量组合,并标注覆盖分析。

加载时机

什么时候读 读哪个
设计 Pairwise/正交/风险加权时 references/reduction-strategies.md

三种简化策略的完整内容已下沉至 references/reduction-strategies.md,避免每次触发都占用上下文。

组合测试流程

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

策略选择速查表

特征 推荐策略 组合压缩比 最佳适用
参数3-10个,每参数2-5值 Pairwise 全组合的10-30% 功能、兼容测试
参数>10个,需统计分析 正交实验 全组合的5-20% 配置、环境兼容测试
有历史缺陷数据 风险加权 按需调整 回归测试、重点突破
高安全/高风险 全组合 100% 支付、安全模块

常见反模式

  1. 一刀切选Pairwise:不管场景都用两两组合 → 高安全场景必须全组合,低风险场景单参数即可
  2. 参数遗漏:只列了输入参数,漏了环境/状态参数 → 参数识别清单必须覆盖输入/环境/状态三类
  3. 对结果不排序:Pairwise跑出100条用例直接全测 → 按风险等级排序,先跑高风险组合
  4. 忽略交互:只测单参数,不测参数间组合 → 所有业务规则设计到的参数间交互必须覆盖

异常处理引导

场景 表现 处理方式
参数过多导致组合爆炸 简化后仍有1000+组合 按风险加权:高风险组合全覆盖,低风险抽样
环境差异导致不一致 不同环境结果不同 锁定基线环境,标注差异,分环境执行
业务规则频繁变化 组合条件随需求变更 稳定参数做基础组合,易变参数单独测试
遗漏关键组合 上线后发现未覆盖的组合有问题 更新检查清单,增加历史缺陷驱动的组合权重

输出示例

场景:电商下单功能测试(参数:用户类型×商品类型×支付方式) → 参数识别:用户(新用户/老用户/VIP)、商品(普通/虚拟/预售)、支付(微信/支付宝/银行卡) → 策略选择:Pairwise生成9条组合覆盖所有两两交互 → 风险加权:VIP用户+预售商品+微信支付标记为高风险(深测)

参数太多(10个参数×每个5种取值)全组合2小时跑不完 → 先用Pairwise压缩到核心组合,再补充高风险组合深测

检查清单

组合测试完成后检查:

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