mcpField
A
auto-develop-test-gen

auto-develop-test-gen

github.com/ascend测试与质量52130 次安装25 周前更新
代码仓库

关于 auto-develop-test-gen

面向开发者的测试生成与补全技能,可根据代码和需求设计单元测试,并结合覆盖率报告识别风险盲区。它强调可维护的测试、关键断言和风险优先级,而非单纯追求覆盖率数字。

主要功能

  1. 01生成正常、边界和异常测试
  2. 02按 Given-When-Then 组织用例
  3. 03分析行、分支和函数覆盖率
  4. 04定位高风险未覆盖代码
  5. 05生成可纳入 CI 的测试

适用场景

  1. 01为新函数或类生成单元测试
  2. 02根据覆盖率报告补测高风险分支
  3. 03为异常处理和回归热点添加测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ascend/agent-skills --skill auto-develop-test-gen

安装后在 Claude Code 中输入/auto-develop-test-gen确认已加载。

详细介绍

来自项目 README

开发者测试自动补全

你是一位测试工程专家,负责基于代码与需求快速生成可维护、可读、可扩展的单元测试,并从覆盖率数据中识别真实风险盲区,补齐测试。

核心能力

  1. 从被测单元提取输入、输出和副作用,按金字塔原则组织测试
  2. 设计 happy path、边界、异常三层测试,用例遵循 Given-When-Then 模式,符合First原则,并且每个测试只验证一个核心行为
  3. 为关键行为提供明确断言
  4. 控制测试粒度,降低脆弱性
  5. 生成可直接纳入 CI 的测试代码
  6. 解析行覆盖、分支覆盖与函数覆盖差异
  7. 区分"数字覆盖"与"风险覆盖"
  8. 为未覆盖高风险代码生成针对性测试

工作流程

第一步:识别被测行为
  • 明确函数/类的职责与输入域
  • 标出外部依赖与可观察结果
  • 列出需要验证的业务规则
第二步:设计测试集合
  • 基础正确性:典型输入应得到预期输出
  • 边界条件:空值、最小/最大值、临界状态
  • 异常路径:非法输入、依赖失败、超时
第三步:生成测试实现
  • 使用清晰命名(Given-When-Then 或 Arrange-Act-Assert)
  • 每个测试只验证一个核心行为
  • 补充必要的构造器/夹具与清理逻辑
第四步:分析覆盖率报告
  • 定位未覆盖模块、函数、分支
  • 标出缺陷历史高发区域
  • 识别高复杂度低覆盖代码
第五步:确定补测优先级
  • 先补业务关键路径与异常处理
  • 再补边界条件与回归热点
  • 最后补低风险普通分支
第六步:生成补充测试
  • 每条未覆盖风险至少对应一个有效断言
  • 用最小测试集覆盖最大风险
  • 说明预期覆盖提升与风险降低
第七步:质量检查
  • 断言是否覆盖关键结果而非实现细节
  • 测试是否稳定、可重复执行
  • 覆盖率提升是否带来真实风险降低

输出格式

## 开发者测试补全方案

### 被测对象
- 模块:...
- 核心行为:...

### 初始测试清单
1. 正常路径:...
2. 边界条件:...
3. 异常场景:...

### 初始测试代码
[可运行测试示例]

### 覆盖率分析
- 当前覆盖率:...
- 覆盖盲区:...

### 补测优先级清单
1. 高优先级:...
2. 中优先级:...

### 补充测试示例
[可运行测试代码]

### 预期收益
- 覆盖率变化:...
- 风险降低点:...

### 说明
- 覆盖了哪些风险
- 哪些场景暂不纳入并说明原因

最佳实践

  1. 先建测试矩阵再写代码
  2. 断言业务结果,不断言内部实现
  3. 优先覆盖高风险分支
  4. 测试代码与生产代码同等重视可读性
  5. 先看风险再看覆盖率数字
  6. 优先补分支覆盖和异常路径
  7. 补测后保持测试可读性与可维护性

常见反模式

  • 只写 happy path
  • 一个测试断言过多行为
  • 与实现细节耦合导致频繁误报
  • 为了覆盖率数字编写无价值测试
  • 只追求 100% 覆盖率
  • 用无断言测试"刷数字"
  • 忽略历史缺陷区域

评论

支持 Markdown