mcpField
B
behavior-driven-testing

behavior-driven-testing

github.com/agent-next测试与质量1153 次安装35 周前更新
代码仓库

关于 behavior-driven-testing

behavior-driven-testing 是一项以用户可见行为为核心的软件测试技能,适合需要规划和验证代码变更的开发者。它通过分阶段工作流与分支矩阵,指导覆盖边界、错误和真实环境场景。

主要功能

  1. 01按分析、设计和执行阶段组织测试
  2. 02用 Gherkin 定义预期行为
  3. 03绘制状态转换与分支矩阵
  4. 04设计等价类和边界测试
  5. 05结合单元、集成与端到端测试
  6. 06核对覆盖情况与发布清单

适用场景

  1. 01为新需求明确可验证的行为
  2. 02检查代码变更影响的分支
  3. 03补充空值、边界和错误响应测试
  4. 04发布前核验测试与覆盖情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agent-next/behavior-driven-testing --skill behavior-driven-testing

安装后在 Claude Code 中输入/behavior-driven-testing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
LICENSE
references/
analysis-phase.md
design-phase.md
branch-matrices.md
execution-phase.md
testing-principles.md
test-templates.md

详细介绍

行为驱动测试

从用户行为出发,而不是代码结构。必须测试用户可访问的每条路径——不遗漏任何分支,也不假设任何边界情况。

核心原则

  1. 行为优先于实现 - 测试用户看到的内容,而不是代码的工作方式
  2. 全面覆盖 - 每个分支、每个条件、每种边界情况
  3. 上下文感知 - 每项测试都必须明确其前置条件
  4. 真实环境验证 - 模拟是工具,而非目的

工作流概览

测试分为三个阶段。请按顺序进行:

Analysis → Design → Execution → Verify Coverage → Ship (or loop back)

分析阶段:

  1. 需求定义 - 使用 Gherkin 规范定义“正确”的行为
  2. 代码变更跟踪 - 准确了解发生了哪些变更
  3. 状态机分析 - 梳理所有 UI 状态和转换
  4. 分支映射 - 创建分支矩阵(核心产物)

设计阶段: 5. 测试用例设计 - 运用等价类划分和边界值分析 6. 影响分析 - 确保新代码不会破坏现有行为 7. 测试优先级排序 - P0(每次提交)→ P3(定期)

执行阶段: 8. 测试数据准备 - 创建夹具、模拟对象和工厂 9. 测试实现 - 编写单元、集成和 E2E 测试 10. 测试执行 - 分阶段运行测试(本地 → CI → 预发布环境) 11. 覆盖率验证 - 验证分支矩阵已全部完成

快速参考:必须测试的分支

类别测试用例优先级
空值null、undefined、""、" "(空白字符)、[]、{}P0
边界值min-1、min、min+1、max-1、max、max+1P1
身份验证状态已登录、已登出、加载中、会话已过期P0
API 响应200+数据、200+空数据、400、401、403、404、500、超时、离线P0
用户混乱操作双击、快速导航、操作中刷新、后退按钮P1
空白字符陷阱(最常见的 Bug)
// ❌ WRONG - whitespace "   " is truthy!
if (!text) throw new Error('Required');

// ✅ CORRECT
if (!text?.trim()) throw new Error('Required');

常见错误

错误为什么不好修正方法
只测试成功路径错误路径占代码的 50%测试所有分支
跳过空值测试这是生产环境中最常见的 Bug分别测试 null、undefined、"" 和空白字符
全部使用模拟模拟会掩盖真实问题添加集成和 E2E 测试
“手动测试过”无法重复,也不可靠将其自动化
忽略加载状态用户会在加载期间进行交互测试加载行为
跳过双击测试用户什么都会双击测试快速交互

分支矩阵模板

每次代码变更都要创建一个分支矩阵:

| ID | Condition | True Behavior | False Behavior | Priority | Status |
|----|-----------|---------------|----------------|:--------:|:------:|
| B01 | user.isPremium | Skip credit check | Check credits | P0 | ⬜ |
| B02 | credits >= required | Proceed | Show error | P0 | ⬜ |
| B03 | credits == required | Boundary: Proceed | - | P1 | ⬜ |

Status: ⬜ Pending | ✅ Passed | ❌ Failed

详细参考资料

仅在需要详细指导时加载这些文件:

发布前检查清单

发布前,请确认:

## Mock Tests (CI)
- [ ] All unit tests pass
- [ ] All integration tests pass
- [ ] Coverage thresholds met

## Real Tests (Before release)
- [ ] E2E tests pass on staging
- [ ] Manual smoke test on staging
- [ ] Core paths verified in real environment

## Branch Matrix
- [ ] All P0 branches tested
- [ ] All P1 branches tested
- [ ] No untested edge cases

## Production (After deploy)
- [ ] Smoke test passes
- [ ] Error rate monitoring normal

相关技能

  • test-driven-development - 先编写测试,再实现功能
  • systematic-debugging - 有条理地调试问题

评论

支持 Markdown