BDD场景编写Skill bdd-scenarios

BDD场景编写技能用于帮助团队编写清晰、可维护的行为驱动开发(BDD)场景,以定义系统行为、设置验收标准、识别边缘案例,并提升测试覆盖率。关键词:BDD、场景编写、验收标准、测试用例、行为规范、软件开发、团队沟通。

测试 0 次安装 2 次浏览 更新于 3/25/2026

name: BDD场景编写 description: 在编写有效的BDD场景时使用,包括验收标准、边缘案例和场景组织。用于定义行为规范。 allowed-tools:

  • Bash
  • Read

BDD场景编写

学习编写清晰、可维护的BDD场景,有效捕捉业务需求并推动实现。

编写好场景

一个好的场景应该是:

  • 具体:测试一个行为
  • 声明性:描述什么,而不是如何
  • 业务聚焦:使用领域语言
  • 独立:不依赖其他场景
# 好场景 - 具体和声明性
Scenario: 客户获得忠诚度折扣
  Given 一个拥有黄金会员状态的客户
  And 购物车总金额为100美元
  When 客户继续到结账
  Then 应应用10%的忠诚度折扣
  And 最终总金额应为90美元

# 坏场景 - 过于实现聚焦
Scenario: 应用折扣
  Given 我点击会员下拉菜单
  And 我从列表中选择"黄金"
  When 我点击结账按钮
  Then JavaScript计算10%的折扣

验收标准格式

Feature: 订单退款

  # 基于规则的验收标准
  Rule: 30天内可全额退款

    Scenario: 退货窗口内请求退款
      Given 一个15天前下的订单
      When 客户请求退款
      Then 应处理全额退款

    Scenario: 退货窗口后请求退款
      Given 一个45天前下的订单
      When 客户请求退款
      Then 退款应被拒绝
      And 客户应看到"退货窗口已过期"

边缘案例场景

Feature: 用户注册

  Scenario: 成功注册
    Given 我在注册页面上
    When 我提交有效的注册详情
    Then 我的账户应被创建

  # 边缘案例
  Scenario: 使用已存在的电子邮件注册
    Given 存在一个用户邮箱为"existing@example.com"
    When 我尝试使用邮箱"existing@example.com"注册
    Then 我应看到"电子邮件已注册"

  Scenario: 使用无效电子邮件格式注册
    When 我尝试使用邮箱"not-an-email"注册
    Then 我应看到"请输入有效的电子邮件"

  Scenario: 使用空必填字段注册
    When 我提交带有空字段的注册表单
    Then 我应看到必填字段的验证错误

场景标签和组织

@authentication @critical
Feature: 用户登录

  @smoke
  Scenario: 基本登录流程
    # ...

  @security
  Scenario: 多次失败尝试后的账户锁定
    # ...

  @wip
  Scenario: 双因素认证
    # 正在进行中

何时使用此技能

在需要时使用BDD场景编写:

  • 定义用户故事的验收标准
  • 记录预期系统行为
  • 创建全面的测试覆盖率
  • 在开发早期识别边缘案例
  • 清晰沟通需求

最佳实践

  • 从快乐路径场景开始
  • 系统地添加边缘案例
  • 使用标签进行组织和过滤
  • 保持场景在3-7个步骤
  • 在实现前编写场景
  • 与利益相关者审查场景

常见陷阱

  • 在实现后编写场景
  • 每个场景包含太多步骤
  • 使用模糊或模棱两可的语言
  • 忘记负面测试案例
  • 未能有效使用标签组织