iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
Build on Google AI

將考國際證照的應用程式變成開源系列 第 18

test-spec : integration-tests , e2e-tests , test-matrix

  • 分享至 

  • xImage
  •  

04-integration-tests.md

整合測試規範 (Integration Tests)

目標讀者:QA 工程師與開發人員。
背景:驗證跨多個元件與資料來源的流程是否運作正常。

1. 整合流程 (約 12 個案例)

測試 ID 流程名稱 執行步驟 預期結果
INT-001 登入流程:Google 登入 模擬 Google 登入 -> 檢查認證狀態 -> 檢查角色 使用者成功登入,確認角色,導向儀表板。
INT-002 登入流程:Email 登入 使用 Email 登入 -> 伺服器分配 'pending' -> 導向 AuthWrapper 使用者看到「審核狀態」畫面,拒絕存取題庫。
INT-003 登入流程:匿名登入 點擊「訪客登入」 -> 繞過認證提供者 以 'guest' 登入,限制僅能存取 10 題。
INT-004 測驗流程:基本操作 選擇考試 -> 載入題目 -> 選擇選項 -> 提交 顯示詳解,更新進度,正確/錯誤邏輯處理完畢。
INT-005 測驗流程:切換資料庫 設定 -> 切換至 'MongoDB' -> 進入考試 App 清除 Provider 快取,並從 Mongo 重新載入題目。
INT-006 模擬測驗流程:完整週期 設定 (50題, 120分) -> 開始 -> 自動作答全部 -> 提交 計時器停止,渲染分數報告,錯題寫入紀錄。
INT-007 支付流程:購買 設定 -> 訂閱 -> 模擬購買成功 -> 檢查授權 UI 更新為 Premium,角色升級,移除廣告。
INT-008 離線流程:同步機制 關閉網路 -> 作答 -> 開啟網路 -> 觸發同步 離線作答紀錄透過 PowerSync SQLCipher 佇列推送到後端。
INT-009 管理員流程:題目管理 管理員登入 -> 建立題目 -> 設定 'isApproved=true' -> 重新整理 題目立即顯示於全域考試清單中。
INT-010 搜尋流程:向量與過濾器 搜尋框輸入關鍵字 -> 設定主題過濾 -> 搜尋 傳回同時符合語意字串與過濾條件的相關結果。
INT-011 錯題流程 故意答錯 -> 檢查錯題分頁 -> 答對 -> 重新整理 該題從本機/遠端錯題清單中被移除。
INT-012 安全流程:浮水印與防截圖 模擬系統截圖行為 -> 檢查 Flutter 視窗標誌 螢幕變黑/空白 (Android 觸發 FLAG_SECURE)。

05-e2e-tests.md

端到端測試規範 (E2E Tests)

目標讀者:QA 工程師與 CI/CD 流程。
背景:實體裝置、全整合的使用者旅程測試,驗證完整的認證練習應用程式。

1. 端到端路徑 (約 6 個案例)

E2E-001:快樂路徑 (訪客升級至 Premium)

  • 步驟
    1. 首次開啟應用程式。
    2. 選擇「訪客登入」。
    3. 進入認證考試(例如標準網路題庫)。觸發 10 題付費牆限制。
    4. 前往設定 -> 使用 Google 登入。
    5. 前往訂閱 -> 透過 RevenueCat 沙盒購買 Premium。
    6. 返回測驗 -> 驗證現在可存取超過 10 題的題目。

E2E-002:管理員管理路徑

  • 步驟
    1. 使用管理員憑證登入。
    2. 前往管理面板 -> 管理使用者 -> 將 "pending" (待審核) 使用者升級為 "viewer" (檢視者)。
    3. 前往題目編輯器 -> 新增一題拖放題。
    4. 提交並核准該題目。
    5. 驗證新題目立即顯示在標準考試清單中。

E2E-003:安全防護路徑

  • 步驟
    1. 在已 Root 的模擬器上啟動應用程式。
    2. 驗證應用程式立即顯示「安全違規:偵測到 Root」並強制關閉。
    3. (在標準裝置上) 手動更改系統時間 (NTP 欺騙)。
    4. 驗證應用程式因時間驗證失敗而阻擋測驗存取。

E2E-004:離線可靠性路徑

  • 步驟
    1. 在連線狀態下成功登入。
    2. 下載考試資源以供離線使用 (PowerSync 快取)。
    3. 開啟飛航模式。
    4. 完成 50 題的模擬測驗。
    5. 重新連接 WiFi。
    6. 驗證儀表板進行同步,並在遠端伺服器更新「總答題數」指標。

E2E-005:多國語系 UI 路徑

  • 步驟
    1. 前往設定 -> 將語言切換為日文。
    2. 驗證側邊欄選單、測驗按鈕及詳解頁籤切換為日文 (JA)。
    3. 切換為繁體中文 (zh-TW)。
    4. 驗證網路術語嚴格使用在地詞彙(例如:路由器、預設閘道)。
    5. 切換為英文。驗證復原狀態。

E2E-006:AI 家教與語音 (TTS) 路徑

  • 步驟
    1. 開啟一道複雜的模擬題。
    2. 點擊 AI 家教懸浮按鈕 (FAB)。
    3. 詢問「為什麼這是正確答案?」並等待串流回應。
    4. 點擊 AI 回應上的 TTS (語音) 按鈕。
    5. 驗證語音播放至結束。
    6. 點擊「匯出至筆記」 -> 驗證詳解出現在筆記檢視器中。

06-test-matrix.md

測試矩陣規範 (Test Matrices)

目標讀者:QA 架構師與產品經理。
背景:概述練習測驗系統在各項功能、平台及使用者角色間的測試涵蓋對應關係。

1. 功能 × 測試類型矩陣

功能 單元 (Unit) 元件 (Widget) 整合 (Integration) 端到端 (E2E)
身分驗證 (Auth) 5 3 3 1
測驗引擎 10 5 2 1
模擬測驗 4 2 1 1
錯題複習 8 2 1 0
AI 家教 3 3 0 1
支付系統 2 1 1 1
管理面板 0 0 1 1
安全防護 5 2 1 1
搜尋功能 2 1 1 0
多國語系 (Localization) 1 1 0 1
語音 (TTS) 2 0 0 1
筆記 2 1 0 0
廣告展示 1 2 0 0
討論區 2 2 0 0

2. 平台 × 功能矩陣

功能 Android Web iOS Windows
測驗引擎 支援 支援 支援 支援
應用內支付 (Native) 支援 不支援 支援 不支援
PowerSync (離線同步) 支援 部分支援 支援 支援
Gemma 本機 AI 支援 不支援 支援 支援
防截圖安全 支援 不支援 支援 部分支援
TTS 語音引擎 支援 支援 支援 支援

3. 角色 × 功能矩陣

功能 Admin (管理員) Viewer (檢視者) Pending (待審核) InternalTester (內測) PublicTester (公測) Guest (訪客)
儀表板 (Dashboard) 完整 完整 受限 完整 完整 受限
完整題庫存取 完整 完整 完整 完整
免費試用 (10題) 完整 完整 完整 完整 完整
AI 家教 完整 完整 完整 完整
模擬測驗 完整 完整 完整 完整
管理面板 完整
顯示廣告 完整 完整

上一篇
test-spec : 01-test-strategy , 02-unit-tests , 03-widget-tests
下一篇
學習筆記: 使用 Gemini 和 Cloud Run 中的 BigQuery MCP 伺服器建構及部署 AI 代理
系列文
將考國際證照的應用程式變成開源26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言