這次運氣不錯,有幸報到第四梯的課程,
其實在第三梯的時候就想報名了,不過剛好有兩位好友先後結婚,
只好期待 Joey 的第四梯了!
也感謝 Joey 用心準備與持續精進的課程內容,
這應該也是一種早買早享受(提早進入這領域),晚買享折扣(學到更多)的概念吧!
對課程有興趣,或是想要導入測試來強化產品,真的大力推薦 Joey 課程,網址如下:
https://skilltree.my/events/mbh
一定是物超所值的。
另外是他的粉絲團『91 敏捷開發之路』
https://www.facebook.com/91agile
以及點部落『In 91』
http://www.dotblogs.com.tw/hatelove
心得==========
第一天的主軸在於:
【老闆是花錢請你來寫 production code 不是來寫測試的!】
重點還是在開發,不是測試!
測試只是工具,輔助你驗證 production code 是符合開發者的想法,
滿足顧客的需求!
在團隊開發中最常遇到的狀況:
- 測試環境和正式環境有些因素導致無法驗證,例如:資料庫、第三方的 API 等
- 不知道錯在哪裡!一段冗長的流程結果錯了,必須要從頭追到尾
- 上頭問起那些功能測過......提不出證據
- 修 A 壞 B,修好 B 結果 A 又往生了!
- 平行開發,只憑想像或是文件,整合的時候就是場災難
這些問題都可以仰賴撰寫測試,來降低開發成本,
BUG 越早被發現,處理成本越低,
整個就是早期發現早期治療的概念!
所以寫測試就像是在健檢一樣,必然會有一些成本的支出,
但是效益絕對是很大的。
Unit Test 是:
- 最小測試單位
- 外部相依為零
- 不具備商業邏輯
- 測試案例之間相依為零
- 一個測試案例只測一件事情
Unit Test 的特性是:
- Fast
- Independent
- Repeatable
- Self-Validating
- Timely
簡稱 FIRST
3A 原則
- Arrange
- Act
- Assert
要驗證的東西
- 回傳值
- 狀態的改變
- 與外部的互動
單元測試的意義在於模擬外部如何使用測試物件,驗證行為是否符合預期!
所以應以需求為出發點,而不是為了測試而測試,要記住是在開發!
非公開的方法,應該透過測試公開的方法而被測試,
沒有涵蓋到表示兩種可能:
- 測試案例代表性不足
- 沒被涵蓋到的程式,沒有存在的價值(永遠不會被用到!)
後記==========
其實在前公司曾經試著要導入自動化測試,想藉著導入測試提升產品的品質,
確實遇到了一些阻力,同時也因為自己對於測試沒有充分的了解,
沒有持續改善的觀念,最終仍以失敗收場,相當可惜!
希望在這課程中,能夠提升自己對於自動化測試的認知與能力,並且在往後的專案中落實。
沒有留言:
張貼留言