1. 程式人生 > >什麽是TDD和BDD

什麽是TDD和BDD

測試用例 evel 執行 3年 png 運行 團隊 如何實現 inf

這些知識之前就了解了一點,還沒來得急總結,現在總結一下。

1. 首先了解一下這三個開發模式都是什麽意思:

  • TDD:測試驅動開發(Test-Driven Development)

測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。TDD的原理是在開發功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什麽產品代碼。TDD的基本思路就是通過測試來推動整個開發的進行,但測試驅動開發並不只是單純的測試工作,而是把需求分析,設計,質量控制量化的過程。TDD首先考慮使用需求(對象、功能、過程、接口等),主要是編寫測試用例框架對功能的過程和接口進行設計,而測試框架可以持續進行驗證。

  • BDD:行為驅動開發(Behavior Driven Development)

行為驅動開發是一種敏捷軟件開發的技術,它鼓勵軟件項目中的開發者、QA和非技術人員或商業參與者之間的協作。主要是從用戶的需求出發,強調系統行為。BDD最初是由Dan North在2003年命名,它包括驗收測試和客戶測試驅動等的極限編程的實踐,作為對測試驅動開發的回應。

  • ATDD:驗收測試驅動開發(Acceptance Test Driven Development)

TDD 只是開發人員的職責,通過單元測試用例來驅動功能代碼的實現。在準備實施一個功能或特性之前,首先團隊需要定義出期望的質量標準和驗收細則,以明確而且達成共識的驗收測試計劃(包含一系列測試場景)來驅動開發人員的TDD實踐和測試人員的測試腳本開發。面向開發人員,強調如何實現系統以及如何檢驗。

2. 軟件開發過程中最常見的兩個問題

需求和開發脫節:

  • 用戶想要的功能沒有開發
  • 開發的功能並非用戶想要
  • 用戶和開發人員所說語言不同
開發和測試脫節:
  • 開發和測試被認為割裂
  • 從開發到測試周期過長
  • 測試自動化程度低
3. 如何解決上面說的兩個問題 使用BDD和ATDD可以解決需求和開發脫節的問題,首先他們都是從用戶的需求出發,保證程序實現效果與用戶需求一致。 這個過程可以使用基於BDD的自動化測試工具Cucumber。 技術分享圖片 解決開發和測試脫節主要從以下幾個方面入手:
  • 開發的全過程都要貫穿測試:單元測試,集成測試和系統測試
  • 測試需要自動化
  • 所有測試通過,開發才算完成
  • 持續集成,保證每一次集成系統都能運行
4. 如何進行CI(Continuous Integration)也就是持續集成 ● 持續提交代碼 (Check-in)
○ 一天之中多次提交
● 持續構建代碼 (Build)
○ 保證在任何時刻代碼是可以繼續開發的
● 持續部署代碼 (Deploy)
○ 保證始終有一個可以部署的版本
● 持續測試代碼 (Test)
○ 每次提交均執行單元測試
○ 每天一次或數次集成測試
○ 每天一次或數次系統測試 持續集成工具:Jenkins 技術分享圖片 5. 一張圖比較TDD與ATDD

什麽是TDD和BDD