SuperAPI AI 工具集

regression-testing

测试与质量

查看项目

更新于 10-15 15:46

技能介绍

用途与目标

回归测试(Regression Testing)用于在代码变更后验证修改没有破坏既有功能。它强调策略化而非全量执行:先分析改动了什么,再据此选择需要运行的测试,并按优先级执行与优化,最后持续监控测试套件的健康度。

资料给出的默认工作流程为:

  1. ANALYZE 分析变更(git diff、影响分析)
  2. SELECT 基于变更与风险选择测试(而非全部)
  3. RUN 按优先级执行(smoke → 选择性 → 全量)
  4. OPTIMIZE 优化执行(并行、分片)
  5. 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% 的缺陷检出率,并可从生产缺陷自动生成回归测试。

限制

以上内容均来自资料本身。资料未提供具体的许可方式、收费模式、支持平台、安装步骤或独立命令行工具说明,相关内容暂未提供。