SpecFlow - 測試驅動開發



測試驅動開發(Test-Driven Development)也稱為 TDD。它包含以下步驟,需要逐一執行:

步驟 1 - 建立測試。

步驟 2 - 驗證測試是否失敗。

如果測試透過,則建立第二個測試。

如果測試失敗,則轉到步驟 3。

步驟 3 - 修復測試使其透過。

如果測試透過,則轉到步驟 4。

如果測試失敗,則跳轉到步驟 3。

步驟 4 - 開始程式碼重構並重覆上述所有步驟,直到開發完成。

TDD 的好處

TDD 的好處如下:

  • 開發人員需要理解需求,才能知道場景的結果應該是什麼以及如何測試它。

  • 只有在所有測試用例透過且程式碼重構完成後,才會完成模組的實現。因此,在轉移到下一個測試之前,應先進行驗證和重構。

  • 完成重構後,需要執行單元測試套件。

  • 單元測試可以用作即時文件。

  • 如果發現錯誤,則建立一個測試以獲取錯誤的詳細資訊。更新指令碼以透過測試。同時,還執行其他測試以確保現有功能不會因修復而中斷。

  • 開發人員可以參與設計決策,並在測試執行階段隨時對其進行改進,以確保應用程式正常工作。這樣做是為了提高產品的可維護性。

  • 開發人員可以確信進行任何修改。這是因為如果這影響任何現有功能,它將透過執行測試來反映出來。這樣可以快速解決錯誤。

  • 連續執行測試時,所有先前的錯誤修復也都會得到驗證,並且可以避免類似的錯誤。

  • 由於在開發階段進行了主要的測試,因此交付前所需的測試時間較短。

TDD 的缺點

TDD 的缺點如下:

  • 開發人員難以決定何時開始測試。

  • 開發人員對測試什麼感到困惑。

  • 開發人員不知道是否涵蓋了所有需求規範。

  • 開發人員不確定他們的程式碼是否增加了業務價值。

圍繞 TDD 的誤解

圍繞 TDD 的誤解如下:

誤解

事實

TDD 只關注自動化測試。

TDD 是一種遵循測試優先方法的開發技術。

TDD 不包含設計。

TDD 具有根據需求進行的徹底研究和設計。設計在開發階段完成。

TDD 僅用於單元測試。

TDD 也用於系統和整合測試。

TDD 無法用於正統的測試專案。

TDD 用於敏捷開發。但它也可以應用於傳統的測試專案。

TDD 被認為是一種工具。

TDD 是一種開發技術,每次新的單元測試通過後,它都會與自動化套件結合在一起,每當程式碼修改和重構活動後都會執行該套件。

廣告
© . All rights reserved.