SuperAPI AI 工具集

test-design-reviewer

测试与质量

查看项目

更新于 10-16 12:50

技能介绍

用途

Test Design Reviewer 用于评审测试质量。它把测试当作可执行的规格说明和安全证据来看待:先阅读测试,让测试自身的公开叙事能够独立成立,然后再检查生产边界和仓库约束,以便准确判断测试所声称的内容。

主要能力

该技能围绕 Dave Farley 提出的优秀测试八项属性展开评审:

属性 检查内容 强证据
Understandable(可理解) 命名、arrange/act/assert 流程、领域词汇 无需重建内部实现即可看清行为与失败原因
Maintainable(可维护) 耦合、重复、fixture、公共边界 保持行为的重构不需要改写无关测试
Repeatable(可重复) 时间、随机性、并发、网络、共享资源 重复与并行运行具有受控输入和清理
Atomic(原子) 共享状态、顺序、清理、失败隔离 测试可单独运行,其失败能定位到一个行为
Necessary(必要) 所保护的不同风险或契约 删除该测试会移除有意义的证据
Granular(粒度) 行为范围与诊断质量 断言描述一个连贯结果;相关断言可以放在一起
Fast(快速) 在合适层次上测量的反馈时间 测试套件对其预期的反馈循环足够快
First(测试先行) 测试先行开发的证据 有捕获的 RED 运行、开发轨迹或历史,证明在生产行为改变之前测试因预期原因失败

使用方式

评审流程如下:

  1. 确定所声称的行为、测试层次、仓库策略和相关风险。
  2. 在不看实现的情况下阅读测试,记录失败意味着什么。
  3. 检查公共生产边界、fixture 和配置的测试运行器。
  4. 仅在获得授权且有用时运行聚焦测试或计时;准确报告实际运行了什么。
  5. 对每项属性给出带证据的评级,证据缺失时包括 Not assessed。
  6. 只按严重程度和影响对可操作的发现排序,并包含最小的可信修复方案。
  7. 将测试缺陷与生产设计接缝、本地策略偏好区分开。

评级使用 Strong、Mixed、Weak 或 Not assessed。要求使用精确的文件位置和观察到的证据;不计算聚合分数,因为风险不均和仓库上下文不同会使加权数字显得虚假精确。当只有最终代码树可用时,将 First 标记为 Not assessed,因为静态测试形态无法证明时间顺序。除非有执行证据或可信计时,否则将 Fast 标记为 Not assessed。优先选择能增强可观察行为的最小改动;不要求每个测试一个断言、每个文件一个测试,也不要求在更高层契约才是诚实证据边界的地方使用单元测试。

输出格式为 Markdown,包含属性评级表、Findings(按严重程度排序,含影响与最小修复)以及 Validation gaps(未评估的内容及所需证据)。没有发现也是有效结果,不应为了填充该部分而编造工作。

适用场景

适用于评估一个测试文件或测试套件在可理解性、可维护性、可重复性、原子性、必要性、粒度、速度以及测试先行开发证据方面的表现。

限制

该技能不计算聚合分数。当只有最终代码树时,无法评估 First 属性;没有执行证据或可信计时,无法评估 Fast 属性。八项属性来源于 Dave Farley 的 Properties of Good Tests,本版本是基于证据的全新实现,而非对外部技能的文本改编。