驗收測試的角色#

驗收測試是 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 表格或試算表來定義驗收測試,降低了非技術人員撰寫測試的門檻。

驗收測試不取代其他測試#

驗收測試驗證的是業務需求的正確性。團隊仍然需要:

  • 單元測試:驗證程式碼層級的正確性
  • 效能測試:驗證系統在負載下的表現
  • 可用性測試:驗證使用者介面的易用性