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 ,既透明、又即時,而且每個人都可以看得懂。

最後補充敏捷的四條宣言
  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan 







部分內容引用自:https://msdn.microsoft.com/zh-tw/library/Dn308251.aspx

留言

這個網誌中的熱門文章

postman有跨網域神力啊

angular ui-router 變更網址列的方式! (偷渡關於移除URL中的#

google smtp好麻煩啊~