FSTS BA 情境規格
本頁整理 FSTS 的 BA 情境編號(S-XXX)、測試套件分類、以及各模組主流程 / 異常 / UI 驗證情境。
Owner:BA Analyst Agent。PM / RD / QA 不得直接編輯 scenarios.md;變更需透過
ba-analystagent 或/ba-curateskill。1
文件維護規範
任何功能變更必須在同一個 PR 內由 BA 更新 scenarios.md:2
| 變更類型 | 操作 |
|---|---|
| 新增功能 | 新增對應情境(主流程 + 異常 + UI 驗證)+ 更新 Keyword 對應表 |
| 修改功能邏輯 | 更新對應情境的 Given / When / Then |
| 刪除功能 | 將情境標記 [已棄用] 並註記棄用版本,不直接刪除 |
| 新增模組 | 在情境編號規則表新增前綴,加入測試套件分類 |
情境編號規則
前綴對應模組(17 個)
| 前綴 | 模組 | 前綴 | 模組 | |
|---|---|---|---|---|
| S-ACCT | 客戶開戶資料主檔 | S-USR | 使用者管理 | |
| S-CUST | 客戶基本資料主檔 | S-ROLE | 角色管理 | |
| S-KYC | 客戶 KYC 資料 | S-LAYOUT | CBL Layout 管理 | |
| S-AUTH | 登入驗證 | S-CONV | CBL 轉檔對應 | |
| S-DASH | 儀表板 | S-DBCONN | 連線設定 | |
| S-STK | 股票基本資料 | S-AUDIT | 操作紀錄 | |
| S-CTY | 國家市場基本資料 | S-CHG | 異動紀錄查詢 | |
| S-CCY | 貨幣代號設定 | S-ORD | 委託回報查詢 | |
| S-SYS | 系統設定 |
Feature 目錄與 Controller 對應見 FSTS 功能對應表。
編號格式
- 主流程:
S-{模組}-{三位數}— 例S-AUTH-001 - 異常流程:
S-{模組}-ERR-{三位數}— 例S-AUTH-ERR-001 - UI 驗證:
S-{模組}-VAL-{三位數}— 例S-AUTH-VAL-001
測試套件分類
- 🔴 Core Flow Suite(每次部署後執行 — Smoke Test)
- 涵蓋主業務鏈:
S-AUTH→S-LAYOUT→S-CONV→S-DBCONN
- 涵蓋主業務鏈:
- 🔵 Full Functional Suite(版本發布前執行 — Regression Test)
- 涵蓋所有模組,包含 Core Flow Suite 全部情境 + 其他模組
核心流程情境(Core Flow)
| 編號 | Suite | Given / When / Then 摘要 |
|---|---|---|
S-AUTH-001 | Core / Full | 帳密登入:IsActive=true + 正確帳密 → JWT + 導向 /dashboard |
S-LAYOUT-001 | Core / Full | 建立 INI Layout:唯一 Code + IniLayouts.Create 權限 → 201 |
S-LAYOUT-002 | Core / Full | 從 FD 匯入 Layout 欄位:上傳 COBOL FD 原始碼 → 自動建立 IniLayoutField |
S-CONV-001 | Core / Full | 建立 INI Mapping:唯一 Code + Layout + DbConnection → 201 |
S-CONV-002 | Core / Full | 執行轉檔(Generic):上傳 FD → SqlBulkCopy → 回傳總筆數 / 成功 / 失敗 / 耗時 |
S-CONV-003 | Full | 執行轉檔(OCCURS 展開):1 筆 FD → 1 主檔 + N 明細 |
異常情境
| 編號 | 觸發條件 | 預期結果 |
|---|---|---|
S-AUTH-ERR-001 | 輸入錯誤帳號或密碼 | 拒絕登入 + 記錄失敗登入紀錄 |
S-AUTH-ERR-002 | 帳號 IsActive=false 嘗試登入 | 拒絕登入 + 提示「帳號已停用」 |
S-LAYOUT-ERR-001 | Layout Code 重複 | 400 + 「Code 已存在」 |
S-CONV-ERR-001 | Mapping Code 重複 | 400 + 「Code 已存在」 |
S-CONV-ERR-002 | FD 欄位長度不符 Layout 定義 | 返回錯誤明細(行 / 欄位),部分成功時回傳失敗筆數 |
S-ROLE-ERR-001 | 刪除 IsSystem=true 的角色 | 400 + 拒絕刪除 |
UI 驗證情境
| 編號 | 檢查 | 預期結果 |
|---|---|---|
S-AUTH-VAL-001 | 未輸入帳號 / 密碼直接按登入 | inline 錯誤提示,不送出請求 |
S-LAYOUT-VAL-001 | 建立 INI Layout 未填必填欄位(Code、Name、RecordLength) | inline 驗證錯誤,不送出 |
S-CONV-VAL-001 | 查詢 PageSize > 500 | 400 + 「分頁大小超過上限」 |
Robot Framework 關鍵字對應
8 注意:目前無 E2E 測試框架,Keyword 為預留設計,待 Robot Framework 導入後填入實際 Keyword。
| 情境編號 | Keyword | Suite |
|---|---|---|
S-AUTH-001 | Login With Credentials | Core / Full |
S-LAYOUT-001 | Create INI Layout | Core / Full |
S-LAYOUT-002 | Import FD Layout | Core / Full |
S-CONV-001 | Create INI Mapping | Core / Full |
S-CONV-002 | Execute Convert Generic | Core / Full |
S-CONV-003 | Execute Convert Occurs | Full |
模組級情境(節錄)
S-ACCT — 客戶開戶資料主檔
- 主流程:列表分頁(預設 20 筆)、關鍵字 / 入金類型 / 最後異動日期篩選、雙擊或 Enter 進入 ViewMode、F2 進入 EditMode、N 進入新增頁
- 異常:
BrokerNo+AccountNo重複 → 409;並發編輯 → 409/422;API 逾時 → 錯誤 Toast - UI 驗證:新增頁未填
BrokerNo / AccountNo→ 紅框;日期欄位支援民國年 7 碼格式
S-CUST — 客戶基本資料主檔
- 主流程:關鍵字篩選(券商代號 / 帳號 / 身份證 / 簡稱)、身份別 01~08 篩選、F3 EditMode、Ctrl+S 儲存、F11 新增、Ctrl+Enter 送出、F2 刪除、PgUp/PgDn 後端換頁
- 異常:
BrokerNo+AccountNo重複 → 422(BR-011);非 Admin 角色呼叫寫入 API → 403 - UI 驗證:稽核欄位(建檔 / 最後更新)唯讀;主鍵(BrokerNo / AccountNo)在明細頁唯讀;未儲存變更按 ESC / 返回 → 「放棄變更」確認框
S-KYC — 客戶 KYC 資料
- 主流程:列表分頁、keyword 搜尋、
RiskToleranceLevel下拉篩選、F3 EditMode、Ctrl+S、Esc 有未儲存時彈 Modal、F11 新增 / Ctrl+Enter 送出 - 異常:新增時
BrokerNo+AccountNo已存在 → 409;編輯時後端已被更新 → 409/422 + 「資料已被更新,請重新載入」 - UI 驗證:
BrokerNo≤ 4 碼、AccountNo≤ 6 位數;RiskToleranceLevel顯示 C1 保守~C5 積極;RiskProfileDate、TradingLimitCreateDate提示YYYYMMDD8 位格式;Gender (M/F)、AccountPurpose (1:投資避險 / 2:其他)
S-CHG — 異動紀錄查詢
- 主流程:列表分頁(依
OperatedAt降序)、模組名稱篩選、操作類型(Create/Update/Delete)、時間區間篩選精確到日含邊界、操作人員帳號(部分符合不分大小寫)、展開FieldChange三欄表格(欄位名 / 修改前 / 修改後;Enum 顯示oldText/newText) - 異常:無符合 → Empty State「查無相符的異動紀錄」;
PageSize=501→ 400 ProblemDetails;無ChangeLogs.View權限 → 403 + PermissionGuard - UI 驗證:
dateFrom > dateTo→ inline 紅色錯誤「起始日期不得晚於結束日期」,查詢按鈕停用
S-ORD — 委託回報查詢
- 主流程:列表分頁(依
OrderDate降序)、券商代號 / 客戶帳號(精確比對)、股票代號(不分大小寫)、ProcessFlag(S/E/P/R)、BSCode(B/S)、委託日期區間(YYYY-MM-DD)篩選;點擊「查看詳情」進入單筆詳情頁(含 MatchDetail 成交清單) - 異常:
PageSize=501→ 400;非法日期格式 → 400;複合主鍵不存在 → 404「委託回報不存在」;無OrderReports.View權限 → 403 - UI 驗證:
orderDateFrom > orderDateTo→ 查詢鍵停用;bsCode非 B/S → 後端 FluentValidation 400 + 「買賣別值不合法」
相關頁面
- 功能對應:FSTS 功能對應表
- BA 工作流:FSTS BA 工作流
- 核心流程:FSTS 核心業務流程
- 自動異動紀錄機制:Auto Change Log
補充資訊
(未來 ingest 新來源會在此追加段落)