QA TEMPLATE / SAMPLE
Test Specification
測試規格|來源、範圍、風險與執行依據
這份文件回答什麼
定義 Order Book 的更新規則、測試範圍及可追溯的判準。這組示例聚焦舊序號更新覆寫最新狀態的問題,來源是本站 Fail Demo 的合成案例。
空白範本
〔必填〕每案都要有;〔條件式〕適用時必填,不適用寫原因。複製下方文字到案件文件後替換方括號內容。本頁為靜態範本,沒有編輯或儲存功能。
〔必填〕Spec ID/版本:[ ] 文件狀態:[草稿/待審閱/已核定] 〔必填〕產品/本輪版本/負責人:[ ] 〔必填〕目的、範圍、不測範圍:[ ] 〔必填〕需求與判準表:REQ ID|來源/版本|規則|確認狀態/人員/日期 〔必填〕風險表:RISK ID|失效模式|影響|可能性|偵測難度|依據 〔必填〕追溯表:REQ ↔ RISK ↔ Scenario ↔ Case/版本 ↔ Run ↔ Defect 〔必填〕問題清單:Q ID|問題|責任人|影響 ID|答案來源/日期|新判準版本 〔必填〕執行關卡:版本、角色、資料、判準、隔離、額度、停止與證據安排 〔必填〕授權:允許帳號/操作、AI 可讀資料、遮蔽、保存位置/期限、清理範圍 〔必填〕覆核:設計與結果的覆核者、方法、來源與未完成限制 〔必填〕缺陷:Severity 定義、裁定責任、狀態流程、重測與回歸選取方式 〔必填〕結束條件:關鍵路徑證據;未解決 S1/S2 處置;追溯缺口解釋 〔必填〕修訂:原因|舊/新版本|受影響項目|重新評估與重測安排 〔條件式〕AI 測試:模型/提示詞/資料版本、K 次、允許變異、校準及覆核 〔條件式〕資料契約:DC ID/版本/確認狀態;來源、期間、as-of 規則、單位、公式、缺值/零值、捨入與容差 執行結果引用另存 Run;此處不預填實際結果。
填寫示例:Order Book 更新順序
DEMO-SPEC-MDQ · v1.2
目的:驗證連續更新、拒絕舊序號及重新連線後載入快照。範圍是隔離的合成行情狀態;不含真實交易所協定、下單、成交、資產或壓力測試。
環境名稱:DEMO-BOOK/build-demo-1;沒有真實端點。文件狀態:教學草稿。案例 ID 與 104→103 失敗沿用 app/run-records/fail-demo/page.tsx;本頁新增的資料契約只供教學,未經產品方核定。
| 需求/判準 | 合成規則 | 來源/狀態 |
|---|---|---|
| DEMO-REQ-NEXT | current=104,incoming=105 時,套用本次更新並保留新序號。 | TC-MDQ-016 的連續更新情境;具體數值為教學設定。 |
| DEMO-REQ-STALE | current=104,incoming=103 時拒絕舊事件,序號及整份 Order Book 保持原值。 | TC-MDQ-017;104/103 沿用本站 Fail Demo。 |
| DEMO-REQ-RECONNECT | 重新連線後用指定的最新完整快照取代舊狀態。 | TC-MDQ-018;快照 106 及價格、數量為教學補充。 |
共用資料契約
DEMO-DC-MDQ · v1.0
資料集 DEMO-BOOK-DATA-v1,僅含下列自足的合成資料。交易對 DEMO-BASE/QUOTE:價格單位 QUOTE/BASE,數量單位 BASE。這套簡化規則不代表任何交易所的 sequence range 或 WebSocket 協定。
| 條款 | 定義 |
|---|---|
| C1 快照與事件 | 基準 SNAP-104:sequence=104,bids=[[100,2]],asks=[[101,3]]。E-105:sequence=105,將價格 100 的 bid 數量更新為 4。E-103:sequence=103,企圖將同一 bid 數量更新為 9。重連 SNAP-106:sequence=106,bids=[[100,5]],asks=[[101,6]]。每案從獨立 SNAP-104 開始,前案不得污染後案。 |
| C2 判定與容差 | 連續更新後預期 sequence=105、bid 100×4、ask 101×3。舊事件後預期 sequence=104、bid 100×2、ask 101×3,完整狀態須不變。重連後預期完整 SNAP-106。sequence 為整數;本資料的價格、數量用精確十進位值比較,絕對容差 0,不捨入。零數量刪價位、缺值、相同序號及序號跳號均未定義,須另確認,不能把缺值當零。 |
| C3 時間與觀察 | 以每案事件處理完成的確認點比較前後狀態;重連以完整快照套用完成為確認點。此同步教學情境沒有產品延遲 SLA,不沿用原案例的 30 秒等待。記錄來源 as-of、擷取時間及時區;sequence 決定順序,牆鐘時間不取代序號。缺少完成訊號或可觀察狀態時先記 Blocked,不能憑等待秒數推定 Pass/Fail。 |
| C4 證據與停止 | 保存事件識別、輸入、前後完整狀態與確認點。前提有效且狀態違反 C2 時記 Fail;無法準備隔離快照或觀察狀態時記 Blocked。已確認的失敗保留,不被其他阻塞蓋過。發現舊資料覆寫後停止該案例,保留快照;其餘案例僅在獨立隔離資料中執行。 |
風險與追溯
| 需求/風險 | 情境/案例 | 結果入口 |
|---|---|---|
| DEMO-REQ-STALE/RISK-OB-SEQ:舊行情覆寫最新狀態,可能影響下游報價判斷。可能性與偵測難度:Unknown。 | DEMO-SC-BOOK → TC-MDQ-017 v1.2 | DEMO-RUN-FAIL-001 → DEF-MDQ-004(均合成) |
| DEMO-REQ-NEXT/RISK-OB-SEQ | DEMO-SC-BOOK → TC-MDQ-016 v1.2 | 同輪逐案紀錄 |
| DEMO-REQ-RECONNECT/RISK-OB-SEQ | DEMO-SC-BOOK → TC-MDQ-018 v1.2 | 同輪逐案紀錄 |
問題與版本影響
| 問題/責任 | 受影響項目 | 恢復條件 |
|---|---|---|
| DEMO-Q-SEQ:實際 feed 的序號、重連與完成訊號規則為何?產品/行情介接窗口確認。 | 三筆需求、DC C1~C3、三案及相關 Run;真實規則 Unknown。 | 取得官方規格與版本後修訂判準,列出差異,重評受影響案例並新增 Run;舊 Run 保留原版本。 |
| DEMO-Q-DATA:哪些輸入可交給 AI,證據存多久、由誰清理?資料窗口確認。 | 外部 AI 擷取、保存與清理;本示例不呼叫 AI 或真實服務。 | 確認允許資料類別、遮蔽、模型/服務、保存位置與期限;未確認前不外傳或清理。 |
覆核分歧時保留雙方結論及原始依據,由指定責任人重查;受影響判定暫不升為 Ready。AI 誤判先保存輸入、模型/提示詞與評估版本,人工重新標記並檢查受影響範圍,再用保留驗證集重評。
執行、覆核與結束條件
執行前
逐案確認版本、隔離 fixture、事件輸入、完成訊號、判準、資料讀取權限、操作上限及證據安排。必要條件不足時不開始產品操作,選定案例記 Blocked。
覆核
設計覆核對照來源與案例;結果覆核先看原始輸入輸出,再比較結論。同一模型換角色不算獨立覆核。本套只有合成填寫示例,無真人核准或產品執行。
三項結束條件
- 關鍵路徑完成必要步驟及檢查點,有當前版本/環境的有效證據。
- 沒有未解決 S1;S2 已修復並完成必要重測/回歸,或有權人明確接受延期並記理由、責任人、重評日期。
- 追溯表沒有未解釋缺口。
測試結束、符合結束條件與批准上線分開。各項結果見 品質報告。