SuperAPI AI 工具集

test-value-evidence

测试与质量

查看项目

更新于 10-20 03:14

技能介绍

test-value-evidence 是一个用于评估测试价值的技能:通过测试能否检测到相关错误行为,判断其是否真正有效。它面向已识别的代码或测试变更、功能、PR 或提交,只评估变更的契约及其直接相关测试,不覆盖整个仓库。

用途与边界:发现并遵循仓库的说明、固定工具链、测试命令、断言约定和执行权限。该技能不授权在只读评审中编辑代码、执行不可信代码、派发工作流、发布内容或访问其他会话的检出。若无法识别变更,应报告缺失范围而非评估整个工作区;未变更的现有测试可以是充分的,仅源码 diff 不代表未经测试。通用盲区分析、逐测试质量评分和变异测试活动应使用其他对应技能,本技能不启动第二个变异引擎,也不要求每次变更做全量变异测试。

使用方式:先将契约绑定到被测修订。PR 记录合并基线与确切 head SHA;提交记录所选父提交,合并提交需明确父提交;未提交工作记录基线 SHA 加可复现的补丁标识(含相关未跟踪文件),而非虚构的已提交修订。证据在相关源码、测试、辅助代码、配置或包变更后失效,除非重新验证。

对每个行为变更建立映射:需求 → 输入/序列 → 预期公开结果 → 生产入口 → 命名测试/数据用例 → 区分性断言。预期结果应从需求或受支持的 API/协议语义独立推导,而非来自实现或测试当前值。同时检查构建/打包/配置行为、删除或重命名的代码、移除的测试以及发布消费方。仅在相关时纳入正例、负例、边界、兼容性、取消、清理和多模块用例。变更组件的 mock、自比较或用生产算法计算的期望值不构成独立预言机。

反事实选择:缺陷修复保留回归测试并恢复真实修复前缺陷,测试应因该缺陷失败、修复后通过;新功能通过禁用/移除或破坏行为(保持可构建的 API 形状和初始化)让断言检测到缺失或错误行为;增强或仅测试覆盖引入一个可信的错误公开结果,增强测试应检测到,未修改产品应通过;行为保持的重构比较前后保留契约,可选探测相关故障;仅文档或生成元数据需先确认是否改变可执行契约。修复类优先使用真实修复前实现配合同一回归测试、配置、依赖和输入;若新 API 导致无法编译,只在 head 版本恢复缺陷行为,称为定向反事实并记录确切补丁/哈希,绝不通过修改断言制造红色。功能类中缺少符号的编译错误不是行为证明,应选择可构建的 no-op、禁用注册、旧分支或错误输出。优先小而可信的故障:恢复旧边界、丢弃必需输出、跳过回调、忽略选项或返回错误值。等价变异不算缺口;崩溃、超时或异常只有作为契约信号且诊断归因于故障时才计入。

执行与报告:仅在授权时执行成对运行。实现通常需要执行,只读/建议性评审通常只需检查,评审请求本身不授权修改源码或构建测试,绝不用特权凭据运行不可信代码。在授权的实现/验证环境中使用自有隔离检出或实验目录,保留用户未提交文件和其他会话/主检出,预检并发进程与共享输出,不得终止无关进程。先在正确实现上运行最小相关选择,确认命名测试和数据用例实际执行并通过;再在隔离实验中只应用所选缺陷行为,重建并重跑相同测试、断言、数据、依赖和运行时配置,捕获命名失败、断言、预期/实际、进程退出和诊断;随后恢复正确实现、重建、重跑确认通过,校验受保护源码/测试字节,只清理自有临时资源,绝不将反事实补丁交付到产品。成对运行不得复用陈旧构建/测试输出或另一变体的有效缓存,需使用独立输出/缓存或清理自有输出后重建,不能仅依赖 --no-build 或运行器成功退出;记录每次运行的选择/执行/通过/失败/跳过计数,无法获取计数时写未知。零选择/执行、跳过、工具缺失、认证、构建/设置失败、无关失败和不可归因的偶发问题均使证明未验证。

跨组件/验收行为需先识别生产者-消费者契约:所有权、生命周期、握手与否、退出语义、回退、兼容性、取消和多模块聚合,记录确切发布二进制/包/扩展及发布分支,重建/重新打包每个变体、隔离有效包缓存、证明真实发布消费者加载了哪个变体并运行代表性组合命令;单元 mock 或源码兼容编译不能替代发布布局验证。

只读/建议模式:在不编辑、不执行(除非另行许可)的情况下追踪两个修订、设置/辅助代码、输入和断言,结论标注为静态预测而非执行证明;现有产物仅在修订/补丁、加载变体、选择、计数和失败归因匹配时有效;绿色 CI 或作者声明本身不是红绿证据。报告中仅陈述已获得的证据,在交接或授权评审/描述中放置简洁的 Test-value evidence 段落,注明基线/父提交与 head SHA 或测试补丁标识,每个变更契约一行、保护同一契约的测试分组,并标明未评估组。状态应准确使用 executed: detected、executed: survived、static: predicts detection、static: predicts survival、unverified、equivalent 或 not applicable;缺少红/绿或不完整选择使成对证明未验证,仅对已执行且非等价故障报告 executed: survived,等价编辑不计为缺口,重构的保持性通过是有效证据。报告需包含确切命令/退出码、工具链/框架/配置、修订与反事实补丁标识、每次运行计数和相关产物路径,区分本次执行与已验证的现有产物,不得将静态预测与实测变异计数/分数混用。最终 PR head 的证据不能证明每个中间提交,请求的提交应单独对照其父提交评估。缺失证据不自动等于已证缺陷或内联评审线程;发布遵循调用方现有授权门,不新建 GitHub 对象存放报告,也不声称指令强制钩子、CI 或发布。

适用场景:变更契约评审、回归测试有效性验证、新功能缺失行为检测、测试增强验证、重构保持性检查和跨组件发布验证。限制:需要可识别的变更范围与独立预言机;执行需授权且隔离环境;静态模式结论仅为预测;计数、跳过、工具或环境问题会导致证据未验证;不承担全量变异测试、通用测试缺口分析或逐测试评分。