你就是不寫測試才會沒時間

Author: Bruce
Date: 2023-02-13

內容摘要

本文闡述單元測試在軟體開發中的價值,並透過數據比較有寫測試與沒寫測試在錯誤修正週期中所耗費的時間。結果顯示,投入時間撰寫測試能在開發初期快速發現問題,整體效率遠高於後期手動測試與除錯。

本標題致敬『你就是不寫測試才會沒時間』。

寫 Unit Test 可以幫助及早發現程式問題

假定系統內已有單元測試:當修改後的程式碼上傳時,0.5 秒的測試執行便能抓出錯誤,研發人員花 15 分鐘(0.25 小時)修正後,整個 bug 週期結束。

有 Unit Test
耗時 0.25 hours

假定系統中沒有單元測試:錯誤在 2 小時的 Build 階段、1 小時 QA 建立環境後才被發現,研發人員花 1 小時重現並理解問題,再花 15 分鐘修正,接著再跑一次 2 小時 Build 與 1 小時 QA 驗證,bug 週期才結束。

沒有 Unit Test
耗時 7.25 hours

效率差距達 29 倍。

若以較寬鬆的時間估算:測試抓出錯誤後,研發人員花 1 小時修正即可完成。

有 Unit Test
耗時 1 hour

若沒有單元測試:bug 在 1 小時的 Build、0.5 小時 QA 建立環境後才被發現,研發需再花 0.5 小時溝通與理解問題,1 小時修正,然後再經歷一次 Build 與 QA 驗證。

沒有 Unit Test
耗時 2.5 hours

效率仍差 2.5 倍。

想想看,200 個 bug 至少能省下超過 300 個工作小時(第一種算法則差距 1400 小時以上),你說是不是該寫 Unit Test?