提到TDD大多數程式設計師的疑問:
- 為什麼我要寫兩份程式?
- 為什麼我要寫程式來驗證我已經知道的結果?
- 我又不是SA,可能也不懂domain,怎麼產生一開始的test case?
最後的感想就變成是:
1.Unit Test,那都是說說而已
2.Unit Test?沒那時間搞!
3、TDD 只不過是被拿來炒作而已,現實開發中,誰用TDD 寫過一整個大系統?
4.TDD 只是先寫測試程式而已,有什麼特別的?
TDD 的開發順序
-
ATDD和BDD
-
TDD
-
測試[testing]
-
重構[Refactoring]
因為每一個環節都緊緊相扣,所以有一些階段不是這麼容易區分清楚。例如Testing其實在ATDD, BDD , TDD中,都有包含在裡面,這邊獨立的Testing,或許用Unit Testing會更加合適。
主要的大綱與精神
本系列學習順序
預計將TDD分成四份,分別是Testing, Refactoring, TDD,最後輔以「ATDD與BDD」。設計的目標則是:working software。
一 測試
- 單元測試(單元測試)
- 整合測試(整合測試)
- 表現層測試
二 重構
- 讓程式會說話( Let code can talk )
- 簡單就是美(簡單就是美)
- 不要過度設計(從來沒有超過設計)
- 運用基本的物件導向原則(需要了解面嚮物件的技術和原理)
三 TDD,ATDD,BDD
- 滿足使用者需求(達致與使用者要求)
- 如何產生測試案例(如何獲得驗收測試案例)
- 如何由測試案例開始設計程式(How to start by test cases )
四、開發例項
- 使用者故事
- ATDD
- BDD
- TDD
- 重構
五、總結
- 物件導向
- 單元測試
- 整合測試
- 重構
- CI與自動測試
- 敏捷/ XP(連續反饋)
最後則是用來貫穿整系列文章的總結:
程式的存在是為了,也只為了滿足使用者需求,而不是寫給工程師自己爽的
名詞解釋:TDD:測試驅動開發 ATDD:驗收測試驅動開發 BDD:行為驅動開發 CI:持續整合 XP:極限程式設計
備註:這個系列是我畢業後時隔一年重新開始進入開發行業後對大拿們的博文摘要整理進行學習對自我的各個欠缺的方面進行充電記錄部落格的過程,非原創,特此感謝91 等前輩