TestSlop 开源:一眼揪出「差一个边界」也能骗过测试套件的错误实现
chickpo · reddit · 2026-09-25
作者原本想抓 coding agent 偷偷削弱测试来骗绿,实验发现这种情况并不常见;真正反复出现的是更隐蔽的问题:一个只差一处编辑的错误实现,同样能通过全部测试。
核心示例:quantity <= 0 被改成 quantity <= 1,两者仅在 quantity=1 时结果不同,而测试套件恰好没覆盖这个输入——两个版本都 3/3 通过。
TestSlop(github.com/hyukvoid/TestSlop)的工作方式:
- 读取 agent 产出的 diff,自动生成一个「邻近变体」(边界比较移动一位)
- 在 scratch 副本上对变体重跑测试套件,打印两个版本的结果及区分它们的输入
- 源码树不动,绿色通过只说明你的代码满足你写的测试,不说明没有其他实现也能通过
仓库附带真实案例:重放 vercel/ms 加入月份格式化的 commit 与原测试套件,两个版本都过 163/163,差距恰好是一年——1y vs 12mo,测试从未检查过。
局限:目前只处理 JS/TS 变更行上的边界比较,找不到 Twin 不代表代码正确,也不能替代通用 mutation testing。
「编程与Agent」频道最新
- 语音 AI 平台 Vapi 年处理约 10 亿次通话,创始人复盘十几次转型找 PMF — ycombinator · 2026-09-25
- 严格沙箱红队评测:编码 Agent 到底能解决什么问题 — tomssilver · 2026-09-25
- OpenHands Enterprise 0.70:让团队看见并管理 Agent 的全部工作 — rajistics · 2026-09-25
- 征集 Opus 5.5 视频作品,附开源 Claude skills 画真实山脉 — EricBuess · 2026-09-25
- 一条短视频成本 0.4 美元:agent 流水线日产 67 条骨架 reel — victor_explore · 2026-09-25
- 不用图像模型:开源 Claude Skills 用真实高程数据画任意山脉 — EricBuess · 2026-09-25