首页/开发/软件测试速查/Scenario Outline 与 Examples
用例设计方法62 条

Scenario Outline 与 Examples

Scenario Outline 用占位符参数化场景,Examples 表格提供多组数据:适合同一规则下多组边界值与等价类数据。

软件测试速查开发更新于 2026-10-13

场景大纲是什么

Gherkin 用 Given/When/Then 描述行为;场景大纲(Scenario Outline)再加一张 Examples 表,把同一场景中变化的输入输出参数化——一行数据就是一条执行用例。适合业务规则矩阵:不同金额、不同等级、不同渠道的预期结果,写一次骨架、数据列成表格。

基本信息

关键字Feature、Scenario、Scenario Outline、Examples、Background、Tags
占位符步骤里用尖括号引用 Examples 列名,如 <金额>
Background放所有场景共用的前置步骤,减少重复
Tags场景或示例级标签,驱动筛选执行
实现绑定Cucumber、Behave 等把步骤映射到代码逻辑
数据表Examples 每个列名必须与占位符逐字一致

最小示例

最小示例
Scenario Outline: 会员折扣
  Given 用户等级为 <等级>
  When 下单金额为 <金额> 元
  Then 应付金额为 <应付> 元

  Examples:
    | 等级 | 金额 | 应付 |
    | 普通 | 100  | 100  |
    | 黄金 | 100  | 90   |

典型使用场景

  • 业务规则矩阵:输入组合映射到预期输出,一表打尽
  • 验收标准直转自动化:产品与测试共写一张数据表
  • 回归维护:增删一行数据即增删一条用例
  • 文档价值:Examples 表本身就是规则说明
  • 标签分层:给不同示例行打标签做分级执行

关键字与用途

关键字用途注意
Feature功能文件入口一段业务一个文件
Scenario单场景描述步骤过多时拆分
Scenario Outline参数化场景模板占位符与列名对齐
Examples数据行集合边界与空值也要列
Background公共前置保持简短,别藏逻辑
占位符与列名要逐字一致:拼写不同会导致步骤未替换或匹配失败,出错信息往往不直观。
数据行爆炸时换工具:复杂组合矩阵更适合代码级参数化(pytest 或 JUnit 5),Gherkin 保持业务可读性。
步骤写实现细节(点击第三个按钮)会让场景与界面强耦合:步骤应停在业务语言层,实现放到底层代码。

易错点

  • 步骤里写 UI 操作细节:页面一改所有场景维护失灵,步骤应描述业务行为
  • Examples 只写正常值:边界与空值不进表,规则矩阵缺角
  • 场景过长五脏俱全:几十步一个场景,失败定位像大海捞针
  • 占位符与列名拼写不一致:运行时报错或替换失败,排查耗时
  • Background 塞太多步骤:场景上下文被稀释,读者看不到真正的差异点
  • 示例行不加说明:失败报告只给出一行数据,定位不了是哪个规则组合

数据来源与参考

  • Cucumber 官方文档《Gherkin Reference》
  • ISTQB CTFL 4.0 大纲(数据驱动思路)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