CLAUDE LABEN
NEST — サブエージェントがさらにサブエージェントを起動できる深さの既定が1から3になりました。調査・実装・検証を分けた多段構成が追加設定なしで組めますAPISKILL — 同梱のclaude-api skillが既定でClaude Opus 5を使うようになりました。Opus 4.8からの移行手順も併記されていますENVVAR — Managed MCPのallowlist・denylistに書いた${VAR}が、設定ファイル内のenvではなく起動時環境とmanaged-settingsのenvから解決されますA11Y — セッションをスクリーンリーダーで追えるモードが加わりました。削除されたテキストの読み上げにも対応していますVOICE — 音声モードがOpus・Sonnet・Haikuのいずれでも動くようになり、GmailやSlackなど接続済みツールにも届きます。対応言語も増えましたTEACH — 7月14日に教育者向けのClaude for Teachersが発表されました。あわせてカナダのAI研究へ1,000万ドルの拠出が公表されていますNEST — サブエージェントがさらにサブエージェントを起動できる深さの既定が1から3になりました。調査・実装・検証を分けた多段構成が追加設定なしで組めますAPISKILL — 同梱のclaude-api skillが既定でClaude Opus 5を使うようになりました。Opus 4.8からの移行手順も併記されていますENVVAR — Managed MCPのallowlist・denylistに書いた${VAR}が、設定ファイル内のenvではなく起動時環境とmanaged-settingsのenvから解決されますA11Y — セッションをスクリーンリーダーで追えるモードが加わりました。削除されたテキストの読み上げにも対応していますVOICE — 音声モードがOpus・Sonnet・Haikuのいずれでも動くようになり、GmailやSlackなど接続済みツールにも届きます。対応言語も増えましたTEACH — 7月14日に教育者向けのClaude for Teachersが発表されました。あわせてカナダのAI研究へ1,000万ドルの拠出が公表されています
記事一覧/Claude Code
Claude Code/2026-05-05上級

Claude Code で振る舞い駆動開発(BDD)を本番実装する — Gherkin シナリオ自動生成からチーム横断テスト文化の醸成まで

Claude Code を使った振る舞い駆動開発(BDD)の本番実装ガイド。Gherkin シナリオ自動生成、ステップ定義の自動化、Playwright/Cucumber 連携、非エンジニアとの協業体制まで、動作確認済みコードで解説します。

Claude Code204BDDテスト3GherkinPlaywright品質保証3自動化71

プレミアム記事

BDD(振る舞い駆動開発)を導入しようとして、「シナリオが書けない」「ステップ定義の量が膨大になる」「エンジニアしか触らなくなった」という壁にぶつかったことはないでしょうか。

私自身、複数のプロジェクトで BDD を試みては挫折した経験があります。Gherkin の文法は覚えられても、「ビジネス価値を反映したシナリオ」を一から書くのは思いのほか難しく、メンテナンスコストが見合わないと感じていました。

ところが Claude Code を本格的に使い始めてから、BDD への見方が変わりました。シナリオ生成・ステップ定義・テストコードの自動化を Claude Code に任せると、BDD が「書くもの」から「育てるもの」に変わるのです。ここで扱うのはその具体的な実装方法を動作確認済みのコードとともにお伝えします。

BDD の概念を整理しつつ、そして今なぜ Claude Code と組み合わせるのか

BDD(Behavior-Driven Development)は、アプリケーションの「振る舞い」を自然言語で記述し、それをテストコードの仕様として活用する開発手法です。TDD がコードの正しさを検証するのに対し、BDD はビジネスの意図を記述します。

Gherkin という DSL(ドメイン固有言語)を使い、こんな形でシナリオを書きます:

