# 📙 Test Driven Development (TDD) ## 1. 測試分類與範圍 | 類型 | 工具 | 範圍 | |------|------|------| | 單元測試 | pytest | importer、renderer、export 模組 | | 端對端測試 | Playwright | 前端互動與整體流程 | | 效能測試 | pytest-benchmark | 渲染與輸出效能 | --- ## 2. 單元測試案例 | 編號 | 測試項目 | 驗證重點 | |------|-----------|------------| | UT-IMP-01 | 匯入 CSV 欄位解析 | 欄位自動對應與格式容錯 | | UT-REN-01 | 時間刻度演算法 | 不同時間跨度下刻度精準性 | | UT-REN-02 | 節點避碰演算法 | 重疊節點之排版與間距合理性 | | UT-EXP-01 | PDF 輸出完整性 | 字型嵌入與 DPI 驗證 | --- ## 3. 端對端測試(E2E)流程 1. 匯入測試資料(CSV)。 2. 驗證時間軸正確渲染。 3. 切換主題並重新渲染。 4. 匯出 PNG/PDF 並確認檔案存在與開啟性。 5. 驗證畫面快照差異 ≤ 0.5%。 --- ## 4. 效能與穩定性測試 | 測試項目 | 標準 | 通過條件 | |-----------|------|-----------| | 100 筆事件 | <1 秒 | 無延遲或崩潰 | | 300 筆事件 | <3 秒 | FPS ≥ 30 | | 匯出任務 | <2 秒 | 正確生成檔案 | --- ## 5. 測試環境與自動化 | 組件 | 工具 | |------|------| | 測試框架 | pytest, Playwright | | 持續整合 | GitHub Actions | | 覆蓋率 | coverage.py + htmlcov | | 報告生成 | Allure / pytest-html | --- ## 6. 驗收條件 - 單元測試覆蓋率 ≥ 80%。 - E2E 測試通過率 = 100%。 - 效能達標:渲染與輸出均在 KPI 內。