本章示範如何為 South Coast Nautical Supplies 專案中已排入發布計畫的 Story 撰寫驗收測試。

搜尋功能的測試#

基本搜尋#

  • 搜尋一個可能是書名但不太可能是作者名的字(如 “navigation”)
  • 搜尋一個可能是作者名但不太可能是書名的字(如 “John”)
  • 搜尋一個兩者都不太可能的字(如 “wookie”)

進階搜尋#

  • 同時輸入作者和書名,應匹配至少一本書
  • 同時輸入作者和書名,應無匹配結果
  • 測試 ISBN 搜尋

購物車的測試#

在測試過程中,Lori 和開發人員討論了幾個開放性問題:

  • 絕版書可以加入購物車嗎?
  • 尚未出版的書呢?

團隊決定將「從購物車移除書籍」簡化為「調整購物車中書籍的數量」——將數量設為 0 就等於移除。這個決定同時簡化了系統改善了使用體驗

加入購物車測試#

  • 將缺貨書籍加入購物車,確認提示使用者到貨後出貨
  • 將未出版書籍加入購物車,確認提示使用者出版後出貨
  • 將有庫存的書籍加入購物車
  • 將同一本書加入第二次,確認數量增加

調整數量測試#

  • 將數量從 1 改為 10
  • 將數量從 10 改為 1
  • 將數量改為 0,確認書籍從購物車移除

購買流程的測試#

Lori 確認網站只接受 Visa 和 MasterCard,且允許帳單和寄送地址不同。

測試案例:

  • 帳單地址即寄送地址
  • 不同的帳單和寄送地址
  • 州與郵遞區號不一致時要捕獲錯誤
  • 確認寄送地址是實際的出貨地址(非帳單地址)
  • 有效的 Visa 卡
  • 有效的 MasterCard
  • American Express 卡(應被拒絕)
  • 過期的 Visa 卡
  • 超過額度的 MasterCard
  • 位數不足的 Visa 卡號
  • 數字順序錯誤的 Visa 卡號
  • 完全無效的 Visa 卡號

帳戶功能的測試#

建立帳戶#

  • 使用者可以不建立帳戶就下單購買
  • 建立帳戶後查詢,確認資訊已儲存

編輯信用卡資訊#

  • 將卡號改為無效號碼,確認系統警告使用者
  • 將有效期限改為過去日期,確認變更不被儲存
  • 將卡號改為新的有效號碼,確認變更被儲存
  • 將有效期限改為未來日期,確認變更被儲存

編輯地址#

  • 修改寄送地址的各部分,確認變更被儲存
  • 修改帳單地址的各部分,確認變更被儲存

管理功能的測試#

新增書籍#

  • 管理員可以新增書籍
  • 非管理員不能新增書籍
  • 必要欄位未填寫時不能新增

刪除書籍#

  • 管理員可以刪除書籍
  • 非管理員不能刪除書籍
  • 刪除書籍後,未出貨的訂單仍然會出貨

編輯書籍#

  • 可以修改名稱、作者、頁數等資訊
  • 可以修改價格,但價格變更不影響已下單但未出貨的訂單

約束條件的測試#

訂單資料庫整合#

  • 在網站下單後,開啟電話訂單系統的資料庫,確認訂單存在

效能測試#

Lori 親自撰寫:

  • 模擬 50 位使用者同時進行各種搜尋和下單操作
  • 確認沒有任何畫面的載入時間超過 4 秒
  • 確認沒有訂單遺失

推薦書籍的測試#

團隊決定推薦功能將是一個簡單的靜態頁面:

  • 選擇一個主題(如導航、巡航),查看推薦清單是否合理
  • 點擊清單中的項目,確認能跳轉到該書的詳細資訊頁面

驗收測試的撰寫過程往往會引發關鍵的設計對話。例如購物車的「移除」功能被簡化為「調整數量」,就是在撰寫測試時發現的改善機會。