Skip to content
cccskills
FreePublished on GitHub

regression-testing

修改/重构/Bug 修复后避免老问题复发时使用。适用于版本回归、修复后回归、重构验证。融合 Impact Analysis、Test Suite Pruning、Smoke/Sanity/Full 三层套件。

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md6.9 KB
  • templates/regression-suite-template.md2.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

回归测试(Regression Testing)

参考来源:ISTQB Foundation、Google《Software Engineering at Google》Test Selection、Microsoft Test Impact Analysis。

适用场景

  • 版本发布前回归
  • Bug 修复后验证不引入新问题
  • 重构 / 架构调整后行为不变验证
  • 依赖升级(库 / 框架 / 数据库版本)
  • 配置变更(环境 / 网关 / 缓存)

核心原则

1. 不重复发生的 Bug 才是好回归
   每个修复的 Bug 必须有回归用例

2. 回归不是全跑
   要做影响分析,按变更范围选择套件

3. 三层套件结构
   Smoke / Sanity / Full(详见下文)

4. 套件要剪枝
   失败率 < 5% 才稳定
   半年没失败的可能要删(或归档)

5. 自动化是回归的归宿
   手工回归不可持续

三层套件结构

┌─────────────────────────────────────┐
│ Smoke(5 分钟)                      │
│ - CI 每次必跑                        │
│ - 核心路径"能用"验证                 │
│ - 失败 = 阻塞合并                    │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ Sanity(30 分钟)                    │
│ - 发布前 / 每日定时跑                 │
│ - 主要功能正确性验证                  │
│ - 失败 = 阻塞发布                    │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ Full(1~3 小时)                     │
│ - 重大版本 / 重构后跑                 │
│ - 全量回归                           │
│ - 失败 = 评估影响后决策              │
└─────────────────────────────────────┘

影响分析(Impact Analysis)

1. 变更内容是什么?
   - 新增功能
   - 修改逻辑
   - 修复 Bug
   - 重构(行为应不变)
   - 依赖升级

2. 变更影响哪些代码?
   - 直接修改的模块
   - 调用方(谁用了它)
   - 被调用方(它用了谁)
   - 共享代码(utils、middleware)

3. 变更影响哪些功能?
   - 直接相关的用户流程
   - 间接相关(共享数据 / 状态 / 配置)

4. 选择回归套件
   - Smoke:必跑
   - Sanity:相关模块
   - Full:跨模块大改 / 重构

影响层级表

变更类型推荐回归
Bug 修复(单点)Smoke + 该 Bug 历史用例
功能修改(单模块)Smoke + Sanity(该模块)
跨模块功能Smoke + Sanity(涉及模块)
共享代码变更(utils)Smoke + Sanity(所有模块)
重构(行为不变)Full
数据库迁移Full + 数据完整性专项
依赖升级(major)Full
配置变更受影响场景 + Smoke

Bug → 回归用例的转化

Bug 修复后必做:

1. 写一条复现用例(最小复现路径)
2. 写一条边界用例(防类似变体)
3. 加入 Sanity 套件
4. 标注:源自 Bug-XXX
5. 6 个月内不删除

示例:

Bug-789:退款金额可输入负数

→ 回归用例 1:输入 -100,预期返回 INVALID_AMOUNT,金额无变化
→ 回归用例 2:输入 0,预期返回 INVALID_AMOUNT
→ 回归用例 3:输入超过订单金额的正数,预期返回 EXCEED_LIMIT
→ 回归用例 4:边界:等于订单金额(应该成功)

套件维护(剪枝)

时机动作
失败率 > 5%修复或隔离 Flaky 用例
6 个月未失败审视,可能要删
模块下线删除相关用例
业务变更同步更新
用例执行 > 5 分钟拆分或优化

工作流程

1. 收集变更说明
   - 修改了什么 / 为什么 / 影响范围
   ↓
2. 影响分析
   - 用变更范围决定回归层级
   ↓
3. 选择套件
   - Smoke / Sanity / Full
   ↓
4. 添加新用例(如有 Bug 修复)
   - 历史 Bug 转回归用例
   ↓
5. 执行(优先自动化)
   - 失败 → bug-reporting
   ↓
6. 失败分析
   - 真 Bug:开发修
   - Flaky:隔离 / 修复
   - 测试代码问题:修测试
   ↓
7. 报告
   - 通过率 / 失败用例 / 是否阻塞
   ↓
