先準備兩筆虛構記錄
這是紙面教學示例,以下帳號、客戶、合約與金額全部虛構。可以將用例放進自己的練習專案,再記錄實際結果。
| 練習帳號 | 允許查看的客戶記錄 | 合約編號 | 金額 |
|---|---|---|---|
| A | A-001 | HT-A-01 | 10000 CNY(人民幣) |
| B | B-001 | HT-B-01 | 20000 CNY(人民幣) |
第一版需求:登入後按記錄編號查合約,只能查看本帳號有權存取的記錄。暫不做新增、修改與匯出。
問題可能怎樣產生
假設頁面有登入,介面卻只按輸入的記錄編號查詢。A 輸入 A-001 能得到自己的合約;若再輸入 B-001,也收到 B 的合約。
這代表查詢缺少資料範圍限制。頁面只顯示 A 的客戶,仍不足以保護介面:請求可能從別處送出,也可能被修改。
查詢應該怎樣安排
- 伺服器從已驗證的登入狀態取得目前身分;未登入時拒絕讀取受限資料。
- 依該身分有權存取的範圍,結合輸入編號查詢。不要相信請求自行填入的帳號身分。
- 沒有可查看記錄時,回傳不含合約內容的提示;頁面可顯示「沒有找到可查看的資料」。
實際系統可能依個人、團隊或其他業務規則授權。先寫清楚規則,再選擇適合的資料結構與實作方式。
修改後,用這些輸入複查
這張表列出測試計畫與預期結果,需要在自己的專案實際執行,不是已完成的測試結果。
| 登入狀態與操作 | 預期結果 |
|---|---|
| A 查詢 A-001 | 回傳 HT-A-01,金額 10000 CNY(人民幣) |
| A 查詢 B-001 | 不回傳 B 的合約或金額 |
| B 查詢 B-001 | 回傳 HT-B-01,金額 20000 CNY(人民幣) |
| B 查詢 A-001 | 不回傳 A 的合約或金額 |
| 未登入,直接請求 A-001 | 拒絕讀取,不回傳合約內容 |
| A 繞過頁面,直接請求 B-001 | 仍受權限限制,不回傳 B 的資料 |
| A 輸入不存在的編號 | 明確提示,不含其他合約內容 |
保存每次使用的帳號、輸入與實際結果。還要檢查回應內容是否夾帶頁面沒顯示的其他記錄;只看頁面文字,可能漏掉介面多回傳的資料。
新增入口,也要沿用規則
以後加搜尋、匯出或 AI 問答,都要確認採用相同的資料範圍。AI 回答前能讀什麼,也應由系統權限決定。
這組用例主要檢查跨帳號讀取。完整專案還須依功能檢查輸入處理、修改權限、日誌、部署與備份等問題。可用上線清單補齊適用項目,需求階段則先寫一頁任務說明。
常見問題
這是實際客戶專案嗎?
這是虛構的紙面教學示例,帳號、客戶與合約都是練習資料。文中的表格是可在練習專案執行的測試用例,不是已執行的測試報告。
頁面有登入,為什麼可能看到別人的資料?
登入確認身分,伺服器端查詢還要依身分限制資料範圍。若只按客戶名稱或記錄編號取資料,登入身分可能沒有參與權限判斷。
接著讀
- 專案出問題怎樣排查 — 從具體操作與環境找原因
- 上線前檢查清單 — 依實際功能補項
- 從 Vibe Coding 到更多工作 — 理解需求、操作、檢查與複用