測試驅動開發TDD | IDCF FDCC認證學員作品
一、TDD是什麼
“測試驅動開發不是一種測試技術。它是一種分析技術、設計技術,更是一種組織所有開發活動的技術”。 ——Kent Beck(TDD之父)
二、TDD需要考慮什麼
測試先行為何物
TDD方法的掌握有一些誤解導致
不可執行——寫一個功能最小完備的單元測試,並使得該單元測試編譯失敗。
可執行——快速編寫剛剛好使測試透過的程式碼,不需要考慮太多,甚至可以使用一些不合理的方法。
重構——消除剛剛編碼過程引入的重複設計,最佳化設計結構。
重構的關鍵首先在於如何識別程式碼的壞味道, 需要閱讀一定規模優秀的開原始碼,當這些壞味道變成你的一種直覺,你就會降低對糟糕程式碼的容忍度。
重構手法與程式碼壞味道一一對應。若有測試保障,重構就變得安全。但儘可能地,我們還是希望運用工具提供的自動重構功能,這既提高了重構效率,也在一定程度下確保了重構的安全。
2.5 單元測試
確定開發人員編寫,測試函式/方法粒度,程式碼正確性檢驗方式(尤其測試資料),編碼前後和修改程式碼時透過單元測試。
三、TDD實踐
3.1 思考要做什麼,如何測試它,然後編寫一個測試(所需的介面型別、輸入和資料)。
例如:
3.2 編寫code使測試失敗(明確失敗比模糊好)。
執行失敗code
3.3 編寫剛剛測試透過code(確保之前編寫的測試)。
執行成功的code
3.4 執行獲取測試結果。如果沒有透過,則立刻解決它。
示例:
3.5 如果有重複的邏輯或無法解釋的程式碼,立刻重構(減少耦合,增加內聚力)。再次執行測試驗證重構是否引入新的錯誤。如果沒有透過,很可能是在重構時犯了一些錯誤,需要立即修復並重新執行,直到所有測試透過。
重構前:
重構後
執行結果:
3.6 重複01-05上述步驟,直到找不到更多驅動編寫新程式碼的測試。
四、TDD難點
四、總結
“程式碼簡潔可用這句言簡意賅的話,正是 TDD 所追求的目標” ——《Test-Driven Development》Kent Beck
《重構》 《測試驅動開發》 Test-driven development:https://en.wikipedia.org/wiki/Test-driven_development Lyning技術部落格:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558019/viewspace-2702589/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TDD(測試驅動開發)死了嗎?
- 測試驅動開發(TDD)例項演示
- 測試驅動開發(TDD)實戰心得 - DeniMoka
- 測試驅動開發(TDD)總結——原理篇
- 變異測試是測試驅動開發(TDD)的演變
- 測試驅動開發(TDD)—— 資料庫查詢篇資料庫
- 使用 TDD 測試驅動開發來構建 Laravel REST APILaravelRESTAPI
- Go 語言:透過TDD測試驅動開發學習 Mocking (模擬)的思想GoMock
- Swift 進階開發指南:如何使用 Quick、Nimble 執行測試驅動開發(TDD)SwiftUI
- 談“測試驅動的開發”
- Laravel 測試驅動開發 -- 正向單元測試Laravel
- 什麼是測試驅動開發
- 敏捷交付中的自動化測試 | IDCF敏捷
- TDD測試驅動開發:Hello, YOU -- 透過簡單的 hello_test.go 程式學會編寫測試,學習使用常量來最佳化並根據需要重構Go
- 驅動開發目標測試機器設定
- HarmonyOS Connect認證測試
- 使用Spring Boot REST API進行測試驅動開發Spring BootRESTAPI
- Fitness function-driven development(測試驅動開發) 翻譯Functiondev
- 測試驅動開發在專案中的實踐
- 測試開發之單元測試-禪道結合ZTF驅動單元測試執行
- Linux驅動開發: Ubuntu(PC機)系統上編譯驅動並載入測試LinuxUbuntu編譯
- golang 表格驅動測試Golang
- Python 實現行為驅動開發 (BDD) 自動化測試詳解Python
- 福祿克的驗證測試和認證測試的區別
- 路人開發對測試人員的看法
- golang 表格驅動測試案例Golang
- 簡單的11步在Laravel中實現測試驅動開發Laravel
- 簡單的 11 步在 Laravel 中實現測試驅動開發Laravel
- 開發人員測試 Devin AI 後的發現devAI
- 驅動開發:配置Visual Studio驅動開發環境開發環境
- TDD及單元測試最佳實踐
- 探索 Android TDD 開發方法Android
- 從玄學走向科學:AB測試驅動的科學增長
- 有自驅力的測試開發實習生
- 關鍵字WebElement 驅動測試Web
- 軟體測試的驗證和確認
- 同屏器CE認證測試標準
- 你是真的程式猿嗎—>測試認證