网易首页 > 网易号 > 正文 申请入驻

AI写的代码和测试,为什么不能互相证明

0
分享至

一个AI编程智能体接到需求,写完功能代码,生成测试,跑一遍,然后提交一个构建通过的合并请求。

这看起来像是独立验证。但它往往不是。


如果实现代码和测试用例来自同一个提示词、同一份仓库上下文、对需求的同一种理解,那么它们可能重复同一个错误。代码是错的,测试却信心十足地证明这个错误的行为完全符合实现。

问题不在于AI写不出测试。问题在于,把相关性极高的输出当成了独立证据。

一个账单需求,两种公式,同一个结果

设想一条账单需求:先对订单小计打八折,再对折后金额计税。

预期计算是:小计100.00,折扣20.00,应税金额80.00,税额8.00,最终总额88.00。

但智能体可能误读需求,把折扣放到计税之后:先算税,再减折扣。对于上面这组简单数值,两种公式碰巧都返回88.00。于是生成的测试通过了。

这个测试看起来合理,甚至用了一个具体的期望值。但它无法区分预期公式和错误公式。

一旦引入固定折扣、免税额度、按地区取整,或者不同税率的商品类别,这个被共享的假设就会变成真实的生产账单缺陷。

覆盖率回答不了正确性

一套生成的测试可以达到100%行覆盖率,同时只是把实现当前的逻辑原样断言回去。

有一种模式尤其脆弱:测试里重新构造了实现所用的同一个公式。如果公式本身是错的,两边就一起错下去。

测试需要一个判定基准——一个独立的、相信期望结果正确的理由。

当同一个智能体在同一会话里既写代码又写测试,两份产物可能继承同样的偏差。在同一个对话里重新生成测试,未必能带来有意义的独立性,因为模型仍然看得到自己先前的推理和实现。

换第二个模型也不自动够用。如果两个模型拿到同样含糊的提示词,又从同一份实现推导期望,它们可能收敛到同一个看起来很美的错误上。

目标不只是换一个生成器,而是换一个真相来源。

像 expect(formatPrice(input)).toBe(formatPrice(input)) 这种极端例子一眼就能看穿,但间接版本很常见:测试调用了和生产路径相同的辅助函数、解析器、映射器或公式。

快照测试也是同理。第一个快照记录的是实现产出的任何东西。批准它,只证明有人接受了这个输出,不证明输出符合需求。快照擅长检测变化,但在没人核实其含义时,它很难确立初始正确性。

还有一类测试确认的是结构而非可观察行为。它可能通过,用户却拿到过期数据;也可能在一次安全重构中失败。

如果问题描述里只给了一个例子,智能体往往就把它复现成一个顺利路径测试。而那个例子,未必能区分两种相互竞争的理解。

用模拟对象把依赖固定成永远瞬间成功,测试证明的只是这个依赖永远成功时的行为。它对超时、重复响应、结果不确定、远端已处理后的重试,什么也没说。

从举例到不变量

例子验证的是选定的点,不变量描述的是必须在大量输入下都成立的属性。

对于折扣计算,有用的不变量可能包括:折扣增加时总额不应增加。

基于属性的测试可以在生成的输入上检验这类规则。比如用 fast-check 配合 vitest,随机生成小计、税率和两个折扣率,取较小折扣和较大折扣分别计算总额,断言折扣更大时总额不会更高。

这仍然不能证明所有业务规则,但它让某一个方便的例子更难蒙混过关。

AI写测试本身不是问题。把同一来源的代码和测试当成彼此独立的证据,才是真正危险的地方。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
经济下行,2027、2028、2029,未来三年的忠告

经济下行,2027、2028、2029,未来三年的忠告

生活新鲜市
2026-10-16 03:36:43
一千多的骁龙8gen3真全面屏手机,第五代屏下摄像技术

一千多的骁龙8gen3真全面屏手机,第五代屏下摄像技术

小柱解说游戏
2026-10-17 05:36:52
孩子不会记住你带他去过多少地方玩,给他买了多少玩具,但是永远会记得…

孩子不会记住你带他去过多少地方玩,给他买了多少玩具,但是永远会记得…

上海女性
2026-10-13 13:09:33
美籍华人裴敏欣曾言:俄罗斯一旦打赢乌克兰,损失最惨的是中国

美籍华人裴敏欣曾言:俄罗斯一旦打赢乌克兰,损失最惨的是中国

辉哥说动漫
2026-10-15 06:15:41
取消晚自习、推广秋假、落实双休……全国多地开始推行!是教育减负还是新的焦虑?

取消晚自习、推广秋假、落实双休……全国多地开始推行!是教育减负还是新的焦虑?

教材帮
2026-10-16 21:59:01
夫妻俩赴美旅游!妻子旅游签证顺利入境,丈夫有绿卡却被遣返,绿卡被撤销

