mcpField
B
behavior-driven-testing

behavior-driven-testing

github.com/agent-nextテスト・品質1153 回インストール35 週間前に更新
リポジトリ

behavior-driven-testing について

behavior-driven-testing は、ユーザーに見える振る舞いを軸に、コード変更のテストを計画・検証するためのスキルです。段階的なワークフローと分岐マトリクスで、境界値やエラー、実環境のシナリオを網羅します。

主な機能

  1. 01分析・設計・実行の段階でテストを整理
  2. 02Gherkinで期待する振る舞いを定義
  3. 03状態遷移と分岐をマッピング
  4. 04同値分割と境界値のテストを設計
  5. 05ユニット・統合・E2Eテストを組み合わせ
  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. 実環境での検証 - モックはツールであり、目的地ではありません

ワークフローの概要

テストは3つのフェーズで進めます。順番に実施してください。

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
空白文字の落とし穴(最もよくあるバグ)
// ❌ WRONG - whitespace "   " is truthy!
if (!text) throw new Error('Required');

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

よくある間違い

間違い問題点対策
正常系のみをテストするエラー処理の経路はコードの50%を占めますすべての分岐をテストします
空の値のテストを省略する本番環境で最もよくあるバグです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

詳細なリファレンス

詳細なガイダンスが必要な場合にのみ、次のファイルを読み込んでください。

  • 分析の詳細:references/analysis-phase.mdを参照

    • Gherkin 仕様の形式
    • 状態マシン図
    • 分岐マッピングの完全な手法
  • テストテンプレート:references/test-templates.mdを参照

    • ユニットテストの構成(Vitest/Jest)
    • 統合テストのパターン
    • E2E テストの例(Playwright)
  • 分岐マトリクス:references/branch-matrices.mdを参照

    • エントリーポイントの分岐
    • 認証の分岐
    • API レスポンスの分岐
    • 入力検証の分岐
  • テストの原則:references/testing-principles.mdを参照

    • モックテストと実環境テスト
    • 手元にないテスト条件の作成
    • 段階的なテスト戦略(1~4日目)

リリース前チェックリスト

リリース前に、次の項目を確認してください。

## 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 - 問題を体系的にデバッグします

コメント