SuperAPI AI 工具集

test-value-evidence

测试与质量

查看项目

更新于 10-28 01:57

技能介绍

用途

Test-value evidence 是一个用于评估测试价值的技能。它的核心观点是:一个通过的测试,除非能够检测到相关的错误行为,否则证明力很有限。该技能用于评估针对已识别的代码或测试变更、功能、PR 或提交的测试,判断这些测试是否真正能够捕获变更所涉及的行为错误。

主要能力

  • 契约绑定:将测试契约绑定到被测修订版本。对于 PR,记录其合并基和确切的头部 SHA;对于提交,记录选定的父提交和提交;对于未提交的工作,记录基础 SHA 加上可复现的补丁标识。
  • 行为映射:对每个不同的行为变更,映射:需求 -> 输入/序列 -> 预期公共结果 -> 生产入口点 -> 命名测试/数据用例 -> 区分性断言。
  • 反事实选择:根据变更类型选择有意义的反事实,例如:缺陷修复时保留回归测试并恢复实际修复前缺陷;新功能时禁用/移除或破坏行为;仅测试覆盖增强时引入一个可能的错误公共结果;行为保持重构时比较重构前后的保留契约;仅文档/生成元数据时确定可执行契约是否改变。
  • 配对运行:在授权时执行配对运行,包括在隔离环境中应用选定的缺陷行为,重新构建并重新运行相同的测试,捕获命名失败、断言、预期/实际观察、进程退出和诊断信息,然后恢复正确实现并重新运行以确认通过。
  • 证据报告:在交接或授权的审查/描述中放置紧凑的 Test-value evidence 部分,说明基础/父提交和头部 SHA 或测试补丁标识,每个变更契约一行,分组保护同一契约的测试,并识别未评估的组。

使用方式

该技能通过工作流引导用户评估测试价值。用户需要提供或识别请求的差异/修订、生产入口点、测试、夹具和可用的执行工件。如果无法识别变更,应报告缺失的范围,而不是对整个工作区进行评分。技能强调发现并遵循仓库的指令、固定工具链、测试命令、断言约定和执行权限。

在授权实现/验证环境中,使用拥有的隔离检出或实验目录,保留用户的脏文件和其他会话/主检出。预检并发进程和共享输出/资源;不要杀死无关进程。运行最小相关选择,确认命名测试和数据用例实际执行并通过。仅将选定的缺陷行为应用于隔离实验,重新构建并重新运行相同的测试、断言、数据、依赖项和适用的运行时配置。捕获命名失败、断言、预期/实际观察、进程退出和诊断信息。恢复正确实现,重新构建并重新运行以确认再次通过。

在只读/咨询模式下,追踪两个修订版本、设置/辅助程序、输入和断言,不进行编辑或执行,除非单独允许。将结论标记为静态预测,而非已执行的证明。

适用场景

  • 审查变更的行为或回归测试
  • 证明修复前/缺失行为
  • 评估功能、PR 或提交的测试价值
  • 验证测试是否能够检测到相关错误行为
  • 代码审查中的测试证据评估

限制

  • 该技能不授权在只读审查中编辑、执行不可信代码、工作流分发、发布或访问另一个会话的检出。
  • 不要启动第二个变异引擎,也不要要求对每个变更进行全量变异测试。
  • 对于功能,缺失符号的编译器错误不是行为证明。
  • 等效变异不是缺口。崩溃、超时或异常只有在它是预期的契约信号且诊断将其归因于故障而非设置、发现、波动或基础设施时才算数。
  • 零选择/执行、跳过、缺少工具、认证、设置/构建、无关失败和未归因的时序波动会使证明未验证。
  • 绿色 CI 或作者的主张本身不是红绿证据。
  • 缺失证据不自动是已证明的缺陷或内联审查线程。
  • 发布遵循调用者现有的授权门;不要仅仅为了存储报告或声称指令强制钩子、CI 或发布而创建新的 GitHub 对象。
  • 最终 PR 头部的证据不能证明每个中间提交;应单独评估请求的提交与其父提交。
  • 该技能是自包含的:同级技能是可选的路线目的地,不是必需的依赖项。