iT邦幫忙

2021 iThome 鐵人賽

DAY 4
1

接下來要討論的問題是,
什麼時候開始寫測試,
很多人會覺得應該在整個軟體開發完之後開始寫測試,
但是越來越多人覺得應該要在寫程式之前就先撰寫測試程式,
這種方法稱為測試驅動開發(Test-Driven Development, TDD)

其實光是TDD這個名詞,
就有很多種不同的見解,
有的人覺得TDD是測試優先於開發,
有的人覺得TDD是一種設計程式的方式,
也有人覺得應該要符合某種設計模式,
TDD才可以成為一種驅動程式的方法。

事實上,
TDD和傳統的開發方式不同,
你會先寫一個執行起來會失敗的測試程式,
然後你再寫一個程式,
讓這個程式能通過剛剛那個測試程式,
然後繼續寫下一個會失敗的測試程式,
或是重構程式碼。

事實上使用TDD的方式,
可能會讓你花更多的時間跟心力,
譬如學習的時間、
實作練習的時間、
學習其他更多知識的時間等等,
當然這些付出會是值得的。
(沒有得到也有學到)

但是我們必須要知道一點,
TDD並不保證你的專案一定能夠成功,
但是他是協助我們專案成功的其中一個方法,
通常來說TDD的步驟大致上如下:

  • 寫一個會失敗的測試,來證明程式或功能的缺失
  • 撰寫符合測試預期的程式碼,來通過測試
  • 重複以上兩個步驟
  • 重構程式碼

但是TDD也有可能會有缺點,
如果用不好可能會浪費很多時間,
甚至降低品質,
最後導致失敗,

如果你預期一個測試可能會失敗,
但是它卻成功了!?
那就表示你的測試程式或程式本身就是有問題的;
或是如果你覺得它應該要成功,
但是卻失敗了!?
也表示你的測試程式或程式是有問題的,
所以不要覺得用了TDD就是天下無敵了,
還是要看工程師本身的功力,
但是如果測試寫得好,
在後期測試的時候可以為我們節省很多時間,
而且也能夠一定程度地確保程式的穩定性。

所以我們這一個月的時間,
我們就嘗試用TDD的方式來寫測試,
明天開始我們正式進入主題!


上一篇
[Day 03] 在Windows上用IIS架Laravel網站
下一篇
[Day 05] 開發之前,先把需求弄清楚
系列文
當拉拉肉遇到單元測試,是否能夠擦出命運的火花?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言