BDD?
What - 什麼是 BDD
BDD 的全名為 Behavior-driven development
BDD 是透過 DSL ( Domain-specific language )來描述系統的行為。
Why - 為什麼要使用 BDD
因為使用者的需求,要轉變成系統的程式碼,中間的落差相當大。
BDD 的效益在於,能讓使用者、測試人員與開發人員,可以用一樣的方式來描述與了解需求。
由我自己來說的話:若需求文件就是一個可執行的程式碼,那麼只要執行需求文件就能確定開發的內容是符合需求的!!
When - 什麼時候使用 BDD
當撰寫好驗收測試案例,建立好系統雛形。開始準備著手開發實際的程式碼前,使用 BDD 來描述「驗收測試案例」所對應的「系統行為與腳本」。
Who - BDD 該由誰來撰寫
建議由開發人員主導,測試人員輔助,確定這樣的 Scenario 是否為測試人員所預期的,是否滿足了驗收測試案例。但測試案例是由 user story 而來,因為第一層的 acceptance test cases 就是用來定義 user story 要滿足哪些 scenarios 才算完成。
確認完畢後,開發人員就可以直接從 code template 著手進行 TDD 。
Where - BDD 的腳本該放在哪裡
BDD 的腳本,也就是 scenarios,其實就是產生測試程式的骨架,只是是使用 DSL 來描述罷了。
而 BDD 的內容,其實就是 TDD 的測試案例,可能包含了整合測試與單元測試的範疇。
所以 BDD 的專案,可直接視為整合測試專案或單元測試專案,建議這兩者要分開,以便開發時可以迅速執行單元測試,在持續整合的 server 上,則可以執行到完整的測試程式。而 scenarios 可以透過一些工具,掛載在持續整合 server 的 report 上,進而成為一種 live documents ,既透明、又即時,而且每個人都可以看得懂。
最後補充敏捷的四條宣言
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
部分內容引用自:https://msdn.microsoft.com/zh-tw/library/Dn308251.aspx
留言
張貼留言