编写验收标准Skill write-acceptance

这个技能用于根据用户故事生成清晰、可测试的验收标准,采用Given-When-Then格式,遵循行为驱动开发(BDD)最佳实践,方便创建测试用例和确保软件质量。关键词:验收标准、用户故事、BDD、测试、Given-When-Then、测试策略。

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

name: 编写验收标准 description: 根据用户故事编写Given-When-Then格式的验收标准,遵循BDD最佳实践。用于创建可测试、清晰的验收标准。 allowed-tools: Read, Write, Glob, Skill argument-hint: <user-story>

编写验收标准命令

为用户故事生成清晰、可测试的Given-When-Then格式验收标准。

流程

步骤1:解析用户故事

接受输入为:

  • 完整的用户故事文本
  • 用户故事ID(如US-001) - 在文档中查找
  • 故事规范的文件路径

提取用户故事格式:

作为[角色]
我希望[操作]
以便[好处]

步骤2:加载技能

调用test-strategy:acceptance-criteria-authoring技能以获取BDD模式。

步骤3:识别场景

对于用户故事,识别:

  1. 愉快路径:主要成功场景
  2. 替代路径:有效变体
  3. 错误场景:可能出错的情况
  4. 边缘案例:边界条件
  5. 安全场景:访问控制、验证

步骤4:编写场景

使用Given-When-Then格式:

特性:[故事中的功能名称]

  背景:
    给定[共同前提条件]
    并且[其他共同设置]

  @happy-path
  场景:作为[角色]成功[操作]
    给定[特定上下文]
    并且[额外上下文]
    当[采取操作时]
    然后[预期结果]
    并且[额外验证]

  @error-handling
  场景:当[条件]时无法[操作]
    给定[导致错误的上下文]
    当[采取操作时]
    然后[错误处理行为]
    并且[系统状态保持]

  @edge-case
  场景:[操作]的边界条件
    给定[边界条件]
    当[在边界处操作时]
    然后[预期的边界行为]

步骤5:应用INVEST验证

根据INVEST检查场景:

  • Independent:可以独立运行
  • Negotiable:细节可以讨论
  • Valuable:提供用户价值
  • Estimable:可以估算大小
  • Small:适合一个冲刺
  • Testable:清晰通过/失败

步骤6:生成SpecFlow(可选)

对于.NET项目,创建步骤定义存根:

[Binding]
public class [Feature]Steps
{
    [Given(@"我以(.*)身份登录")]
    public void GivenIAmLoggedInAs(string role)
    {
        // TODO: 实现步骤
    }

    [When(@"我(.*)")]
    public void WhenI(string action)
    {
        // TODO: 实现步骤
    }

    [Then(@"我应该看到(.*)")]
    public void ThenIShouldSee(string expected)
    {
        // TODO: 实现步骤
    }
}

步骤7:输出

## 创建的验收标准

**用户故事**:[故事ID/标题]

### 生成的场景
| 场景 | 类型 | 优先级 |
|----------|------|----------|
| 成功结账 | 愉快路径 | P1 |
| 支付被拒绝 | 错误 | P1 |
| 购物车过期 | 边缘案例 | P2 |

### 创建的文件
- `features/[feature].feature` - Gherkin场景
- `steps/[Feature]Steps.cs` - 步骤存根(如果是.NET)

### 覆盖检查清单
- [x] 愉快路径已覆盖
- [x] 验证错误已覆盖
- [x] 授权失败已覆盖
- [x] 边界条件已覆盖
- [ ] 并发场景(如果适用)

### 备注
- [任何假设]
- [产品负责人的问题]

示例

从故事文本:

/test-strategy:write-acceptance "作为客户,我希望使用保存的支付方式结账,以便快速完成购买"

从故事ID:

/test-strategy:write-acceptance US-042

从文件:

/test-strategy:write-acceptance docs/stories/checkout.md