用途与目标
回归测试(Regression Testing)用于在代码变更后验证修改没有破坏既有功能。它强调策略化而非全量执行:先分析改动了什么,再据此选择需要运行的测试,并按优先级执行与优化,最后持续监控测试套件的健康度。
资料给出的默认工作流程为:
- ANALYZE 分析变更(git diff、影响分析)
- SELECT 基于变更与风险选择测试(而非全部)
- RUN 按优先级执行(smoke → 选择性 → 全量)
- OPTIMIZE 优化执行(并行、分片)
- MONITOR 监控套件健康度(不稳定度、执行时间)
何时使用
- 任何代码变更之后
- 发布之前
- 依赖更新之后
- 环境变更之后
回归策略的三个层次
- 每次提交(Per-commit):Smoke + 变更相关代码的测试(5-10 分钟)
- 每夜运行(Nightly):扩展回归(30-60 分钟)
- 发布前(Pre-release):全量回归(2-4 小时)
测试选择策略
资料列出了四种策略及其大致缩减比例:
| 策略 | 方式 | 缩减 |
|---|---|---|
| 基于变更(Change-based) | Git diff 分析 | 70-90% |
| 基于风险(Risk-based) | 按影响优先级 | 50-70% |
| 基于历史(Historical) | 频繁失败的测试 | 40-60% |
| 时间预算(Time-budget) | 固定时间窗口 | 不定 |
基于变更的选择会遍历改动文件,加入其直接对应的测试文件,并通过覆盖率映射补充依赖测试。例如 payment.ts 变更后会运行 payment.test.ts、checkout.integration.test.ts、e2e/purchase.test.ts。
CI/CD 集成
资料提供了一个 GitHub Actions 示例(.github/workflows/regression.yml),包含两个任务:
- quick-regression:使用 dorny/paths-filter@v2 按路径过滤变更(payment、auth),运行受影响的测试与 smoke 测试,超时 15 分钟
- nightly-regression:在 schedule 事件下运行全量测试并带覆盖率,超时 120 分钟
涉及命令包括:npm run test:affected、npm run test:smoke、npm test -- --coverage。
智能体驱动的回归
资料演示了通过 Task 调用智能体的方式:
- 调用 "qe-regression-risk-analyzer" 进行回归分析,传入 PR 编号、策略(change-based-with-risk)与时间预算(15min),返回 mustRun、shouldRun、canSkip、estimatedTime、riskCoverage 等结果
- 调用 "qe-test-generator" 从生产缺陷生成回归测试,传入缺陷信息与 preventRecurrence 标志
智能体协调
内存命名空间结构为:
aqe/regression-testing/
├── test-selection/* - Impact analysis results
├── suite-health/* - Flakiness, timing trends
├── coverage-maps/* - Test-to-code mapping
└── bug-regressions/* - Tests from production bugs
Fleet 协调示例中组合了四个智能体:qe-regression-risk-analyzer(分析变更、选择测试)、qe-test-executor(执行所选测试)、qe-coverage-analyzer(分析覆盖率缺口)、qe-quality-gate(go/no-go 决策),拓扑为 sequential。
相关技能
- risk-based-testing:基于风险的优先级排序
- test-automation-strategy:自动化金字塔
- continuous-testing-shift-left:CI/CD 集成
技能组合
- 测试失败 → 使用 /test-failure-investigator 诊断根因
- 提交缺陷 → 使用 /bug-reporting-excellence 规范报告
- 测试选择 → 使用 /risk-based-testing 做基于风险的优先级排序
注意事项(Gotchas)
- 智能体在被告知选择测试时仍可能默认"全跑",需用 --affected 或文件列表显式约束
- 基于变更的选择会遗漏传递依赖——一个 model 的改动可能破坏三跳之外的 controller 测试
- 回归套件中的不稳定测试比缺失测试更快侵蚀信任——应立即隔离,而非跳过
- 智能体可能在测试根本没运行时报告"0 regressions"——应核对输出中的测试数量,而不仅是通过/失败
- 在容器中运行全量回归常出现内存不足——CI 环境应使用 --workers=2 与 --shard
要点
使用智能体时,qe-regression-risk-analyzer 提供智能测试选择,据称可在 10% 的执行时间内达到 90% 的缺陷检出率,并可从生产缺陷自动生成回归测试。
限制
以上内容均来自资料本身。资料未提供具体的许可方式、收费模式、支持平台、安装步骤或独立命令行工具说明,相关内容暂未提供。