Hogwarts测试开发
9小时前·北京测吧员工
为什么要求 AI 写代码前先写测试?三
二、AI Coding 越快,为什么反而越需要测试?过去软件开发最昂贵的环节之一是什么?写代码。一个工程师一天能稳定完成的修改量有限。所以代码天然存在一个“生产速度上限”。但 Coding Agent 出现以后,这个上限正在迅速提高。以前:1个工程师几个小时修改3~5个文件现在:1个Agent几十分钟修改几十个文件代码生产速度突然变快。但另外一边:人的 Review 能力并没有同步提升几十倍。于是整个软件研发链路开始出现一个新的瓶颈:代码生成能力↑↑↑↑↑验证能力以前我们担心:开发来不及写。未来越来越可能担心:AI 写得太快了,我们根本来不及确认它到底写对没有。这也是为什么测试在 AI Coding 时代反而会变得更重要。AI 写完代码再补测试,最大的问题是什么?很多人现在使用 Coding Agent 的方式是:先实现功能再生成测试运行通过看起来没问题。实际上这里存在一个很经典的风险:测试可能开始迎合实现。例如真实需求是:用户连续登录失败 5 次以后,账号锁定 30 分钟。AI 不小心实现成:if failed_count >= 3: lock_user()然后你再告诉它:帮这段代码补单元测试。AI 已经看到了:failed_count >= 3于是很容易生成:def test_user_locked_after_3_failures(): ...最后出现:错误实现+匹配错误实现的测试=全部 PASS代码通过了测试也通过了但是:业务错了。这就是 Test After 的一个典型问题。TDD 对 AI Coding 真正有什么价值?Superpowers 的解释其实很清楚。测试先写和测试后写,回答的是两个不同的问题:Tests After:这段代码现在是怎么工作的?而:Tests First:这段代码应该怎么工作?Superpowers 官方 TDD Skill 明确指出:如果测试是在实现代码之后写的,它可能只是验证当前实现,而不是验证真正需要的行为;如果没有亲眼看到测试先失败,也无法确认这个测试真的能够捕获缺失的功能
发布于 北京
分享
评论
未登录
友善发言
image-upload
评论
加载中