九號工具站
返回列表

CI/CD 中的測試策略:讓每次部署都有品質保障

分享如何在 CI/CD 管線中規劃測試策略,從 commit 到 deploy 每個階段該跑什麼測試、怎麼設定品質關卡。

QA CI/CD GitHub Actions 測試策略 品質關卡 DevOps

最後更新:2026-03-07

本文以 GitHub Actions 為範例,其他 CI/CD 工具的設定方式可能不同。

1. 為什麼 CI/CD 需要 QA?

沒有自動化測試的 CI/CD,只是「快速把 bug 部署到 production」。品質關卡是 CI/CD 的靈魂。

2. Stage 1:Commit 階段(每次 push 觸發)

執行時間目標:< 5 分鐘

  • 靜態分析

    ESLint、Pylint、SonarQube

  • 單元測試

    快速、獨立、無外部依賴

  • 程式碼覆蓋率

    設定最低門檻(例如 80%)

3. Stage 2:整合測試階段

執行時間目標:< 15 分鐘

  • API 測試

    驗證服務間的互動

  • 資料庫測試

    Migration、資料完整性

  • 第三方服務 Mock

    不依賴外部服務

4. Stage 3:E2E 測試階段

執行時間目標:< 30 分鐘

  • 核心流程測試

    登入、購買、支付等關鍵路徑

  • 跨瀏覽器測試

    Chrome、Firefox、Safari

  • 視覺回歸測試

    Percy、Chromatic

5. Stage 4:部署前關卡

最後一道品質防線:

  • 效能測試

    確保沒有效能退化

  • 安全掃描

    OWASP ZAP、Snyk

  • 人工審核

    需要時的手動 approval

6. 品質關卡(Quality Gate)設定

什麼情況下應該擋住部署:單元測試失敗(零容忍)、覆蓋率低於門檻、高嚴重度的安全漏洞、效能指標退化超過 10%、核心 E2E 測試失敗。

7. 常見的 CI/CD 測試陷阱

避免這些常見問題:

  • 測試太慢

    把慢的測試移到非阻塞的 nightly build

  • Flaky Test

    不穩定的測試要馬上修或隔離,否則團隊會習慣忽略紅燈

  • 環境不一致

    用 Docker 確保 CI 環境和 production 一致

  • 只測快樂路徑

    負面測試和邊界情況一樣重要

ℹ️

一般聲明

本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。

意見反饋