4.1 · 設計測試資料
目標: 設計能抓到真 bug 的測試用例。
測試資料三類
| 類別 | 目的 | 例子(有效年齡 0–150) |
|---|---|---|
| Normal 正常 | 典型有效輸入 | 17、25、60 |
| Boundary 邊界 | 有效範圍邊緣 | 0、150 |
| Erroneous 錯誤(無效) | 超範圍或類型錯 | -1、151、"abc"、空 |
每個輸入欄位都三類全覆蓋。bug 大都藏在邊界。
實例 · 折扣資格
規則:會員若年齡 ≥ 60 或 消費超過 $1000 享折扣。
測試用例
| # | 類型 | age | spent | 期望 |
|---|---|---|---|---|
| 1 | Normal | 17 | 200 | False |
| 2 | Normal | 65 | 200 | True |
| 3 | Normal | 17 | 1500 | True |
| 4 | Boundary | 60 | 0 | True |
| 5 | Boundary | 59 | 0 | False |
| 6 | Boundary | 0 | 1000 | False(嚴格 > 1000) |
| 7 | Boundary | 0 | 1001 | True |
| 8 | Erroneous | -5 | 200 | 拒絕輸入 |
| 9 | Erroneous | 60 | -100 | 拒絕輸入 |
注意邊界(60 vs 59、1000 vs 1001)揭示精確閾值。
測試計劃模板
| # | 輸入 | 期望輸出 | 實際輸出 | 通過 / 失敗 | 備註 |
|---|---|---|---|---|---|
| 1 | … | … | … | ✓ / ✗ |
SBA 報告裏要留測試計劃。
測試驅動心態
即使沒正式框架,也養成:
- 先寫測試(「我若加
is_palindrome函式,這些輸入應回 True/False」)。 - 實現。
- 跑測試。
- 重構。
學生常見錯誤
- 只測快樂路徑(明顯能跑的正常輸入)。
- 跳過邊界值。
- 不測無效輸入。
- 手動測但不記錄測試資料。
考試式題目
題(4 分): 程序接受百分制分數 (0–100)。建議三個邊界測試用例與兩個錯誤輸入測試用例。
參考答案:
邊界用例:
0—— 最低有效分。100—— 最高有效分。50—— 正好及格分(條件邏輯邊界)。
錯誤用例:
-5—— 範圍以下。"abc"—— 類型錯(文字而非數字)。
關鍵要點
- 三類:正常、邊界、錯誤。
- 邊界藏 bug 最多。
- 記錄測試用例。
➡️ 下一節:4.2 錯誤類型