【转】浅谈TDD、BDD、ATDD、DDD的区别
四個開發模式意思:
- TDD:測試驅動開發(Test-Driven Development)
- BDD:行為驅動開發(Behavior Driven Development)
- ATDD:驗收測試驅動開發(Acceptance Test Driven Development)
- DDD:領域驅動開發(Domain Drive Design)
1. TDD: Test-driven development (測試驅動開發)
是一種使用自動化單元測試來推動軟件設計并強制依賴關系解耦的技術。使用這種做法的結果是一套全面的單元測試,可隨時運行,以提供軟件可以正常工作的反饋。
在編寫真正實現功能的代碼之前先編寫測試,每次測試之后,重構完成,然后再次執行相同或類似的測試。該過程根據需要重復多次,直到每個單元根據所需的規格運行。
2 .BDD:Behavior-Driven Development (行為驅動開發)
BDD將TDD的一般技術和原理與領域驅動設計(DDD)的想法相結合。 BDD是一個設計活動,您可以根據預期行為逐步構建功能塊。
BDD的重點是軟件開發過程中使用的語言和交互。
行為驅動的開發人員使用他們的母語與領域驅動設計的語言相結合來描述他們的代碼的目的和好處。
使用BDD的團隊應該能夠以用戶故事的形式提供大量的"功能文檔",并增加可執行場景或示例。BDD通常有助于領域專家理解實現而不是暴露代碼級別測試。它通常以GWT格式定義:GIVEN WHEN&THEN。
3. ATDD: Acceptance Test Driven Development(驗收測試驅動開發)
這是一種在編碼開始之前將客戶帶入測試設計過程的技術。它也是一個協作實踐,用戶,測試人員和開發人員定義了自動驗收標準。 ATDD有助于確保所有項目成員準確理解需要完成和實施的內容。如果系統未通過測試可提供快速反饋,說明未滿足要求。驗收測試以業務領域術語進行指定。每個功能都必須提供真實且可衡量的業務價值,事實上,如果您的功能沒有追溯到至少一個業務目標,那么您應該想知道為什么您要首先實施它。
?
進入彩蛋環節:在SBE-Specification by Example(實例化需求說明)的過程和工件有兩種流行的模型:以驗收>測試為中心的模型和以系統行為規范為主導的模型。
以ATDD側重于自動化測試,并把它作為實例化需求說明過程的一部分。這個模型的主要優點是開發目標更加分明確,并且可以防止功能退化。
以BDD側重于制定系統行為的場景。主要工作是通過協作和需求澄清,在項目干系人和交付團隊之間建立共識。
4. DDD:領域驅動開發(Domain Drive Design)
DDD指的是Domain Drive Design,也就是領域驅動開發,DDD實際上也是建立在這個基礎之上,因為它關注的是Service層的設計,著重于業務的實現,將分析和設計結合起來,不再使他們處于分裂的狀態,這對于我們正確完整的實現客戶的需求,以及建立一個具有業務伸縮性的模型
總結
以上是生活随笔為你收集整理的【转】浅谈TDD、BDD、ATDD、DDD的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 罗永浩退出微博 本人心情用6个字形容:特
- 下一篇: 进入10元时代!加满一箱油多花15元 我