🥒

第1回:BDD(振る舞い駆動開発)とは?AI時代における仕様管理への解決策

に公開

ChatGPTなどのAIツールを使ってコーディングするのは、もはや当たり前になりつつあります。私自身も日常的に活用していますが、仕様のやりとりがチャットの中に埋もれてしまい、後から確認・管理するのが難しいと感じる場面が増えてきました。

この問題を解決する方法の一つが、AIツールとBDD(振る舞い駆動開発)を組み合わせた開発ワークフローです。

本連載「AI × BDDで変わるソフトウェア開発|自動化と高品質を両立する新時代の開発手法」では、3回にわたってその具体的なワークフローをご紹介していきます。

キーワードは、「仕様を自然言語で記述し、それをもとにAIと開発とテストコード生成をする」 という新しいスタイル。仕様とコードの間のギャップを埋め、開発効率と品質を同時に高めるヒントが詰まったシリーズです。


📘 この連載の概要

ChatGPTやGitHub CopilotなどのAIツールが普及し、コードを"書く"スピードは劇的に向上しました。
しかし一方で、「そもそも何を作るべきか?」「この仕様はどこに残っているのか?」という課題はより深刻になっています。

この連載では、以下の要素を組み合わせた次世代の開発フローを提案します:

  • BDD(Behavior Driven Development)による仕様の明文化
  • Gherkin形式による自然言語シナリオ
  • AIツールによるコード生成とテスト生成
  • Playwright + Cucumberによる自動E2Eテストの実行
  • 仕様・実装・テストをGit上で一元管理

👤 対象読者

  • JavaScript / TypeScript の開発経験がある方
  • AIツール(ChatGPTやCopilot)を開発に活かしてみたい方
  • 自動テストやE2Eに興味がある方
  • チーム開発で「仕様の齟齬」や「認識のズレ」を感じたことがある方

まず第1回では、その中核となる考え方「BDD(振る舞い駆動開発)」について掘り下げて解説します。

✅ この記事で分かること

  • BDD(Behavior Driven Development・振る舞い駆動開発)とは何か?
  • BDDが必要とされる背景(Three Amigosなど)
  • 仕様・テスト・ドキュメントを1つにまとめる価値
  • AIツールのチャットは“仕様管理”には向いていない
  • AI時代こそ、なぜBDD的な考え方が重要になるのか?

💡 BDDとは?〜仕様・開発・テストの「共通言語」〜

BDD(振る舞い駆動開発)とは、「このアプリはどう振る舞うべきか?」を自然言語ベースのシナリオで定義し、それを仕様・テスト・ドキュメントとして活用する開発手法です。

🔍 背景:なぜBDDが必要なのか?

現代のチーム開発では、次の3者が密接に関わります:

  • 👩‍💼 ビジネス担当(プロダクトオーナー)
  • 👨‍💻 開発者(エンジニア)
  • 🧪 テスト担当(QAエンジニア)

🧠 それぞれ「別のもの」を見ている現実

実際には、彼らはそれぞれ違う観点・ドキュメント・言語を見ながら開発に関わっています。

役割 見ているもの 使っている言語や視点
ビジネス担当 顧客の要望、価値、業務フロー 自然言語、会話、スライド、Notion、Excelなど
開発者 実装仕様、データ構造、技術要件 TypeScript、API設計、IDE上のコード
QAエンジニア テスト条件、境界値、バグの再現性 テストケース、テスト管理ツール(TestRailなど)

このように、3人がそれぞれ“別のドキュメント”を見ている状態では、
仕様のズレ・テストの抜け漏れ・手戻りが起こりやすくなります。


🤝 BDDで「全員が同じものを見る」状態へ

BDDでは、この3者が 共通の自然言語シナリオ(=Gherkin) を作成・参照します。

  • 👩‍💼 ビジネス担当は、GherkinのFeatureScenarioを読んで「ビジネス要件が満たされているか」を判断
  • 👨‍💻 開発者は、それに基づいて仕様通りのロジックを実装
  • 🧪 QAは、同じGherkinからステップ定義を使って自動テストを実行・検証

このように、全員が“同じシナリオ”を軸に開発・テストを進められるようになるのが、BDDの最大のメリットです。


✅ BDDで書かれたシナリオの例(Gherkin)

Scenario: 正しいログイン
  Given ユーザーがログインページを開いている
  When 正しいメールアドレスとパスワードを入力する
  Then マイページに遷移する

このシンプルな構文で、仕様・テスト・ドキュメントが一体となった資産をチームで共有できます。
テキストベースでコードの様に管理できるので、Gitで履歴が管理できるようになります。


🧱 チャットは“実装”には強いが、“仕様管理”には向いていない

AIはコード生成には非常に優れていますが、
それがどんな意図で書かれたのかどんな要件に基づいているのかまでは
コードには自動的に記録されません。

  • 🗑 仕様の意図が「使い捨てのチャット」に閉じ込められてしまう
  • 📄 チームで共有すべき内容が、個人のチャットセッションに留まる
  • 🔍 後からコードを読み返しても、要件やユースケースが再構成できない

先程の3人に加え もう1人仕様を共有する人が増えた ような状態ですねw


🧩 BDDはAI時代の仕様管理の解決策になる

Gherkinなどで書かれたBDDシナリオは:

  • 📄 構造化された自然言語としてGitで管理できる
  • 🧠 人間にもAIにも読みやすいフォーマットである
  • 🔁 実装コードやテストコードと一緒にバージョン管理が可能

つまり、仕様をチャットに埋もれさせない唯一の手段がBDDとも言えます。
これはAI駆動開発における 「信頼できる仕様の見える化」 なのです。


🧭 この連載で実施するBDD・AI駆動開発の流れ

次の記事は

次回の記事
第2回:Cucumber・Gherkin・Playwrightとは?BDDの必須ツール
ではBDDでの開発に必要なツールについて説明をします。

👨‍💻 著者について

東京とアムステルダムを拠点に、東欧やパキスタンのオフショアチームとフルスタック開発、QAコンサル、テスト自動化、BDD、PMあたりをやっています。
ChatGPTやPlaywrightを活かした自動テストや開発環境づくりのご相談も歓迎です。

Discussion