mcpField
A
ai-generated-ut-code-review

ai-generated-ut-code-review

github.com/openharmonyinsight测试与质量3596 次安装11 周前更新
代码仓库

关于 ai-generated-ut-code-review

用于评估 AI 生成单元测试的审查技能,检查覆盖率、断言、边界情况、确定性与可维护性,并给出评分、风险等级和必改清单。

主要功能

  1. 01五个维度的 0–10 评分
  2. 02要求覆盖率达到 80%
  3. 03检查断言与边界情况
  4. 04评估确定性和隔离性
  5. 05提供风险等级及证据清单

适用场景

  1. 01审查 AI 生成的单元测试
  2. 02发现薄弱或缺失的断言
  3. 03合并前检查覆盖率
  4. 04按风险确定测试修复优先级

安装

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

$npx skills add https://github.com/openharmonyinsight/openharmony-skills --skill ai-generated-ut-code-review

安装后在 Claude Code 中输入/ai-generated-ut-code-review确认已加载。

详细介绍

AI UT 代码审查

概述

审查 AI 生成的单元测试是否有效,包括覆盖率、断言、负面用例、确定性和可维护性。输出 0-10 分、风险等级和必须修复清单。总体行覆盖率必须 >= 80%;否则风险至少为 High。

适用场景

  • 审查或评估 AI 生成的 UT/测试代码质量
  • 需要评分、风险等级或必须修复清单
  • 有关覆盖率或断言有效性的问题

工作流

  1. 确认测试针对预期的业务代码和关键路径。
  2. 检查总体行覆盖率(要求 >= 80%)。
  3. 检查断言在行为层面是否有效;标出缺失或无效的断言。
  4. 验证负面/边界用例和确定性(不依赖环境/时间)。
  5. 根据评分标准打分、评定风险,并列出有证据支持的必须修复项。

评分(0-10)

每个维度 0-2 分。总分 = 各项得分之和。

维度012
覆盖率< 80%80% 以上,但覆盖较浅80% 以上且覆盖有意义
断言质量没有断言/断言无效有些断言较弱断言紧扣行为
负面与边界用例缺失部分覆盖覆盖全面
数据与隔离性不稳定/依赖环境表现不一确定且隔离
可维护性难以阅读/修改质量不一结构清晰、命名明确

风险等级

  • Blocker:覆盖率 < 80% 且关键路径未经测试,或测试没有有意义的断言
  • High:覆盖率 < 80% 或断言大多无效
  • Medium:覆盖率达标,但边界用例较弱或设计脆弱
  • Low:只有小幅改进空间

必须修复清单

  • 总体行覆盖率 >= 80%
  • 每项测试至少有一个与行为相关的断言
  • 核心逻辑包含负面/异常用例
  • 测试具有确定性且可重复

AI 生成测试的常见问题(明确检查)

  • 没有断言,或断言与行为无关(例如只断言非空)
  • 过度使用模拟,掩盖真实行为
  • 只覆盖成功路径
  • 测试依赖时间/网络/环境
  • 缺少对副作用的验证

输出格式(必需,半固定)

  • Score:x/10 — Coverage x, Assertion Quality x, Negative & Edge x, Data & Isolation x, Maintainability x
  • Risk:Low/Medium/High/Blocker — 简述原因(1 行)
  • Must-fix:
    • [动作 + 证据]
    • [动作 + 证据]
  • Key Evidence:
    • 引用具体测试用例名或覆盖率报告摘要(1-2 条)
  • Notes:
    • 最小修复建议或替代方案(1-2 行)

规则:

  • 覆盖率 < 80% 时,风险至少为 High,且必须列入 Must-fix
  • 没有断言/断言无效时,直接提升风险级别,且必须列入 Must-fix
  • 至少提供 2 条证据;证据不足时需说明并降低评分

常见错误

  • 只报告覆盖率,不评价断言的有效性
  • 把日志输出当作断言
  • 忽略失败路径/异常路径

示例(简洁)

Score: 5/10(Coverage 1, Assertion 0, Negative 1, Data 2, Maintainability 1) Risk: High Must-fix:

  • parseConfig() 测试没有行为断言(只有日志)
  • 没有针对格式错误输入的负面用例 Key Evidence:
  • parseConfig() 测试只断言不会崩溃
  • 覆盖率报告显示行覆盖率为 62% Notes:
  • 添加针对输出和副作用的断言;添加无效输入测试。

评论

支持 Markdown