BDD 作為一種設計方法,可以有效的改善設計,並在系統的演化過程中為團隊指明前進方向。
行為驅動開發的根基是一種“通用語言”。這種通用語言同時被客戶和開發者用來定義系統的行為。由於客戶和開發者使用同一種“語言”來描述同一個系統,可以最大程度避免表達不一致帶來的問題。表達不一致是軟體開發中最常見的問題,由此造成的結果就是開發人員最終做出來的東西就不是客戶期望的。使用通用語言,客戶和開發者可以一起定義出系統的行為,從而做出符合客戶需求的設計。但如果光有設計,而沒有驗證的手段,就無法檢驗我們的實現是丌是符合設計。所以 BDD 還是要和測試結合在一起,用系統行為的定義來驗證實現代碼。
行為驅動開發是測試驅動開發的進化,但關注的核心是設計。行為驅動開發中,定義系統的行為是主要工作,而對系統行為的描述則變成了測試標準。在行為驅動開發中,我們需要使用通用語言來定義系統行為。而通用語言,實際上是一個最小化的辭彙表。我們使用這些辭彙來書寫故事。選入辭彙表的辭彙必須具有準確無誤的表達能力和一致的含義。例如“系統”這個詞就不符合要求,因為在不同的語境(又稱為上下文 Context)中,“系統”一詞具有不同的含義。而“自動提款機”則明確標識了一個沒有歧義的事物。
書寫格式:
Story: 標題 (描述故事的單行文字)
As a [角色]
I want [特徵]
So that [利益]
(用一系列的場景來定義驗證標準)
scenario 1: 標題 (描述場景的單行文字)
Given [上下文]
And [更多的上下文]...
When [事件]
Then [結果]
And [其他結果]...
實例:
Story: 帳戶持有人提取現金
As an [帳戶持有人]
I want [從 ATM 提取現金]
So that [可以在銀行關門後取到錢]
Scenario 1: 帳戶有足夠的資金
Given [帳戶餘額為 $100]
And [有效的銀行卡]
And [提款機有足夠現金]
When [帳戶持有人要求取款 $20]
Then [提款機應該分發 $20]
And [帳戶餘額應該為 $80]
And [應該退還銀行卡]
相關詞條
-
Cucumber:行為驅動開發指南
tour等scrumgatherin 和then 和then
內容介紹 作者介紹 作品目錄 -
深入淺出windows驅動開發
《深入淺出windows驅動開發》是2011年3月電子工業出版社出版的圖書,作者是張佩、馬勇、董鑒源。
內容簡介 媒體推薦 作者簡介 推薦序一 推薦序二 -
創新驅動型經濟
創新驅動型經濟指那些從個人的創造力、技能和天分中獲取發展動力的企業,以及那些通過對智慧財產權的開發可創造潛在財富和就業機會的活動。
概念延伸 概念內涵 要素特徵 理論簡評 經濟外延 -
測試驅動的JavaScript開發
11.3.1測試 12.5.2測試結果 15.2.3特徵測試
基本信息 編輯推薦 內容簡介 作者簡介 媒體評論 -
測試驅動的嵌入式C語言開發
1.1 1.2 測試驅動開發者的狀態機
基本信息 內容簡介 編輯推薦 媒體推薦 作者簡介 -
測試驅動的JavaScript開發(JavaScript敏捷測試指南)
it測試框架的特點 12.3 13.2
出版信息 內容簡介 作者簡介 目錄 -
雲開發
傳統垂直堆疊的開發模式,在雲時代需要進行顛覆和創新;連續線上、基於截層水平擴展、簡單到粗暴乃至松耦合復用構件的雲開發方式將能更好適應雲時代的開發特點。
定義 背景和概述 相關術語 雲時代對開發的期望、困擾和矛盾 雲開發的核心價值觀 -
數據驅動:從方法到實踐
《數據驅動:從方法到實踐》 作者以實際經驗指導初創公司迅速搭建數據分析平台,減少時間投入,少走彎路 桑文鋒 著 ISBN 978-7-121-33451...
-
購買行為
消費者購買行為是指人們為滿足需要和欲望而尋找、選擇、購買、使用、評價及處置產品、服務時介入的過程活動,包括消費者的主觀心理活動和客觀物質活動兩個方面。 ...
基本解釋 購買過程 類型 類型分析 模式分析