ビヘイビア駆動開発(BDD)は、Daniel Terhorst-North氏によって2000年代初頭に考案されました。彼は2006年の記事Introducing BDDで説明しています。これは、テスト駆動開発(TDD)への対応から生まれ、新しいアジャイルチームのプログラマーがテストとコーディングへのアプローチ方法を理解し、誤解を最小限に抑えるための「良いもの」をすぐに理解できるようにするための方法として生まれました。BDDは、受け入れレベルでの分析と自動テストの両方へと進化しました。もう一人のBDDの先駆者であるLiz Keogh氏は、2004年からBDDについて広く執筆し、講演を始めました。
BDDをサポートする初期のツール
2003年、Daniel Terhorst-North氏は、「テスト」ではなく「ビヘイビア」に基づいた語彙を使用して、JUnitの代替となるJBehaveの開発を始めました。Liz Keogh氏とChris Matts氏も初期から貢献しました。Eric Evans氏のドメイン駆動設計で導入されたユビキタス言語の概念の影響を受け、ビジネス価値にも焦点を当て、ストーリーの受け入れ基準を実行可能な形式で捉えるために「Given/When/Then」テンプレートが開発されました。Rachel Davies氏がConnextraで作成し、認識された標準となったユーザーストーリーを記述するための「As a…、I…、So that…」テンプレートから一部派生したものです。
2005年には、Ruby言語でBDDをサポートするRSpecプロジェクトが、Dave Astels氏、Steven Baker氏、Aslak Hellesøy氏、David Chelimsky氏によって設立されました。
Cucumberの起源
Aslak氏はRSpecの改良を支援する中で、エラーメッセージ、ステップ定義スニペット、結果レポートなどの分野で多くの改良のアイデアを得ました。RSpecはプログラマー向けに設計されていましたが、RSpec Story Runnerは、コーディングを行わない利害関係者を含むチーム全体向けでした。
彼はStory Runnerの改良版を作成することを目的とした新しいプロジェクトを開始しました。当初は*Stories*と呼んでいましたが、当時の婚約者に覚えやすい名前を尋ねました。彼女は*Cucumber*を思いつき、それが定着しました。