九号工具站
返回列表

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 一致

  • 只测快乐路径

    负面测试和边界情况一样重要

ℹ️

一般声明

本站提供之资讯仅供参考,不保证其完整性与正确性。使用者应自行判断资讯之适用性。

意见反馈