「DeployLite」第八章:验收标准与测试计划(Acceptance Criteria & QA Plan)

第 8 章:DeployLite 验收标准与测试计划,介绍了 DeployLite 平台的验收标准与测试计划,包括验收目标与范围、功能验收标准、性能验收标准、安全验收标准等。

第八章:验收标准与测试计划(Acceptance Criteria & QA Plan)

8.1 验收目标与范围(Scope & Objectives)

验收目标

  1. 确保 DeployLite 各模块(Control Plane、Runner、Pipeline、Artifact、Policy、UI)功能完整可用;
  2. 所有核心路径通过功能、性能、安全测试;
  3. 可实现“自动构建→打包→部署→回滚”全链路稳定运行;
  4. 建立标准化 QA 验收模板,供版本迭代复用;
  5. 确保部署版本达到 生产级可上线标准(Production-ready)

验收范围

模块验收类型覆盖层级
API Server功能 / 性能 / 安全单元 + 集成
Pipeline Engine功能 / 稳定性集成 + E2E
Runner Agent功能 / 并发性能集成 + 压测
Scheduler性能 / 容错集成
Artifact Service功能 / 安全集成
Policy Engine功能 / 策略正确性单元 + 集成
UI 控制台功能 / 交互E2E 自动化
Notification 系统功能 / 通信正确性集成
Security & Audit合规 / 防护渗透测试
Monitoring & Metrics功能 / 可靠性集成
Database & Storage性能 / 数据一致性集成 + 压测

8.2 功能验收标准(Functional Acceptance Criteria)

下表定义主要功能模块的 通过标准(Pass Criteria)拒收条件(Fail Criteria)

8.2.1 仓库接入(Repo Integration)

验收项通过标准拒收条件
OAuth 连接用户能通过 OAuth2 成功授权 GitHub/GitLab授权后仓库列表为空
仓库同步仓库信息同步至系统分支或 Tag 缺失
Webhook 触发Push / Tag 事件触发 PipelinePush 后无触发记录
私有仓库可成功访问代码Token 失效或无权限

8.2.2 Pipeline 构建与执行

验收项通过标准拒收条件
YAML 解析无错误提示,生成 Pipeline 对象报错或字段丢失
构建执行任务成功执行完毕构建中断 / Runner 无响应
并发执行50 并发任务同时运行成功率 ≥ 98%死锁 / 队列阻塞
缓存复用二次构建时间减少 ≥ 40%无缓存命中
日志回传实时日志完整展示日志缺失或乱码

8.2.3 部署与回滚

验收项通过标准拒收条件
多环境部署dev/staging/prod 均成功环境切换异常
健康检查5s 内返回 200 状态探针超时或失败
自动回滚部署失败后回滚成功率 ≥ 100%回滚超时
蓝绿/金丝雀策略正确放量与切换流量不一致
回滚一致性Artifact Hash 一致回滚后版本错乱

8.2.4 Artifact 制品管理

验收项通过标准拒收条件
上传制品上传成功并记录元数据上传失败或 hash 不匹配
下载制品下载速度 ≥ 40MB/s文件损坏或断链
清理策略过期制品被正确清理未清理或误删
SBOM 报告自动生成且可查看文件缺失或格式错误

8.2.5 Runner 管理

验收项通过标准拒收条件
注册流程新 Runner 可注册成功Token 校验失败
心跳机制10s 内周期心跳正常超时未心跳
任务接收能正常领取任务调度分配失败
并发执行多任务独立执行CPU/Mem 冲突

8.2.6 策略与审批流

验收项通过标准拒收条件
策略加载OPA 可热更新策略文件未加载
拒绝策略违规操作被阻止错误放行
审批流程Maintainer 审批后自动继续部署审批未触发或状态错误

8.2.7 安全与审计

验收项通过标准拒收条件
Secret 加密所有密钥存储加密明文存储
操作审计所有操作有 trace_id缺少记录
签名验证镜像签名通过校验验签失败或跳过

8.2.8 UI 控制台

验收项通过标准拒收条件
页面加载首屏加载 < 2s> 3s
响应交互操作延迟 < 300ms无响应
状态刷新自动刷新无闪烁状态不同步
移动端兼容768px 下布局正常元素错位

8.3 性能测试计划(Performance Testing Plan)

测试目标场景工具指标
API 性能1000 并发 GET /projectsk6 / wrkQPS ≥ 2000
调度性能1000 Job 分配延迟custom loadgenP95 < 500ms
构建性能50 Runner 并发deploylite-bench成功率 ≥ 98%
制品存储上传下载并发s3-bench上传 ≥ 50MB/s
数据库5000 TPS 插入pgbenchCPU < 80%
日志流实时传输 10GB/小时vegeta + WebSocket延迟 < 2s
前端Lighthouse 测速Chrome DevTools分数 ≥ 90

性能压测阶段性目标

阶段并发任务平均延迟成功率
阶段 1(初测)100200ms95%
阶段 2(预发布)500250ms97%
阶段 3(生产模拟)1000300ms≥ 99%

