- 測試要測什麼?
- 測 output (輸出的值)
- 測物件狀態
- 測與外部的行為動作
- 確認環境封閉
- 測試的順序
- 正常路徑
- 錯誤路徑
- 資料排列 (個人覺得不是必要)
- 邊界條件
- 資料驅動
- 測試缺陷 (哪裡出問題就那裡加測試)
- 有測試的好處
- 容易 code review: 別人容易理解你的情境
- 容易表達用法、功能、邊界值
- 不容易因為修改而壞掉
- 想重構的理由
- 看不順眼,最常發生的原因
- 要使用新框架
- Legacy code
- 維護不下去了
- 為了寫測試
- Adapter pattern 是一種可以在重構時使用的 design patten,但存在下面的問題
- 重複的 code 太多
- 維護成本過高 (要改個需求,很多 class 都會動到?)
- 重構時須注意
- 了解歷史背景並具包容心
- 重新定義 coding style
- 為了五年後想 (維護上存在怎樣的問題)
- 如何降低風險
- 寫測試
- pair programing
- 讓部分使用者幫忙測試 ( EX: 只對 10% user 開放)