1. 程式人生 > >測試之談TDD、BDD和ATDD

測試之談TDD、BDD和ATDD

前言:做測試也快兩年了,雖然期間也接觸到敏捷開發,但是隻是對專案組中的流程有個瞭解。偶然的看到TDD和BDD,是敏捷開發技術中比較高頻的兩個概念,但實際自己並不能說出其中的區別和聯絡,剛好藉此機會學習瞭解,通過CSDN記錄學習的疑問

正文:

一、概念:

TDD:Test-Driven Development(TDD)測試驅動開發,它是一種測試先於編寫程式碼的思想用於指導軟體開發。測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。TDD的原理是在開發功能程式碼之前,先編寫單元測試用例程式碼,測試程式碼確定需要編寫什麼產品程式碼。

BDD:Behavior Driven Development

行為驅動開發是一種敏捷軟體開發的技術,它鼓勵軟體專案中的開發者、QA和非技術人員或商業參與者之間的協作

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

二、TDD和BDD聯絡與區別

總而言之,TDD和BDD解決的是不同層級的問題,BDD更多的是對TDD的補充,而不是像有些說法BDD是對TDD很好的迴應。同時相較於現在比較完善的專案這兩者都集合在開發過程中使用;可能一些小型的公司or專案,相對於沒有更多的關注TDD層面,甚至可以說並未涉及到敏捷開發層面。

三、應用及問題

流程:先寫BDD的場景 -> 再寫單元測試 -> 寫程式碼讓單元測試通過 ->讓BDD的scenario通過

可能會出現的問題:當開發時間很緊的時候,開發很容易會先寫程式碼,再補TDD測試,再補BDD測試

2. 自動化框架穩定性問題:

  •   測試有可能會隨機掛
  •   測試跑的時間過長
  •   維護成本問題
  •   測試覆蓋率的要求
  •   有一些場景不是很適合BDD(比如單純UI測試,經常變化的scenario