行為驅動開發是由 Daniel Terhorst-North 在 00 年代初率先提出的,正如他在 2006 年一篇名為《BDD 簡介》的文章中所解釋的那樣。它源自對測試驅動開發 (TDD) 的回應,作為一種幫助新敏捷團隊的程式設計師「直接進入重點」,了解如何處理測試和編碼,並最大限度地減少誤解的方式。BDD 已經發展成為接受層級的分析和自動化測試。Liz Keogh,另一位 BDD 先驅,從 2004 年開始撰寫和廣泛談論它。
早期支援 BDD 的工具
2003 年,Daniel Terhorst-North 開始編寫 JUnit 的替代品,名為 JBehave,使用基於「行為」而不是「測試」的詞彙。Liz Keogh 和 Chris Matts 也開始在早期做出貢獻。受到 Eric Evans 的領域驅動設計中引入的通用語言概念的影響,並專注於商業價值,開發了「Given/When/Then」範本,以可執行的形式擷取故事的接受標準。它部分源於 Connextra 的 Rachel Davies 建立的用於編寫用戶故事的「身為...,我...,以便...」範本,該範本已成為公認的標準。
2005 年,RSpec 專案在 Ruby 語言中支援 BDD,由 Dave Astels、Steven Baker、Aslak Hellesøy 和 David Chelimsky 創立。
Cucumber 的起源
在幫助改進 RSpec 的過程中,Aslak 對錯誤訊息、步驟定義程式碼片段和結果報告等領域的改進有很多想法。RSpec 是為程式設計師設計的,而 RSpec Story Runner 則適用於整個團隊,包括非編碼的利益關係人。
他開始了一個新專案,打算製作一個更好的 Story Runner 版本。他最初稱之為Stories,但要求他當時的未婚妻提供一個更吸引人的名字。她想到了 Cucumber,它就此定案。