Test Case 撰寫範本 — 從 Title 到 Expected Result 的 7 個欄位
一份能用 5 年的 test case 範本:欄位定義、撰寫節奏、常見錯誤、Excel/Notion/TestRail 通用,附完整實例。
💡 本文原刊於 qa.9niche.com,2026-08 併入 9niche.com 懶人包,內容照原文完整搬遷。
目錄
1. 前言
寫 test case 不是把 spec 抄一遍就好。一份好的 case 要能讓完全沒接觸過產品的人照著跑出一致的結果。這篇是我累積五年寫測試案例的固定模板。
2. 一份 test case 該有的 7 個欄位
| 欄位 | 必填 | 用途 |
|---|---|---|
| ID | ✓ | 唯一識別、追蹤、引用 |
| Title | ✓ | 一句話描述「測什麼」 |
| Preconditions | ✓ | 執行前必須成立的狀態 |
| Test Data | ✓ | 具體輸入值(不要寫「合法 email」要寫 [email protected]) |
| Steps | ✓ | 編號的操作步驟 |
| Expected Result | ✓ | 每步的預期結果(或最終結果) |
| Priority | — | P0/P1/P2,回歸時用 |
少了任何一個都會讓後續維護痛苦。
3. Title 怎麼寫
爛例子:「測試登入」、「驗證密碼」
好例子:「以正確 email + 錯誤密碼登入時,顯示『帳號或密碼錯誤』錯誤訊息」
公式:<前置條件>,<操作>,<預期>
寫到能在 sprint review 上唸出來別人就懂,這個 title 才合格。
4. Preconditions:別讓人去猜環境
例:使用者已註冊但尚未驗證 email、購物車有 1 件商品、後台 feature flag
new_checkout=true已開啟
最常見錯誤:把 preconditions 寫成第一個 step。例如「1. 註冊一個帳號」其實應該是 precondition。原則:測試重點之外的所有狀態都是 precondition。
5. Test Data:寫死,不要寫類別
爛例子:
- 帳號:一個合法帳號
- 密碼:一個合法密碼
好例子:
- 帳號:
[email protected] - 密碼:
Test@123456
如果 case 用「合法帳號」這種模糊描述,不同人會準備不同資料,結果會不一樣。Test data 要寫死,要讓人能 copy-paste。
6. Steps & Expected Result:1:1 對齊
Step Expected Result
1. 開啟首頁 1. 看到 Login 按鈕在右上
2. 點 Login 2. 跳出 Login Modal
3. 輸入 qa-test-001@... 3. Email 欄位顯示輸入值
4. 輸入錯誤密碼 wrong123 4. Password 欄位顯示為遮罩
5. 點「登入」 5. 顯示紅色錯誤「帳號或密碼錯誤」
且 stay on Login Modal
每個 step 都有對應 expected。不要把 5 個 expected 都寫在最後一行,會看不出來哪一步壞了。
7. 完整實例
ID: TC-LOGIN-007
Title: 帳號鎖定後重試 — 連續輸錯 5 次後第 6 次應顯示鎖定訊息
Priority: P0
Preconditions:
- 已存在帳號 [email protected],狀態為 active
- 該帳號未曾被鎖定
- 系統設定:MAX_FAIL_ATTEMPTS=5、LOCK_DURATION=15min
Test Data:
- email: [email protected]
- 正確密碼: Test@123456
- 錯誤密碼: wrong000
Steps Expected Result
1. 開啟 /login 1. Login 表單可見
2-6. 用 wrong000 連續登入 5 次 2-6. 每次顯示「帳號或密碼錯誤」
7. 第 6 次仍用 wrong000 7. 顯示「帳號已鎖定,15 分鐘後重試」
且按鈕變灰
8. 此時改用正確密碼 Test@123456 8. 仍顯示「帳號已鎖定」(不應放行)
9. 等待 15 分鐘 9. —
10. 再以正確密碼登入 10. 登入成功進入 /dashboard
8. 常見錯誤一覽
- 把多個情境塞同一個 case — 「測 login 各種情況」會變一坨。每個情境 = 一個 case。
- Steps 寫得像功能說明 — 「系統應該驗證 email 格式」這是 spec,不是 step。Step 是「使用者輸入
abc並點下一步」。 - Expected 寫「正確」 — 不可量測。要寫「畫面跳轉到 /dashboard」「右上角顯示使用者名稱」。
- 太依賴前一個 case — 一個 case fail 就會連環倒。除非真的有 dependency,每個 case 都該能獨立跑。
- 不留環境/版本 — 線上修了之後跑回歸發現 case 不對,是因為 spec 改了沒同步。在 case 末加
Spec ref: confluence/login-v2。
9. 工具差異不大
- Excel/Sheets:起步最快,但難追 history、難跨 case 引用
- Notion:適合小團隊,搜尋好用
- TestRail / Xray / Zephyr:適合中大型團隊,能跑 test run、出報表
- JSON/Markdown + Git:適合自動化 + 手動混合的團隊,diff 看得到改了什麼
工具決定樣式,內容結構不變。先把上面 7 個欄位寫好,換工具就只是 copy-paste。
10. 最後
Test case 寫起來無聊,但測試案例品質 = 測試覆蓋率。寧可花一小時寫一份能傳承的 case,也不要花一週每次都重新摸索。先有範本,再有效率。
相關連結
一份不被退回的 bug report 該長什麼樣。Title / 重現步驟 / 預期 vs 實際 / 環境 / 影響 / 證據 / 優先級 / 相關連結,附完整範例與爛 vs 好對比。
探索性測試不是「亂玩」。SBTM session、Heuristics(FAILURE、CRUSSPIC)、Charter 設計、結果記錄完整指南。
90% 的 QA 把 Strategy / Plan / Case 混為一談。這篇用一張圖講清楚三者層級、各層該寫什麼、誰負責寫、什麼時候用。附完整範本。
相關懶人包
2026 QA 趨勢實戰:我看到的 5 個轉變(AI、Shift-Left、Observability)
從手動 QA 到 AI 輔助、從測試金字塔到測試獎盃。這篇分享我這 10+ 年看 QA 從「測完才知道」到「shift-left + AI」的真實觀察。
2026 QA 面試的 AI 題 — 12 題 + 答題框架(面試官想聽什麼)
2026 QA 面試新增一整類「你怎麼用 AI」的問題。這篇整理 12 個高頻 AI 面試題、每題附面試官真正想聽的點與答題框架,從「你用過哪些 AI 工具」到「AI 生的 test 怎麼信任」。
AI / LLM 功能 Spec Review — 幻覺 / 評估 / 成本 / 法遵 8 個必問
AI 功能 spec review 完整指南。LLM 不確定性處理、評估指標、Prompt versioning、成本控制、安全護欄、法遵(EU AI Act / GDPR)、Fallback、人工 review 流程。
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。