压测环境配置

  • 控制面节点:4C8G × 2

  • Runner 节点:8C16G × 10

  • Redis + PostgreSQL 独立部署

  • 数据规模:

    • Pipelines:1 万
    • Artifacts:5 万
    • Projects:1000+

8.4 安全测试计划(Security Testing Plan)

测试类型工具 / 方法验收目标
SQL 注入ZAP / sqlmap无可利用注入点
XSSOWASP ZAP输入转义正确
CSRFBurp Suite所有敏感操作带 Token
SSRF自定义扫描拒绝外部请求
文件上传MIME 校验 + 白名单拒绝非安全文件
RBAC 绕过模拟低权限用户无水平越权
Secret 泄漏静态扫描(gitleaks)无明文密钥
依赖漏洞Trivy无高危 CVE
签名伪造Cosign Verify所有镜像签名可验证

8.5 自动化测试体系(Automation Framework)

层级结构

tests/
 ├── unit/
 │    ├── pipeline_test.go
 │    ├── runner_test.go
 │    └── scheduler_test.go
 ├── integration/
 │    ├── api_integration_test.go
 │    ├── artifact_integration_test.go
 ├── e2e/
 │    ├── deploy_e2e_test.go
 │    ├── rollback_e2e_test.go
 ├── mock/
 │    └── mock_runner.go
 └── load/
      └── pipeline_load_test.go

测试覆盖策略

层级工具目标覆盖率
单元测试go test≥ 85%
集成测试docker-compose≥ 80%
E2E 测试Playwright≥ 70%
Mock 测试Mockery主要外部依赖
性能测试k6N/A
安全测试ZAP / Trivy全面覆盖核心接口

自动执行流程(CI Pipeline)

flowchart LR
A[Commit / PR] --> B[Unit Tests]
B --> C[Integration Tests]
C --> D[E2E Tests]
D --> E[Static Analysis (golangci-lint)]
E --> F[Security Scan (Trivy)]
F --> G[Generate Coverage Report]

报告与结果

  • 输出 HTML 报告;
  • 覆盖率文件:coverage.out
  • 性能结果:bench.json
  • 安全扫描报告:security_report.json

8.6 回归测试与版本发布验收(Regression & Release QA)

回归范围

  • 所有核心流程(构建、打包、部署、回滚);
  • 安全与权限;
  • 策略引擎与审批;
  • 前端交互;
  • 通知与审计。

回归执行策略

  1. 每版本发布前自动执行;
  2. 每周运行全量自动化;
  3. 高风险版本(变更 > 500 行代码)需人工验证;
  4. 新功能至少 2 名 QA 复核。

发布前验收流程

sequenceDiagram
Dev->>QA: 提交 Release Candidate
QA->>Staging: 部署测试版本
QA->>Tests: 自动化测试执行
Tests-->>QA: 报告结果
QA->>PM: 验收报告
PM->>Prod: 批准上线

验收门槛(Release Gate)

指标门槛
功能通过率≥ 98%
自动化测试通过率≥ 95%
性能指标达标
无高危漏洞
安全扫描通过
审批通过

8.7 混沌与容灾测试(Chaos & Resilience Tests)

测试场景期望结果
Runner 突然宕机任务迁移到其他 Runner
Redis 队列短时不可用调度延迟 < 2s
数据库断连 10s自动重连,任务不中断
存储 S3 拒绝访问自动切换备用存储
API Server 重启当前任务不受影响
网络分区Runner 缓存队列,重连后同步
策略引擎加载失败使用上一次缓存策略

测试工具

  • Chaos Mesh / LitmusChaos:K8s 注入器;
  • Kill-Signal 注入脚本:模拟进程终止;
  • Network Chaos:延迟、丢包、断连。

8.8 QA 报告模板(QA Report Template)

# DeployLite QA 报告
版本号:v1.2.0
测试负责人:QA 张明
测试周期:2025-10-10 至 2025-10-20

## 一、测试范围
- 功能模块:Pipeline, Runner, Artifact
- 非功能模块:性能、日志、监控

## 二、测试结果
| 模块 | 通过率 | 缺陷数 | 状态 |
|------|--------|--------|------|
| Pipeline | 100% | 0 | ✅ |
| Runner | 98% | 2 | ⚠️ |
| Artifact | 100% | 0 | ✅ |

## 三、性能指标
| 指标 | 实测值 | 目标值 | 结果 |
|------|----------|----------|----------|
| API 延迟 | 180ms | ≤200ms | ✅ |
| 构建成功率 | 99.2% | ≥98% | ✅ |

## 四、安全扫描
无高危漏洞(Trivy 报告:0)

## 五、结论
通过 ✅(允许上线)

第八章总结
本章定义了 DeployLite 的“可交付标准”。
关键目标:

“功能完整、性能达标、安全合规、可自动化回归”。

下一章进入终局部分:

第九章:版本规划与迭代路线(Version Roadmap & Iteration Plan)
将提供未来三阶段产品演进计划、Gantt 路线图、商业化路径与社区建设路线。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页