用独立且能发现错误的标准验证
Use an independent, mutation-sensitive oracle
独立计算预期值,并确认看似合理的错误行为也会导致测试失败。
以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。
使用场景
测试搜索过滤器urgent的序列化。若expected与actual都调用buildSearchQuery,同一个丢字段错误会在两边重复,等式仍通过。
具体做法
按公共契约独立推导预期,使用手工核验字面夹具,先说明哪个现实错误应使断言失败。教学契约要求tag加双引号,输入urgent预期tag:”urgent”。检查漏过滤、错误引号、空返回等合理变异是否改变被断言行为;可运行时在副本变异确认红灯,思想检查则标未执行。不要只断言常量或私有结构。
反例
expected=buildSearchQuery(urgent),actual也用同一函数;相等就说明过滤正确。
改进写法
将urgent过滤输出与独立字面tag:"urgent"比较。确认删除tag字段、返回空串或按契约错误引用时断言失败;输入边界另按契约建例。不调用被测构造器来生成预期,也不为了覆盖数字加无关断言。
为什么这样改
同源预期无法独立检出同源错误。明确要捕捉的现实变异让测试的通过含义可审查,并区分行为回归和仅检测设计变动。
如何验证
教学空串、tag缺失均不能等于tag:”urgent”。若公共契约允许其他等效编码,则比较解释后的行为并独立核预期,不能把合法重设计误报bug。变异实验记录运行与结果;未运行只称分析。
适用边界
错误敏感性只覆盖识别到的风险,不证明所有缺陷。字面预期也可能错,需独立来源与核验;过严或过宽断言都需检查。冻结来源其他任务的公平分配数字不是本查询的预期。
原文与版本
- obra/superpowers · Independent expectations
查看此版本的文件8ca22dba9a94 - obra/superpowers · Mutation Check
查看此版本的文件8ca22dba9a94 - addyosmani/agent-skills · deliberate temporary mutation to test the oracle
查看此版本的文件9d0c60d406b4 - addyosmani/agent-skills · independent earliest-share fairness oracle
查看此版本的文件9d0c60d406b4 - ComposioHQ/awesome-claude-skills · Core Requirements / Complexity
查看此版本的文件be2a406907db - ComposioHQ/awesome-claude-skills · Stability / Answer Guidelines
查看此版本的文件be2a406907db - affaan-m/ECC · Grade the reference, shipped fixture and optional naive control through the same path
查看此版本的文件ef648e01899b - affaan-m/ECC · Preserve saturated prior corpus while revising discriminative tasks
查看此版本的文件ef648e01899b - affaan-m/ECC · Require a rejected control candidate but preserve actual-verification limits
查看此版本的文件ef648e01899b - anthropics/skills · Discriminating assertions
查看此版本的文件8a1541c4a3ff - anthropics/skills · Per-assertion and per-case analysis
查看此版本的文件8a1541c4a3ff - anthropics/skills · Whole-pipeline oracle and null
查看此版本的文件8a1541c4a3ff - anthropics/skills · Wrong-but-plausible grader controls
查看此版本的文件8a1541c4a3ff