我覺得開發已經花很多時間了,根本不想寫測試,覺得沒有增加功能,而且test case很多很細很難想。

思考的方向

  1. 測試是重新思考程式的機會
    測試很難想,代表我對程式行為的邏輯根本不清楚
  2. 測試不是為了當下寫的,未來才會知道它的價值
    剛寫完程式一定最清楚問題在哪裡,但是幾個月後、或是由其他人來改動這支程式時,唯有測試能夠future-proof這支程式的行為仍然能夠正常運作
  3. 只測試關鍵部分
    覺得要寫很多test case很麻煩,但其實真正要測的是程式的行為,也就是這個功能應該要達到什麼預期的結果,這是以API使用者的角度去看待這個功能

寫測試的思路

從以上的思考,重新看待寫測試這個任務的流程:

  1. 先找到關鍵部分,有分支代表商業邏輯才要測試,或是如果壞掉會很嚴重的部分(思考的方向 3. 只測試關鍵部分)
  2. 把預期的狀況和行為列成清單(思考的方向 1. 測試是重新思考程式的機會)
  3. 再開始撰寫單一的test case