【測試不是萬靈藥】

提昇軟體品質,不只是靠測試。

錢要花在刀口上,測試是測不完的。

測試只是用來提昇品質、降低風險的手段之一。

當然,當你打通任督二脈之後,你還可以拿測試來加速開發。

資源有限、時間有限,所以測試的投資,需要考慮 ROI(投資報酬比)。

就像你不會(也不該)把畢生積蓄,全都拿去買意外險一樣

不要「只」想透過「測試」來提昇「品質」,是很吃力的,測試只是其中一個實踐。

要提昇品質,產品開發過程中還有許多你該落實的實踐,例如:

  • ☑ Specification by Examples
  • ☑ ATDD/TDD
  • ☑ Unit Testing
  • ☑ Code Review
  • ☑ Pair Programming
  • ☑ Commit Frequently
  • ☑ Continuous Integration
  • ☑ Exploration Testing
  • ☑ API/Integration Testing
  • ☑ Manual Testing (你沒看錯)
  • ☑ Production Monitoring
  • ☑ Third-Party Services Monitoring
  • ☑ Exception Monitoring and Analyzing

所以,找到導入的 road map,找到綜效甜頭比較大、抗拒比較小的切入點,還是相當重要的。

不要忘記、也不該企圖,只用自動化測試,來防止一切 bug 的發生。

你應該還要有 pair programming, code review, 其他的自動化迴歸測試、各個環境的手動測試,都通過之後,才 deliver to production。

如果經過這一連串的把關, production 還發生邏輯上的 bug,那我敢跟你保證,那個 bug 絕對不是主要流程,影響範圍小,甚至不影響你的價值或業務。

那時你應該把重點放在,如何快速 fix 它,快速的交付與部署,而不是糾結在還沒交付前,考慮「把畢生積蓄拿來買意外險」。


blog 與課程更新內容,請前往新站位置:http://tdd.best/