SuperAPI AI 工具集

test-validity-review

测试与质量

查看项目

更新于 10-15 08:33

技能介绍

用途

Test Validity Review 用于审查现有测试是否提供了真实的行为置信度。它不满足于“测试是否通过”,而是追问:当出现正确的缺陷时,测试是否会以正确的原因失败?该技能将大型绿色测试套件视为未经挑战的不可信对象,直到被严格审查。

主要能力

  • 发现仓库测试面:读取 package.json、测试配置、setup 文件、CI 配置及相关源码;可运行 node scripts/discover-test-surface.mjs [repo-root] 辅助发现;不虚构脚本,优先使用仓库已有命令。
  • 映射置信度:识别单元、集成、契约、组件、E2E、类型级覆盖;标记仅由 mock 覆盖或完全缺失的关键行为。
  • 审查目标测试:优先公共 API 或用户可见行为;在脑中变异源码(错误值、移除验证、反转分支、缺失 await、吞掉错误、错误请求),判断测试是否在真实缺陷后失败、在无害重构后存活。
  • 检查风险区域:mock 是边界辅助还是置信度破坏者;异步是否被 await、确定性、竞态安全;fixture 是否真实、局部足够、变异安全;UI 是否使用以用户为中心的查询和操作;TypeScript 中的类型断言、any、谓词、验证器、重载、类型级否定;失败是否可从测试名和输出中采取行动。
  • 识别空洞/永远绿色测试:同义反复断言(expect(true).toBe(true)、对始终定义的值使用 expect(x).toBeDefined())、仅类型检查(expect(typeof x).toBe("object"))、仅验证 mock 接线的过度 mock 测试、无值验证的存在性检查、缺少 expect.assertions() 而静默跳过的异步测试、隐藏死测试的禁用 linter 规则、无论生产代码如何变异都通过的测试。
  • 在允许时运行可用检查:类型检查、目标测试、完整套件、覆盖率;存在 flake 风险时重复运行或随机顺序;有工具时对聚焦面进行变异测试。
  • 报告最高价值发现优先。

使用方式

该技能以工作流方式运作:先发现仓库测试面,再映射置信度,然后审查目标测试,检查风险区域,运行可用检查,最后按最高价值优先报告发现。每个问题需给出严重性(Blocker、High、Medium、Low)、位置(文件与测试名)、问题、逃逸的缺陷、修复建议。裁决尺度包括:Strong(有意义的置信度,仅需小清理)、Mostly good(方向合理,有明显缺口)、Risky(绿色套件隐藏有意义风险)、Weak/invalid(测试证明很少或证明错误的东西)。

核心规则:行为敏感、结构不敏感;mock 边界而非需要置信度的行为;使用能捕获真实缺陷的最廉价测试层级;优先少量高信号测试而非生成的噪音;将大型绿色套件视为不可信直到被挑战;对设计的批评严格,但不针对作者。

需要时加载更深层指导:阅读 references/REVIEW_CHECKLIST.md 获取详细启发式、红旗、组合权衡和变异提示;在提出重写或审查 UI、异步、验证器或类型级测试前阅读 references/EXAMPLES.md。

适用场景

适用于需要评估测试套件真实置信度的开发、测试与质量保障场景,尤其是当测试全部通过但团队对生产信心不足时。可用于审查单元、集成、契约、组件、E2E 及类型级测试。

限制

资料未提供该技能的具体安装方式、收费模式、支持平台或运行环境要求。部分检查(如变异测试)依赖现有工具,并非所有仓库都可用。