什麼是測試驅動開發?
測試驅動開發也稱為TDD。它包含以下步驟,需要逐一執行:
步驟1 - 建立測試。
步驟2 - 驗證測試是否失敗。
如果測試透過,則建立第二個測試。
如果測試失敗,則轉到步驟3。
步驟3 - 修復測試使其透過。
如果測試透過,則轉到步驟4。
如果測試失敗,則跳轉到步驟3。
步驟4 - 開始程式碼重構並重復以上所有步驟,直到開發完成。
TDD 的優勢
TDD 的優勢如下:
開發人員需要理解需求,才能知道場景的結果應該是什麼以及如何測試它。
只有在所有測試用例透過且程式碼重構完成後,才會進行模組的實現。因此,在進行下一個測試之前,應先進行驗證和重構。
完成重構後,需要執行單元測試套件。
單元測試可以用作動態文件。
如果發現錯誤,則建立一個測試以獲取錯誤的詳細資訊。更新指令碼以透過測試。同時,還執行其他測試以確保現有功能不會因修復而中斷。
開發人員可以參與設計決策,並在測試執行階段隨時改進設計,以確保應用程式正常工作。這樣做是為了提高產品的可維護性。
開發人員可以確信可以進行任何修改。這是因為如果這影響任何現有功能,它將透過執行測試來反映出來。這樣可以快速解決錯誤。
連續執行測試還可以驗證所有之前的錯誤修復,並避免類似的錯誤。
由於在開發階段進行了主要的測試,因此交付前的測試時間較短。
TDD 的缺點
TDD 的缺點如下:
開發人員難以決定何時開始測試。
開發人員對測試什麼感到困惑。
開發人員不知道是否涵蓋了所有必需的規範。
開發人員不確定他們的程式碼是否增加了業務價值。
關於 TDD 的誤解
關於 TDD 的誤解如下:
- 誤解 - TDD 只關注自動化測試。
事實 - TDD 是一種遵循測試優先方法的開發技術。
- 誤解 - TDD 不包含設計。
事實 - TDD 進行了徹底的研究和設計,具體取決於需求。設計在開發階段完成。
- 誤解 - TDD 只用於單元測試。
事實 - TDD 也用於系統和整合測試。
- 誤解 - TDD 無法應用於傳統的測試專案。
事實 - TDD 用於敏捷開發。但它也可以應用於傳統的測試專案。
- 誤解 - TDD 被認為是一種工具。
事實 - TDD 是一種開發技術,每次新的單元測試通過後,它都會與自動化套件結合在一起,該套件在程式碼修改和重構活動後執行。