本文へ移動
cccskills
無料GitHub で公開

regression-testing

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

インストール方法を見る

含まれるファイル(2)

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

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

回归测试(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 → 回归结果纳入报告

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

zhaoxuya520 のスキルをすべて見る

このスキルの問題を報告する