夫妻俩赴美旅游!妻子旅游签证顺利入境,丈夫有绿卡却被遣返,绿卡被撤销

大洛杉矶LA
2026-10-14 06:15:06
马杜罗夫妇被美军抓走九个多月,委内瑞拉街头仍高喊“释放总统”,马杜罗已从历史上被“抹去”

马杜罗夫妇被美军抓走九个多月,委内瑞拉街头仍高喊“释放总统”,马杜罗已从历史上被“抹去”

上观新闻
2026-10-16 20:23:35
蔚来李斌:特斯拉Roadster会飞太厉害了 这个我们真没有

蔚来李斌:特斯拉Roadster会飞太厉害了 这个我们真没有

快科技
2026-10-16 18:14:07
苏联最疯狂的实验,利用日本女战俘来繁衍人口,差点改变历史进程

苏联最疯狂的实验,利用日本女战俘来繁衍人口,差点改变历史进程

睡前讲故事
2025-04-23 16:25:26
侯耀华80大寿,侯震、侯军、谢雷、杨议都没去,直播间也冷清

侯耀华80大寿,侯震、侯军、谢雷、杨议都没去,直播间也冷清

蜜桔娱乐
2026-01-20 10:49:16
马科斯气炸了!他没料到,中国的油,不再给菲律宾,“开小灶”,了!

马科斯气炸了!他没料到,中国的油,不再给菲律宾,“开小灶”,了!

南风不及你温柔
2026-10-17 05:59:45
首批iPhone 18 Pro翻车?用户吐槽勃艮第酒红机身氧化褪色惨不忍睹

首批iPhone 18 Pro翻车?用户吐槽勃艮第酒红机身氧化褪色惨不忍睹

TechWeb
2026-10-15 16:17:23
王稼祥喜欢上23岁朱仲丽,毛主席:我这小老乡不错吧?

王稼祥喜欢上23岁朱仲丽,毛主席:我这小老乡不错吧?

微野谈写作
2026-10-16 15:50:09
“我们自愿有何罪”?三男三女聚众淫乱,三亚高知换妻游戏案始末

“我们自愿有何罪”?三男三女聚众淫乱,三亚高知换妻游戏案始末

易玄
2026-09-13 11:43:30
张佳宁现身银行办理业务,肚大如箩孕味十足,走路很慢过台阶小心

张佳宁现身银行办理业务,肚大如箩孕味十足,走路很慢过台阶小心

老王的视角
2026-10-16 15:33:51
当年因反悔拍三级片,在街头遭围殴致两根肋骨断裂,如今她还好吗

当年因反悔拍三级片,在街头遭围殴致两根肋骨断裂,如今她还好吗

梦想的旅途照进现实
2026-10-17 00:58:11
关于性生活的10个谣言,你信了几个?

关于性生活的10个谣言,你信了几个?

精彩分享快乐
2026-10-12 21:00:07
三司会审!余承东称正义虽迟但到,懂车帝连夜删除尊界V800测评视频!网友:当特斯拉已经能飞的时候,我们还在讨论刹车踏板

三司会审!余承东称正义虽迟但到,懂车帝连夜删除尊界V800测评视频!网友:当特斯拉已经能飞的时候,我们还在讨论刹车踏板

大白聊IT
2026-10-17 00:31:40
老泄残精,人穷寿尽!医生提醒:63岁之后,男性要守好这4道关

老泄残精,人穷寿尽!医生提醒:63岁之后,男性要守好这4道关

医学科普汇
2026-10-16 18:19:25
小杨哥归来,还能再造9999万+粉丝吗?

小杨哥归来,还能再造9999万+粉丝吗?

三言科技
2026-10-16 19:40:24
2026-10-17 07:08:49
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
229文章数 96关注度
往期回顾 全部

科技要闻

杨天若院士:AI是中国弯道超车的机会

头条要闻

李斌、何小鹏等多人发声 "特斯拉会飞"有三大疑问待解

头条要闻

李斌、何小鹏等多人发声 "特斯拉会飞"有三大疑问待解

体育要闻

工资一分不要,曼联名将想把母队带回西甲

娱乐要闻

郭富城现身香港大学,袁咏仪夫妇全程冷漠不搭话

财经要闻

港交所拟2028年下半年实施T+1结算

汽车要闻

特斯拉会飞?全新Roadster亮相

态度原创

旅游
游戏
艺术
家居
军事航空

旅游要闻

古城的南门路边集市比三月街还热闹,这里才是实打实的本地市井

终末地刚开新版本就画大饼,玩家却说香疯了?

艺术要闻

芭蕉入画,寓意"家大业大"

家居要闻

2026建博会(广州) 公装联探展交流活动

军事要闻

知情人士:乌克兰"爱国者"拦截弹库存耗尽

无障碍浏览 进入关怀版