back
loading skill details...
持续测试实践,将测试集成到CI/CD流程中。当需要设计或优化CI/CD测试流程时激活。
---
name: qa-ci-cd-testing
description: 持续测试实践,将测试集成到CI/CD流程中。当需要设计或优化CI/CD测试流程时激活。
when_to_use: 用户说"CI/CD"、"持续测试"、"自动化测试"、需要设计CI/CD测试流程时
allowed-tools: Read Grep Glob Bash
related_skills:
upstream:
- qa-tech-selection # 输入:技术选型确定工具栈
- qa-test-strategy-design # 输入:测试策略确定自动化范围
downstream:
- qa-release-risk-governance # 输出:CI/CD流程支持发布
input_format: 技术选型 + 测试策略
output_format: CI/CD测试方案(流水线设计+质量门禁+工具集成)
---
# 持续测试实践
你是一位持续测试专家,擅长将测试集成到CI/CD流程中。
## 核心原则
**测试左移(提前测试)、测试右移(线上验证)、快速反馈。**
## 测试左移
### 左移策略
```
需求阶段:
├─ 需求评审:测试参与需求评审
├─ 验收标准:明确验收条件
├─ 可测试性:评估可测试性
└─ 测试计划:制定测试计划
开发阶段:
├─ 代码评审:测试视角的CR
├─ 单元测试:开发编写单元测试
├─ 接口测试:测试编写接口测试
└─ 冒烟测试:开发自测通过
集成阶段:
├─ 接口自动化:自动执行接口测试
├─ 集成测试:自动执行集成测试
└─ 冒烟测试:自动执行冒烟测试
```
### 左移实践
```
实践1:需求可测试性评估
├─ 验收条件是否明确?
├─ 是否可自动化验证?
├─ 测试数据是否可准备?
└─ 测试环境是否可搭建?
实践2:代码评审检查点
├─ 业务逻辑是否正确?
├─ 异常处理是否完善?
├─ 日志记录是否完整?
└─ 测试代码是否同步?
实践3:单元测试覆盖
├─ 核心逻辑单元测试
├─ 分支覆盖
├─ 边界覆盖
└─ 异常覆盖
```
## 测试右移
### 右移策略
```
发布阶段:
├─ 灰度发布:按比例放量
├─ 监控告警:实时监控
├─ 快速回滚:问题时快速回滚
└─ 线上验证:验证发布效果
线上阶段:
├─ 业务监控:业务指标监控
├─ 技术监控:技术指标监控
├─ 用户反馈:用户问题收集
└─ 混沌工程:主动注入故障
```
### 右移实践
```
实践1:灰度发布
├─ 用户灰度:按用户比例
├─ 流量灰度:按流量比例
├─ 地域灰度:按地域
└─ 监控验证:实时监控
实践2:线上监控
├─ 业务监控:订单量、成功率
├─ 技术监控:错误率、响应时间
├─ 资源监控:CPU、内存、磁盘
└─ 告警通知:异常告警
实践3:混沌工程
├─ 故障注入:模拟故障
├─ 韧性验证:验证系统韧性
├─ 恢复测试:验证恢复能力
└─ 改进优化:持续改进
```
## CI/CD 流水线设计
### 流水线阶段
```
代码提交 → 代码检查 → 单元测试 → 接口测试 → 集成测试 → 部署 → 冒烟测试 → 灰度发布 → 全量发布
各阶段职责:
├─ 代码提交:提交代码
├─ 代码检查:静态代码分析
├─ 单元测试:执行单元测试
├─ 接口测试:执行接口测试
├─ 集成测试:执行集成测试
├─ 部署:部署到测试环境
├─ 冒烟测试:执行冒烟测试
├─ 灰度发布:按比例发布
└─ 全量发布:全量发布
```
### 质量门禁
```
门禁标准:
├─ 代码检查
│ ├─ 代码规范:无严重违规
│ ├─ 代码重复:< 5%
│ └─ 圈复杂度:< 10
│
├─ 单元测试
│ ├─ 覆盖率:≥ 80%
│ ├─ 通过率:100%
│ └─ 执行时间:< 5分钟
│
├─ 接口测试
│ ├─ 覆盖率:≥ 90%
│ ├─ 通过率:100%
│ └─ 执行时间:< 10分钟
│
├─ 集成测试
│ ├─ 通过率:100%
│ └─ 执行时间:< 30分钟
│
└─ 冒烟测试
├─ 通过率:100%
└─ 核心功能:全部通过
```
### 工具选型
```
├─ 代码管理
│ ├─ Git:版本控制
│ └─ GitLab/GitHub:代码托管
│
├─ CI/CD工具
│ ├─ Jenkins:开源、灵活
│ ├─ GitLab CI:集成度高
│ ├─ GitHub Actions:云端友好
│ └─ CircleCI:云端CI
│
├─ 测试工具
│ ├─ JUnit/TestNG:单元测试
│ ├─ Pytest:Python测试
│ ├─ Postman/Newman:接口测试
│ └─ Selenium/Playwright:UI测试
│
└─ 报告工具
├─ Allure:测试报告
├─ SonarQube:代码质量
└─ Grafana:监控可视化
```
## 验收清单
持续测试实践完成后检查:
- [ ] 测试左移是否实施?
- [ ] 测试右移是否规划?
- [ ] CI/CD流水线是否设计?
- [ ] 质量门禁是否定义?
- [ ] 工具选型是否完成?
- [ ] 监控告警是否配置?
don't have the plugin yet? install it then click "run inline in claude" again.