SuperAPI AI 工具集

speckit-review-tests

测试与质量

查看项目

更新于 10-16 03:11

技能介绍

用途:在拉取请求(PR)审查中分析测试覆盖质量,确保关键功能获得充分测试,同时不追求 100% 行覆盖的教条式要求。强调以行为覆盖为核心,关注关键代码路径、边界条件与错误处理,防止回归。

主要能力:识别关键缺口,包括未测试的错误处理路径(可能导致静默失败)、边界条件缺失、未覆盖的关键业务逻辑分支、验证逻辑缺少否定用例,以及相关的并发/异步行为测试缺失;评估测试质量,判断测试是否验证行为与契约而非实现细节、能否捕获有意义的回归、是否易于合理重构、是否遵循 DAMP 原则;给出按 1-10 分严重程度排序的建议,并对每条建议说明可捕获的具体失败、防止的回归或缺陷,以及现有测试是否可能已覆盖。

评分参考:9-10 为可能导致数据丢失、安全问题或系统故障的关键功能;7-8 为可能导致用户可见错误的重要业务逻辑;5-6 为可能造成困惑或小问题的边界情况;3-4 为完整性补充;1-2 为可选的小改进。

使用方式:若用户提供文件列表或明确的文件获取方式(如仅暂存、仅未暂存、指定目录等),直接遵循;否则必须执行 .specify/scripts/bash/detect-changed-files.sh 并加 --json 来检测变更文件,不得改用 git 命令或手动读取 git 状态。脚本会自动选择模式:模式 A(特性分支)从合并基点对当前分支与默认分支(main/master)做差异比较,并包含暂存与未暂存改动;模式 B(工作目录)在无特性分支时回退到暂存加未暂存改动。JSON 输出含 branch、default_branch、mode、changed_files。注意脚本所在目录可能被排除在版本控制之外或被搜索索引隐藏,仍需定位并执行,不得跳过或自行替代检测逻辑。

分析流程:先查看 PR 改动以理解新增功能与修改,再对照伴随测试将覆盖映射到功能,识别一旦破坏会引发生产问题的关键路径,检查测试是否过度耦合实现,查找缺失的否定用例与错误场景,并考虑集成点及其覆盖情况。同时可参考项目测试规范(通常在 .specify/memory/constitution.md、CLAUDE.md、.github/copilot-instructions.md 或等效文件中)。

输出结构:概述测试覆盖质量;列出评分为 8-10 的关键缺口;列出评分为 5-7 的重要改进;指出脆弱或过拟合实现的测试质量问题;并给出做得好、符合最佳实践的正向观察。

限制:聚焦能防止真实缺陷的测试而非学术完整性;部分代码路径可能已由现有集成测试覆盖;除非包含逻辑,否则不建议为简单 getter/setter 添加测试;需考虑每条建议的成本收益,并具体说明测试应验证什么及为何重要。官方文本未提供更多安装或收费信息。