接下來要討論的問題是,
什麼時候開始寫測試,
很多人會覺得應該在整個軟體開發完之後開始寫測試,
但是越來越多人覺得應該要在寫程式之前就先撰寫測試程式,
這種方法稱為測試驅動開發(Test-Driven Development, TDD)
其實光是TDD這個名詞,
就有很多種不同的見解,
有的人覺得TDD是測試優先於開發,
有的人覺得TDD是一種設計程式的方式,
也有人覺得應該要符合某種設計模式,
TDD才可以成為一種驅動程式的方法。
事實上,
TDD和傳統的開發方式不同,
你會先寫一個執行起來會失敗的測試程式,
然後你再寫一個程式,
讓這個程式能通過剛剛那個測試程式,
然後繼續寫下一個會失敗的測試程式,
或是重構程式碼。
事實上使用TDD的方式,
可能會讓你花更多的時間跟心力,
譬如學習的時間、
實作練習的時間、
學習其他更多知識的時間等等,
當然這些付出會是值得的。
(沒有得到也有學到)
但是我們必須要知道一點,
TDD並不保證你的專案一定能夠成功,
但是他是協助我們專案成功的其中一個方法,
通常來說TDD的步驟大致上如下:
但是TDD也有可能會有缺點,
如果用不好可能會浪費很多時間,
甚至降低品質,
最後導致失敗,
如果你預期一個測試可能會失敗,
但是它卻成功了!?
那就表示你的測試程式或程式本身就是有問題的;
或是如果你覺得它應該要成功,
但是卻失敗了!?
也表示你的測試程式或程式是有問題的,
所以不要覺得用了TDD就是天下無敵了,
還是要看工程師本身的功力,
但是如果測試寫得好,
在後期測試的時候可以為我們節省很多時間,
而且也能夠一定程度地確保程式的穩定性。
所以我們這一個月的時間,
我們就嘗試用TDD的方式來寫測試,
明天開始我們正式進入主題!