由 TDD 談起
TDD 的基本流程:「測試 -> Coding -> 重構」循環。
「程式碼都還沒實作,是要測試什麼?」這是許多人剛接觸TDD(Test–Driven Development1 2)的第一個疑問。
其實 TDD 的先行測試,本質上也是在確認需求及設計API。相當於傳統 SA/SD 階段的部分工作內容,只是產出型式不同。由於先行測試包含實際使用案例,也可以促使 SD 以其它開發人員的角度設計API介面。
TDD的概念是撰寫剛好足以通過測試的程式碼,然後再進入下一個循環。程式的邏輯完整度,便隨著測試項目的增加而逐漸完備。隨時保持所有測試案例通過的準則,則保證程式的正確性。
而程式品質、維護性的問題,就是TDD最後一關「重構」的任務。不做重構的TDD,通常會是大量難以維護的糟糕程式來源。即便有再完整的測試涵蓋度,糟糕的程式碼還是對未來的開發效率有極大的負面效應。
UDE 並未要求專案執行 TDD
雖然很多重要的單元測試概念,都與TDD有關。但是UDE並未要求專案執行TDD。因為是否能導入、執行TDD,跟太多因素相關:包括專案性質、成本、人員訓練、開發流程(協作方式)...等。
「UDE-TestKit」只是提供 UDE 本身撰寫單元測試時的一些經驗及開發使用的輔助套件。