測試策略
Mindwtr 針對 core、各平台應用程式與整合介面採用分層測試策略。
目標
- 保護資料完整性(同步、儲存、合併規則)
- 找出關鍵使用者工作流程中的迴歸
- 讓 CI 中的測試快速且結果可重現
測試層級
核心(packages/core)
- 涵蓋主要邏輯(同步、重複、解析、儲存輔助函式)
- 使用結果可重現的固定資料進行快速單元測試
- 多數資料完整性不變條件應優先在此強制執行
桌面版(apps/desktop)
- 元件與檢視行為測試(Vitest + Testing Library)
- 著重互動密集的檢視與同步協調包裝層
行動版(apps/mobile)
- 工具與協調邏輯測試
- 同步及任務編輯行為等關鍵流程的煙霧測試
- 裝置特有的介面行為仍有一部分仰賴手動驗證
雲端(apps/cloud)
- API 端點測試
- 驗證身分、速率限制與路徑
- CRUD 與附件端點行為
- 涵蓋範圍著重核心請求處理,並未窮盡所有並行部署情境
MCP 伺服器(apps/mcp-server)
- 查詢層正確性(搜尋、新增/更新/刪除/還原)
- 輸入驗證與交易行為
- 涵蓋範圍著重工具行為與驗證,不包含完整的端對端編輯器/LLM 工作流程
目前的涵蓋限制
packages/core的自動化測試涵蓋最完整,應持續作為資料完整性迴歸的第一道防線。- 桌面版對關鍵檢視有良好的元件測試涵蓋,但並非每條互動路徑都有端對端測試。
- 行動版的涵蓋刻意比桌面版/核心更精簡;無障礙功能、手勢與原生整合路徑仍需在裝置上手動檢查。
- 雲端與 MCP 伺服器測試涵蓋核心處理常式與驗證路徑,但尚未模擬所有正式環境的並行或部署邊界情況。
優先測試項目
新增或變更行為時,請依下列順序安排測試:
- 資料正確性與合併語意
- 錯誤路徑以及重試/逾時行為
- 使用者可見的互動路徑
- 對效能敏感的邏輯(搜尋/同步/清單轉換)
迴歸檢查清單
合併前:
- 為變更的行為新增或更新測試
- 在本機執行受影響套件的測試
- 若變更橫跨套件,執行較完整的工作區測試
- 確認測試之間沒有快照/狀態耦合
實務規則
- 優先使用固定時間戳記/測試資料,不要使用即時時間。
- 單元測試應避免依賴網路。
- 每項測試只聚焦一種行為。
- 整合測試用於工作流程邊界,不必涵蓋每個分支。
- 將不穩定測試視為錯誤,並儘快修正根本原因。
- 若平台特有的錯誤修正缺乏可靠的自動化測試,請在 PR 中記錄必要的手動驗證步驟。