CLAUDE LABEN
2.1.278 — auto モードの分類器が Claude API・Enterprise・Bedrock / Vertex / Foundry でサーバー側の既定になりました。分類器の分は課金されず、/status に Auto mode server の行が増えていますTASKOUT — TaskOutput ツールが削除されました。taskOutputMaxChars と TASK_MAX_OUTPUT_LENGTH は無効になり、バックグラウンドの出力は Read で読む形に一本化されています10/07 — 管理構成キーの旧い綴りの受付は10月7日 正午 PT までです。残り17日で、締切を過ぎた設定は書き直すまでそのコネクタが使えなくなりますBUNPANIC — 更新で入った版が、起動しただけで落ちるという報告が出ています。同じ機械で前の版は動くとのことで、環境ではなく版の側が疑われていますNEW — Cowork と Claude Code のどちらに置くかを、承認の境界で決めた記録ですSONNET4.5 — 廃止表に並ぶ日付は「それより前には終わらない下限」です。Sonnet 4.5 は今も有効で、非推奨の告知は出ていません2.1.278 — auto モードの分類器が Claude API・Enterprise・Bedrock / Vertex / Foundry でサーバー側の既定になりました。分類器の分は課金されず、/status に Auto mode server の行が増えていますTASKOUT — TaskOutput ツールが削除されました。taskOutputMaxChars と TASK_MAX_OUTPUT_LENGTH は無効になり、バックグラウンドの出力は Read で読む形に一本化されています10/07 — 管理構成キーの旧い綴りの受付は10月7日 正午 PT までです。残り17日で、締切を過ぎた設定は書き直すまでそのコネクタが使えなくなりますBUNPANIC — 更新で入った版が、起動しただけで落ちるという報告が出ています。同じ機械で前の版は動くとのことで、環境ではなく版の側が疑われていますNEW — Cowork と Claude Code のどちらに置くかを、承認の境界で決めた記録ですSONNET4.5 — 廃止表に並ぶ日付は「それより前には終わらない下限」です。Sonnet 4.5 は今も有効で、非推奨の告知は出ていません
記事一覧/Claude Code
Claude Code/2026-05-05上級

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

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

Claude Code256BDDテスト3GherkinPlaywright品質保証3自動化88

プレミアム記事

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 — @cucumber/cucumber 13.x で動作を確認
// defineConfig は export されていないため、素のオブジェクトを default export します
const config = {
  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',
    },
    retry: 1,
    // timeout はここに書いても読まれません。理由は次のセクションで詳しく述べます
  },
};
 
export default config;

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

この記事の続きを読む

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

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

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-09-02
モデル切り替えの記録と歯止めを、フック2本で作る
PreModelSwitch と PostModelSwitch を使い、無人実行中のモデル切り替えを記録するフックと、約束していない切り替えだけを止めるフックをゼロから作ります。実測値つきの手順です。
Claude Code2026-09-01
heredoc のクォートを1つ落とすと、ログに書いた金額や日付が別物になります
未クォートの heredoc は本文の変数とバックティックを実行します。実測した4通りの書き換わり方、3種類のクォート記法の比較、プレースホルダと sed で値を安全に埋める手順、既存スクリプトを棚卸しする検出コードまでをまとめました。
Claude Code2026-08-31
無音で半分になっていた定期実行と、欠落を捕まえる突き合わせ
1日2回動いているはずのバッチが、実際には1回しか起動していませんでした。エラーは1件も出ていません。期待起動回数と実行記録を突き合わせて、無音の欠落を検出する仕組みを作ります。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます