冻结记录
一种CI测试跳过治理机制,要求跳过测试时必须附带可被独立复核的结构化证据(包含test_id、fixture哈希、运行分歧、oracle文件等字段),任何字段缺失或被篡改均触发拒绝,以防止AI代码补丁隐藏真实回归
时间轴 (近 90 天)
冻结记录机制的核心思想是:跳过一个测试必须附带可被独立复核的证据,且这套检查默认失败(fail closed)
只要缺字段、两次运行结果一致、或者判定依据被同一个补丁改动过,跳过请求就会被拒绝
一条合格的冻结记录有六个强制字段:test_id、fixture_path、fixture_sha256、disagreement、oracle_path、oracle_blob,缺一不可
冻结记录对象应存放在 .freeze/record.json,让 CI 和审查者打开同一个文件,而不应埋进 Pull Request 评论里
两次结果一致(两次通过或两次失败)不能作为跳过测试的有效证据,只有在fixture字节不变的前提下结果发生变化的'分歧'才是最小有效观察
该机制刻意偏向于宁可让罕见的flaky测试继续红着,也不愿在一次幸运重跑后把稳定的bug隔离掉
调用网络、时钟或共享服务的测试不在冻结记录机制适用范围内,因为文件哈希无法解释它们为何产生分歧
该机制为五步严格有序流程,遇到第一个拒绝就停止,在第5步打印'接受'前不得添加任何跳过标记
两个样本无法估计flaky率,只检测到两个结果曾经不同过一次;父blob规则也不评估断言强度
原文明确指出其中的命令、检查器脚本和示例属性文件均未实际执行,文中的哈希值都是占位符
全部知识事实 (10)
冻结记录机制的核心思想是:跳过一个测试必须附带可被独立复核的证据,且这套检查默认失败(fail closed)
50%待验证只要缺字段、两次运行结果一致、或者判定依据被同一个补丁改动过,跳过请求就会被拒绝
50%待验证一条合格的冻结记录有六个强制字段:test_id、fixture_path、fixture_sha256、disagreement、oracle_path、oracle_blob,缺一不可
50%待验证冻结记录对象应存放在 .freeze/record.json,让 CI 和审查者打开同一个文件,而不应埋进 Pull Request 评论里
50%待验证两次结果一致(两次通过或两次失败)不能作为跳过测试的有效证据,只有在fixture字节不变的前提下结果发生变化的'分歧'才是最小有效观察
50%待验证该机制刻意偏向于宁可让罕见的flaky测试继续红着,也不愿在一次幸运重跑后把稳定的bug隔离掉
50%待验证调用网络、时钟或共享服务的测试不在冻结记录机制适用范围内,因为文件哈希无法解释它们为何产生分歧
50%待验证该机制为五步严格有序流程,遇到第一个拒绝就停止,在第5步打印'接受'前不得添加任何跳过标记
50%待验证两个样本无法估计flaky率,只检测到两个结果曾经不同过一次;父blob规则也不评估断言强度
50%待验证原文明确指出其中的命令、检查器脚本和示例属性文件均未实际执行,文中的哈希值都是占位符
50%