今天我們來挑戰一個自助洗衣店的計費系統設計,這樣的題目在 TDD(Test-Driven Development)練習中非常實用。通常我們會先撰寫測試案例,再實現對應的功能。不過,這篇文章會更聚焦於如何設計覆蓋率完整的測試案例,並根據需求細化它們。
設計一個自助洗衣機的計費系統,依據不同的洗衣模式和洗衣重量來計算費用:
這次的挑戰是設計一組覆蓋所有條件的測試案例,並確保計費邏輯正確。這是個很好的練習,目標是能在 30 分鐘內完成這些測試設計,藉此熟悉測試案例的撰寫方式及邏輯。
這一版是根據系統需求設計出來的測試案例,涵蓋了洗衣模式、重量折扣、烘乾模式及環保洗劑的組合。這類測試更偏向功能驗證,確保系統能正確處理各種常見情況。
測試案例名稱 | 洗衣模式 | 洗衣重量 | 烘乾模式 | 環保洗劑 | 預期費用 | 說明 |
---|---|---|---|---|---|---|
普通洗衣模式 | 普通模式 | 5 公斤 | 否 | 否 | 100 元 | 普通模式,5 公斤衣物,每公斤 20 元,不加其他費用 |
快速洗衣模式 | 快速模式 | 5 公斤 | 否 | 否 | 150 元 | 快速模式,5 公斤衣物,每公斤 30 元 |
超過 10 公斤折扣 | 普通模式 | 12 公斤 | 否 | 否 | 216 元 | 普通模式,超過 10 公斤,享 10% 折扣 |
普通模式加烘乾 | 普通模式 | 5 公斤 | 是 | 否 | 175 元 | 普通模式,5 公斤,加烘乾,每公斤加收 15 元 |
快速模式加烘乾 | 快速模式 | 5 公斤 | 是 | 否 | 225 元 | 快速模式,5 公斤,加烘乾,每公斤加收 15 元 |
普通模式加環保洗劑 | 普通模式 | 5 公斤 | 否 | 是 | 150 元 | 普通模式,選擇環保洗劑,固定加收 50 元 |
快速模式加烘乾及環保 | 快速模式 | 5 公斤 | 是 | 是 | 275 元 | 快速模式,5 公斤,加烘乾及環保洗劑,加收額外費用 |
這一版採用等價類別來設計測試案例,確保系統能應對各種邊界情境。這類測試更偏向健壯性測試,特別適合檢查系統對異常輸入的處理能力。
測試案例名稱 | 洗衣模式 | 洗衣重量 | 烘乾模式 | 環保洗劑 | 預期結果 |
---|---|---|---|---|---|
測試案例 1 | 普通洗衣模式 | 5 公斤 | 不使用 | 不使用 | 100 元 |
測試案例 2 | 普通洗衣模式 | 12 公斤 | 使用 | 使用 | 351 元 |
測試案例 3 | 快速洗衣模式 | -5 公斤 | 不使用 | 不使用 | 錯誤:無效的重量 |
測試案例 4 | 快速洗衣模式 | 12 公斤 | 無效模式 | 使用 | 錯誤:無效的烘乾模式 |
測試案例 5 | 無效洗衣模式 | 12 公斤 | 使用 | 使用 | 錯誤:無效的洗衣模式 |
測試案例 6 | 快速洗衣模式 | 12 公斤 | 使用 | 無效選項 | 錯誤:無效的環保洗劑 |
這兩版測試案例差異主要體現在測試的深度和具體性上:
根據需求選擇測試設計的方式非常重要。如果你想確保系統在常見情境下能正確運作,第一版的功能測試更為合適;如果你需要驗證系統的健壯性,特別是在邊界或錯誤情境下,第二版的等價類測試則能提供更深度的保障。
透過這次的練習,你應該能夠掌握如何根據不同需求選擇合適的測試設計方法,並應用在日常的測試開發中。