求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

測試驅動開發檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋

測試驅動開發英語Test-driven development,縮寫為TDD)是一種軟件開發過程中的應用方法,由極限編程(Extrame Programming)中倡導,以其倡導先寫測試程序,然後編碼實現其功能得名。

測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。測試測試驅動開發始於20世紀90年代。測試驅動開發的目的是取得快速反饋並使用「illustrate the main line」方法來構建程序。

測試驅動開發的原理是在開發功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什麼產品代碼。TDD是 XP(Extreme Programming)的核心實踐。它的主要推動者是 Kent Beck。

TDD process with functional test and unit test [1]

什麼是測試驅動開發

測試驅動開發是戴兩頂帽子思考的開發方式:先戴上實現功能的帽子,在測試的輔助下,快速實現其功能;再戴上重構的帽子,在測試的保護下,通過去除冗餘的代碼,提高代碼質量。測試驅動着整個開發過程:首先,驅動代碼的設計和功能的實現;其後,驅動代碼的再設計和重構。

測試驅動開發有廣義和狹義之分,常說的是狹義的 TDD,也就是 UTDD(Unit Test Driven Development)。廣義的 TDD 是 ATDD(Acceptance Test Driven Development),包括 BDD(Behavior Driven Development)和 Consumer-Driven Contracts Development 等。

本文所說的測試驅動開發(TDD)指狹義上的 TDD,也就是「單元測試驅動開發」。

為什麼需要測試驅動開發

傳統編碼方式

蓋房子的時候,一個新手或菜鳥級的小師傅,卻可能不知道拉線,而是直接把磚往上壘,壘了一些之後再看是否筆直,這時候可能會用一根線,量一下砌好的牆是否筆直,如果不直再進行校正,敲敲打打。

測試驅動編碼方式

工人師傅砌牆,會先用樁子拉上線,以使磚能夠壘的筆直,因為壘磚的時候都是以這根線為基準的。測試驅動編碼的方式就像老師傅砌牆,先寫測試代碼,就像工人師傅先用樁子拉上線,然後編碼的時候以此為基準,只編寫符合這個測試的功能代碼。

測試驅動開發的主要環節

測試驅動開發主要有一下幾個環節[2]

  1. 添加一個測試
  2. 運行所有的測試並查看是否有新的測試失敗
  3. 編寫功能代碼
  4. 再次運行測試
  5. 重構代碼

參考文獻

  1. Harry J.W. Percival. Test-Driven Development with Python Second Edition,. 美國 : O'Reilly Media, Inc. August, 2017. ISBN 978-1-491-95870-4 (英文). 
  2. Kant Beck. Test-Driven Development By Example. 美國 : Addison Wesley. November 08, 2002. ISBN 0-321-14653-0 (英文).