在重構過程中,一套穩固的測試套件是不可或缺的安全網。
Martin Fowler 強調,多數專案的測試往往太過稀疏,而非過於冗長。
重構的首要前提,就是擁有一套 自我驗證(Self-verifying) 的測試程式碼。

The sample application for testing: Province Asia
測試撰寫的核心原則#
撰寫測試時,請謹記以下指導原則,讓測試成為開發助力而非阻力:
| 原則 | 說明 |
|---|---|
| 全自動化 | 測試須能完全自動化執行 |
| 自我驗證 | 測試須自行判斷 Pass/Fail,不需人工檢查 |
| Bug 偵測器 | 好測試能減少追蹤錯誤的時間 |
| 確保會失敗 | 永遠通過的測試等同壞掉的測試 |
| 關注邊界條件 | 集中測試最易出錯的地方 |
| 不追求完美 | 部分測試勝過沒有測試 |
面對 Bug 的標準作業程序#
當你在開發過程中收到一個 Bug 回報時,請遵循以下黃金流程:
flowchart TD
A[🐛 Bug 回報] --> B[撰寫重現測試]
B --> C{測試失敗?}
C -->|否| B
C -->|是| D[修復程式碼]
D --> E{測試通過?}
E -->|否| D
E -->|是| F[✅ 完成修復]
F --> G[🛡️ 防止 Regression]
- 先寫測試: 修復程式碼前,先寫個能重現該 Bug 的測試案例
- 確認失敗: 執行該測試,確認它會失敗(這代表你成功捕捉到了問題)
- 修復代碼: 修改程式碼,直到測試通過
這不僅能修復當下問題,還能防止該 Bug 未來再次出現(Regression)