8. 套件维护
   - 加新用例 / 删旧用例 / 修 Flaky

自动化策略

高优先(必自动化):
  - Smoke 套件 100%
  - Sanity 套件 80%+
  - 历史 Bug 回归用例

中优先(可自动化):
  - Full 套件中稳定部分
  - API 契约测试

低优先(保留手工):
  - UI 视觉回归
  - 兼容性(多浏览器 / 设备)
  - 探索式

Flaky 用例处理

症状:用例时通过时失败,无规律

排查顺序:
  1. 时序:异步等待不够
  2. 数据:上一个用例污染
  3. 状态:缓存 / 会话残留
  4. 环境:网络 / 第三方抖动
  5. 并发:多线程 / 多用户冲突
  6. 时间:依赖具体日期 / 时区

处理:
  - 立即隔离(标 @flaky 跳过 CI)
  - 1 周内修复或删除
  - 不要"多重试几次让它过"

质量自检

□ 三层套件清晰(Smoke/Sanity/Full)
□ Smoke < 5 min,Sanity < 30 min
□ 历史 Bug 100% 转回归用例
□ 失败率 < 5%
□ Flaky 用例已隔离或修复
□ 影响分析驱动套件选择
□ 重构后跑 Full
□ 6 个月未失败的用例已审视
□ 自动化优先级合理

常见坑

  1. Bug 修了不加回归用例——同 Bug 反复出现
  2. 回归不分层——每次都跑 3 小时,CI 卡死
  3. 不做影响分析——全跑或随机选
  4. Flaky 用例靠重试——掩盖真问题
  5. 半年没维护——套件臃肿,新用例淹没
  6. 手工回归依赖人——不可持续,遗漏率高
  7. 重构不跑 Full——以为"行为不变",实际改坏
  8. 回归套件失败率 >> 真 Bug 率——用例本身的问题
  9. 删用例不评审——重要用例被误删
  10. Smoke 跑得太重——CI 体验差,不愿跑

配套模板

  • templates/regression-suite-template.md — 三层套件 + 影响分析 + 历史 Bug 跟踪 + 套件健康自检

与其他 skill 的协作

上游:
  test-case-design → 提供用例
  bug-reporting → 历史 Bug
  risk-based-testing → 高风险点入回归

下游:
  自动化测试工作流 → 实现自动化套件
  quality-gate → 回归通过率作为门禁
  test-report → 回归结果纳入报告

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

A/B 测试设计与分析时使用。适用于产品实验、功能验证、转化率优化。融合假设驱动 + 样本量计算 + 置信度判断。

The English summary is being prepared. Showing the original description.

zhaoxuya520/AI-Fullstack-Delivery-Workflow54Updated May 19, 2026

上线前业务方/产品方验收时使用。适用于功能交付确认、UAT、发布会签。融合 BDD Given-When-Then、Specification by Example、ATDD。

The English summary is being prepared. Showing the original description.

zhaoxuya520/AI-Fullstack-Delivery-Workflow54Updated May 19, 2026

设计无障碍可访问的界面时使用。适用于满足 WCAG 标准、键盘导航、屏幕阅读器支持。优先使用 WCAG 2.2 AA 级标准 + 键盘 + 焦点 + 对比度 + ARIA。

The English summary is being prepared. Showing the original description.

zhaoxuya520/AI-Fullstack-Delivery-Workflow54Updated May 19, 2026

实现可访问性(无障碍)时使用。覆盖 WCAG 2.2 AA / ARIA / 键盘导航 / 屏幕阅读器 / 颜色对比 / 焦点管理。融合 React Aria / Radix UI / Headless UI 实践 + axe-core 自动化测试。

The English summary is being prepared. Showing the original description.

zhaoxuya520/AI-Fullstack-Delivery-Workflow54Updated May 19, 2026

AI 模型部署时使用。适用于推理服务 / GPU / TensorRT / 监控 / 扩缩容。

The English summary is being prepared. Showing the original description.

zhaoxuya520/AI-Fullstack-Delivery-Workflow54Updated May 19, 2026

数据分析报告输出时使用。适用于业务分析报告、周报、专项分析、决策支持。融合洞察 + 建议 + 行动项。

The English summary is being prepared. Showing the original description.

zhaoxuya520/AI-Fullstack-Delivery-Workflow54Updated May 19, 2026

See all skills by zhaoxuya520

Report a problem with this skill