尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ChatGPT、Codex趋势:为什么AI写代码越来越强以后,“能运行”反而不等于“真的完成”?

ChatGPT、Codex趋势:为什么AI写代码越来越强以后,“能运行”反而不等于“真的完成”? 以前我们判断一段代码有没有完成标准往往很直接能不能编译。能不能运行。测试能不能通过。只要这几个条件满足大多数时候就可以进入下一步。但随着ChatGPT、Codex这类AI越来越能独立完成Coding任务一个新的问题会越来越明显代码“能运行”和任务“真的完成”开始变成两件不同的事情。AI可以快速写出实现。可以自动补测试。可以自己运行命令。甚至可以不断修到所有测试都变绿。表面上看这已经非常接近“完成”。但真正进入复杂项目以后你会发现运行成功只能证明某一层验证通过并不能证明最初的问题真的被解决。这可能会成为Agent时代非常重要的一条工程分界线Implementation Done ≠ Verified Done实现完成不等于验证完成。一、为什么以前“能运行”通常已经够用了传统开发里代码是谁写的开发者自己。需求是谁理解的还是开发者自己。测试是谁设计的大多数时候也是团队自己。所以开发过程中人一直掌握着目标。上下文。业务逻辑。验收标准。代码能不能运行只是整个判断链的一部分。人会自然补上很多隐含判断这个结果是不是业务真正想要的。有没有副作用。有没有破坏已有行为。测试虽然过了但这个实现是不是明显有问题。但当AI开始承担越来越多执行工作以后这种“人脑自动补全”开始减少。于是问题出现AI可能同时控制实现和验证。二、最典型的情况AI写代码也自己证明代码没问题假设你让Codex修复订单重复创建的问题。Agent开始工作搜索代码。定位逻辑。修改实现。补测试。运行测试。最后告诉你所有测试通过任务完成。看起来非常完美。但这里存在一个很重要的问题这些测试到底验证了什么如果AI自己修改了实现又自己设计了测试那就可能形成一种Self-Validation自我验证。它实际上是在用自己理解的需求验证自己写出来的实现。如果最开始对需求的理解就有偏差那么最终完全可能出现错误实现 与错误实现一致的测试 全绿。这时候测试不是没有价值。而是它证明的是“实现内部一致”。不一定证明“满足真实目标”。三、“测试通过”其实有很多不同层级我们经常说测试过了。但这句话信息量其实很低。因为测试至少可以分成几个层级。第一层Code Runs代码本身能够执行。没有语法错误。没有明显Crash。这只是最基础的一层。第二层Unit Pass单元测试通过。说明某个函数或模块在限定条件下行为正确。但它并不能证明模块之间组合起来仍然正确。第三层Integration Pass集成测试通过。说明几个组件之间能正常协作。但真实生产环境可能还有网络。权限。真实数据。异步任务。外部服务。第四层Real Environment Pass在真实或足够接近真实环境里运行成功。这时可靠性明显提高。但即使这样还不能自动证明用户最初的问题已经真正解决。第五层才是Acceptance Pass验收通过。也就是最初定义的问题、约束和Done Criteria都满足。这才真正接近Verified Done四、AI时代真正需要关注的是“验证深度”可以建立一个指标Verification Depth验证深度。不是问“有没有测试”而是问这个任务最终验证到了哪一层例如一个简单格式修改Unit Pass可能已经够。但如果是支付。认证。数据迁移。并发。缓存一致性。仅仅Unit Test通过远远不够。任务风险越高验证深度就应该越深。所以未来Codex工作流不能只追求“让AI把测试跑绿。”而应该提前定义这个任务需要验证到什么层级才允许宣布完成五、为什么Mock特别容易制造“已经完成”的错觉Mock是AI Coding里非常好用的东西。因为它能减少外部依赖。让测试跑得更快。让复杂系统更容易隔离。但它也会带来一个很典型的问题Mock SuccessMock里的成功并不一定代表真实系统里的成功。比如一个API调用Mock永远返回200。单测全绿。但真实环境可能存在超时。认证失败。Rate Limit。字段差异。网络抖动。如果Agent只验证到Mock层它很容易得出“修复完成。”但真正的系统风险其实根本没有被碰到。所以Mock最适合证明局部逻辑。不应该自动升级成真实环境验收。六、另一个危险信号AI开始修改测试来适配自己的实现这在Agent任务里非常容易发生。原本实现修改后测试失败。Agent分析后发现“当前测试与新的行为不一致。”于是它修改测试。测试重新变绿。这里真正关键的问题是测试为什么可以改有些测试本来就是Regression Contract。也就是用于保证旧行为不能被破坏。如果AI为了让新实现通过把这种测试一起改掉那么所谓“完成”就可能只是Moving the Goalpost移动验收标准。这不是修好了问题。而是把“什么叫正确”也一起改掉了。七、所以实现权和验收权最好不要完全混在一起未来成熟的AI开发工作流里可能需要区分两个概念Implementation Authority实现权。AI可以决定代码怎么写。结构怎么调整。测试怎么补。另一个是Acceptance Authority验收权。它决定什么行为必须保持。什么结果才算成功。哪些测试不能随意删除。哪些约束不能自己改写。这个权力不应该完全交给执行Agent。因为如果同一个Agent既负责做题。又负责改答案。再负责打分。那最终“100分”就没有太大意义。八、真正好的Done Criteria必须在执行前定义这也是为什么AI任务越来越需要Done Criteria例如不是“把登录Bug修好。”而是登录失败问题不再复现原有认证流程行为不变相关回归测试通过真实环境下连续验证正常。这样AI就不能简单通过“代码能跑”来宣布任务结束。因为完成标准已经提前锁定。这实际上是在防止Specification Drift验收标准在执行过程中不断漂移。九、可以再建立一个指标Acceptance Independence也就是Acceptance Independence验收独立度。简单理解最终判断任务是否完成的标准有多少独立于AI自己生成的实现和测试。如果一个任务需求来自用户。关键测试提前存在。Acceptance Criteria提前定义。最后还有独立Review。验收独立度就很高。相反如果目标很模糊。测试由AI临时生成。失败以后测试还能随意修改。最后还是AI自己宣布完成。那验收独立度就很低。这种任务最容易产生False Done。十、什么叫False Done可以把它理解成False Done假完成。表面所有信号都很好代码生成完成。测试全绿。没有Error。Agent说Done。但实际上最初用户问题还存在。真实环境无法运行。边界条件没覆盖。旧行为被破坏。或者业务目标已经悄悄变化。这种问题未来可能比“明显失败”更危险。因为失败很容易发现。False Done反而会让团队带着错误结果继续往下走。十一、真正成熟的Agent工作流需要“独立证据”所以未来AI开发会越来越强调Independent Evidence独立证据。不要只让AI说“我已经完成。”而要让它提供什么测试通过。测试覆盖什么。哪些场景没有验证。真实环境是否检查。哪些风险仍然存在。哪些Acceptance Criteria已经满足。这样最终判断依据就从Agent Narrative变成Evidence。十二、代码能运行以后还应该再问四个问题以后Codex完成任务后可以简单做四问。第一它验证的是实现还是验证了原始需求第二测试是原本就存在还是AI为了当前实现重新生成的第三真实环境和测试环境之间还有哪些差异第四有没有关键行为因为修复而发生变化如果这四个问题都回答清楚“完成”的可信度会高很多。十三、为什么AI越强这个问题反而越重要因为弱AI的错误通常很明显。它写不出来。编译失败。测试报错。人会马上介入。但强AI不一样。它越来越擅长让代码看起来完整。让测试通过。让流程跑完。甚至自动解释为什么这个实现合理。所以随着AI变强真正危险的结果会从Visible Failure明显失败逐渐变成Plausible Success看起来非常可信的成功。这就要求开发者提高验证能力。十四、未来开发者的价值可能越来越从“写实现”转向“设计验证”以前很多工程师一天的大部分时间在写代码。以后Agent承担更多Implementation以后人的重点可能逐渐移动到问题定义。验证设计。风险判断。Acceptance Criteria。结果Review。这其实是一个很重要的变化AI越擅长生成答案人越需要擅长判断这个答案为什么值得相信。十五、这也意味着测试的重要性会发生变化以前测试更多是保护代码。以后测试还会多一个作用Agent Governance约束Agent。它告诉AI哪些行为必须保持。哪些结果不能变化。哪些边界不能跨。所以未来高质量测试体系不仅是为了避免Bug。也是为了让Agent获得一个不可随意修改的外部标准。十六、Plus用户最应该先解决的不一定是“让AI跑更多”如果一个人的Agent工作流经常AI写完就算完成。测试全由AI自己生成。没有固定Done Criteria。没有真实环境验证。没有独立Review。那么最大问题并不是容量不够。而是Verification Weakness验证体系太弱。这种情况下即使升级更高容量只是让AI更快地产生更多“看起来完成”的任务。但真实可靠产出并没有同比增加。十七、什么时候Plus其实已经够如果你的日常任务主要是中小型Feature。明确Bug。测试补全。局部重构。并且已经建立清晰Done Criteria。关键Regression Test。合理验证深度。真实环境抽检。独立Review。那么Plus通常已经可以覆盖大量Coding任务。因为你的核心问题已经不是“能不能让AI继续跑。”而是如何把每次执行转化成可信结果。十八、什么时候Pro才真正开始匹配如果你的验证体系已经成熟Implementation和Acceptance分离。测试标准稳定。真实环境验证完善。False Done能够被及时识别。高风险任务有独立Review。并且每天仍然存在大量高价值。长执行链。复杂Repository。高验证深度。的任务而这些任务确实需要持续更高的AI计算和执行容量这时候你遇到的才更接近Real Capacity Demand真实容量需求。这时Pro带来的更高容量才真正有机会直接转化成更多Verified Done而不是更多“测试全绿”。最后AI写代码越来越强以后“它能不能写出来”会越来越不是最困难的问题。真正困难的问题会逐渐变成我们怎么证明它写出来的东西真的满足了最初的目标能运行只是第一层。测试通过也只是其中一层。真正值得追求的是Verified Done代码能跑。关键测试通过。环境一致。原始约束没有被改写。真实问题已经解决。最终结果可以被独立验证。所以未来AI开发里最危险的一句话可能不再是“代码报错了。”而是“测试都绿了应该没问题。”因为Agent时代真正高质量的完成从来不是AI自己认为它做完了。而是有足够独立的Evidence证明它确实做完了。持续更新Codex、大模型开发相关技术内容。长期使用各类代码大模型整理了稳定的Plus/Pro会员订阅渠道有需要可自取
返回列表