与基线比较,检查行为是否等价
Differential Baseline-Equivalence Oracle
通过差分比较判断新旧实现是否保留了要求的行为。
以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。
使用场景
升级序列化器并承诺公共行为不变。教学输入含空列表、null字段和非法日期;新版本可能正常用例通过,却改变错误类型或顺序。需要明确等价比较定义。
具体做法
固定旧版、新版及相同夹具和环境。按契约选择逐字节比较或明确语义归一,不能把重要顺序归一掉;同时比错误类别与副作用。保存逐例输出及差异,区分两版共同失败与新回归,新增边界夹具。解释批准的差异后再报告已测等价范围。
反例
只跑新版自带测试,通过就宣布完全等价;错误和空输入不需要比较。
改进写法
对旧新序列化器使用相同空列表、null和非法日期夹具。按公共契约比较输出与错误类型,保留数组顺序,记录每项差异及共同失败。未解释差异先处理,不把样例无差异扩大成全部输入等价。
为什么这样改
候选自有检查可能遗漏旧契约,差分比较提供同一输入的实际参照。明确比较定义防止归一化隐藏原本对消费者重要的差异。
如何验证
教学旧新均输出[]可记录该例一致;新版把null省略而契约要求保留,应报告差异;旧版InvalidDate、新版TypeError也要记录。两版同样错误仍是已知问题,不能算新版本修好。
适用边界
旧版也可能有缺陷,等价不证明正确。比较范围受夹具、环境和定义限制;非确定输出需受控条件或语义判据。冻结文档回退/接口对照是机制依据,不证明此序列化器测过。
原文与版本
- ComposioHQ/awesome-claude-skills · Validation Rules / Tracked Change Patterns
查看此版本的文件be2a406907db - affaan-m/ECC · Verify Provider / Integrate by Comparing Evidence
查看此版本的文件ef648e01899b - affaan-m/ECC · Compare actual ordered CLI and MCP results and provenance for configured host identities
查看此版本的文件ef648e01899b