行爲驅動開發

行爲驅動開發 ( 縮寫BDD ） 是一種敏捷軟件開發的技術 ， 它鼓勵軟件項目中的開發者 、 QA和非技術人員或商業參與者之間的協作 。 BDD最初是由Dan North在2003年命名 ， 它包括驗收測試和客戶測試驅動等的極限編程的實踐 ， 作爲對測試驅動開發的回應 。 在過去數年裏 ， 它得到了很大的發展 。 2009年 ， 在倫敦發表的 “ 敏捷規格 ， BDD和極限測試交流 ” 中 ， Dan North對BDD給出瞭如下定義 ： BDD是第二代的 、 由外及內的 、 基於拉 ( pull ) 的 、 多方利益相關者的 ( stakeholder ) 、 多種可擴展的 、 高自動化的敏捷方法 。 它描述了一個交互循環 ， 可以具有帶有良好定義的輸出 （ 即工作中交付的結果 ） ： 已測試過的軟件 。 BDD的重點是通過與利益相關者的討論取得對預期的軟件行爲的清醒認識 。 它通過用自然語言書寫非程序員可讀的測試用例擴展了測試驅動開發方法 。 行爲驅動開發人員使用混合了領域中統一的語言的母語語言來描述他們的代碼的目的 。 這讓開發者得以把精力集中在代碼應該怎麼寫 ， 而不是技術細節上 ， 而且也最大程度的減少了將代碼編寫者的技術語言與商業客戶 、 用戶 、 利益相關者 、 項目管理者等的領域語言之間來回翻譯的代價 。 Dan North創造了首個BDD框架 ： JBehave ； 之後是Ruby語言的基於故事的RBehave ， 後來被納入了RSpec項目 。 他還與大衛赫利姆斯基 、 Aslak Hellesøy及其他人開發了RSpec ， 並一起編寫了 《 The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends 》 。 RSpec中第一個基於故事的框架 ， 後來被主要由Aslak Hellesøy開發的Cucumber 取代 。 2008 年 ， 參與了圍繞BDD進行的首輪討論的克里斯馬茨 ， 提出了特性注入 ( Feature Injection ) 的想法 ， 使BDD可以覆蓋分析空間並提供從初期的展望到編碼和發佈的整個軟件生命週期過程的改造 。