Feature: ユーザーログイン機能
  背景にある価値: 認証されたユーザーのみがダッシュボードにアクセスできる
 
  Scenario: 正しい認証情報でログインが成功する
    Given ユーザーが登録済みアカウントを持っている
    When メールアドレス "test@example.com" とパスワード "SecurePass123" を入力する
    And ログインボタンをクリックする
    Then ダッシュボードページに遷移する
    And 「ようこそ、テストユーザーさん」というメッセージが表示される
 
  Scenario: 誤ったパスワードでログインが失敗する
    Given ユーザーが登録済みアカウントを持っている
    When メールアドレス "test@example.com" と誤ったパスワード "WrongPass" を入力する
    And ログインボタンをクリックする
    Then エラーメッセージ「メールアドレスまたはパスワードが正しくありません」が表示される
    And ダッシュボードには遷移しない

このシナリオを手で書くのは、機能が複雑になるにつれて現実的ではなくなります。Claude Code を使うと、要件定義書やユーザーストーリーからシナリオを自動生成し、さらにステップ定義まで自動化できます。

プロジェクトのセットアップ

必要なパッケージのインストール

まず、Next.js プロジェクトに BDD 環境を整えます:

# Playwright + Cucumber.js の組み合わせで BDD 環境を構築
npm install --save-dev \
  @cucumber/cucumber \
  @playwright/test \
  playwright \
  @types/node
 
# Playwright ブラウザのインストール
npx playwright install chromium

プロジェクト構造はこのように整理します:

project-root/
├── features/                    # Gherkin シナリオファイル
│   ├── auth/
│   │   └── login.feature
│   ├── dashboard/
│   │   └── overview.feature
│   └── support/
│       └── world.ts             # Cucumber の World 設定
├── steps/                       # ステップ定義
│   ├── auth/
│   │   └── login.steps.ts
│   └── common/
│       └── navigation.steps.ts
└── cucumber.config.ts           # Cucumber 設定ファイル

cucumber.config.ts の基本設定:

// cucumber.config.ts
import { defineConfig } from '@cucumber/cucumber';
 
export default defineConfig({
  default: {
    requireModule: ['ts-node/register'],
    require: ['steps/**/*.ts', 'features/support/**/*.ts'],
    format: [
      'progress-bar',
      'json:reports/cucumber-report.json',
      'html:reports/cucumber-report.html'
    ],
    formatOptions: { snippetInterface: 'async-await' },
    worldParameters: {
      baseUrl: process.env.BASE_URL || 'http://localhost:3000',
    },
    timeout: 30000,
    retry: 1,
  },
});

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
BDD シナリオ設計で詰まっていた開発者が、Claude Code を使って Gherkin を自動生成し、今日から実際のプロジェクトに組み込めるようになる
ステップ定義・E2E テスト・CI/CD パイプラインを統合した本番対応の自動品質保証システムを手に入れられる
エンジニアだけでなく PO・QA・デザイナーも参加できるテスト文化の設計方法と、実際のチーム運用パターンを習得できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-07-25
strictAllowlist で Claude Code サンドボックスの外向き通信を締める
Claude Code v2.1.219 の sandbox.network.strictAllowlist を使い、自動化パイプラインの外向き通信を最小の許可リストで締める実践メモ。接続先を洗い出すスクリプトと運用の落とし穴まで。
Claude Code2026-07-19
コミット済みのシンボリックリンクが worktree の外を指す — AI に並列作業を預ける前のリポジトリ点検
Claude Code 2.1.212 で、コミット済みのシンボリックリンクを worktree 作成時に辿ってリポジトリ外へ書きうる不具合が修正されました。パッチが塞いだのは辿りの側です。危険なリンクがコミットされている側を点検する監査スクリプトと、隔離の手順をまとめました。
Claude Code2026-07-18
/fork と /subtask の使い分け — 分岐は手元から切り離し、委譲はセッションに残す
Claude Code 2.1.212 で /fork は会話をバックグラウンドセッションへ複製する挙動に変わり、従来のセッション内サブエージェントは /subtask へ移りました。2つの使い分けと、分岐を増やす前に決めておきたい上限の話です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →