驗收測試的角色#
驗收測試是 Story 的確認(Confirmation)環節。它們用來驗證一個 Story 是否按照客戶的期望正確實作。驗收測試由客戶指定,通常在 Story 開發之前或開發初期就寫好。
驗收測試不只是測試手段,更是一種溝通工具。撰寫驗收測試的過程會引發重要的對話,幫助團隊釐清 Story 的細節。
何時撰寫驗收測試#
驗收測試應盡早撰寫,最好在 Story 進入迭代之前就已經準備好。這有幾個好處:
- 幫助客戶明確思考她真正想要什麼
- 讓開發人員在開始寫程式前就知道完成標準
- 減少開發後期的返工和誤解
驗收測試的寫法#
驗收測試應該寫得簡潔且可驗證。例如,對於「A Recruiter can pay for a job posting with a credit card」這個 Story:
- 用 Visa、MasterCard 和 American Express 測試(通過)
- 用 Diner’s Club 測試(失敗)
- 用有效、無效和遺失的卡號測試
- 用過期的卡片測試
- 用不同的購買金額測試(包括超過額度的情況)
驗收測試寫在 Story 卡片的背面,或另外附上一張卡片。保持簡潔——每個測試只需要一句話描述。
客戶與開發人員的合作#
- 客戶負責指定驗收測試的場景
- 開發人員負責將測試自動化
- 測試人員(如果有的話)協助客戶識別邊界條件和例外情境
自動化驗收測試#
在可能的情況下,驗收測試應該自動化。可以使用 FIT(Framework for Integrated Test)等工具,讓客戶用表格定義測試案例,開發人員撰寫底層的測試程式碼。
FIT 讓客戶可以用 HTML 表格或試算表來定義驗收測試,降低了非技術人員撰寫測試的門檻。
驗收測試不取代其他測試#
驗收測試驗證的是業務需求的正確性。團隊仍然需要:
- 單元測試:驗證程式碼層級的正確性
- 效能測試:驗證系統在負載下的表現
- 可用性測試:驗證使用者介面的易用性