你的工作是交付已经过验证可运行的代码

原创
🌻
陈哥聊测试
2026-07-31 10:00:00
17
摘要:开发永远是代码的最终责任人

大家好,我是陈哥。


当下大模型赋能开发已经是行业常态,程序员产出代码的速度肉眼可见变化。但是有些程序员会把AI产出的代码复制出来,简单扫一眼就提交PR,这在我看来属于严重的工作失职。


之前我在《AI Coding时代仍要以人为本》中写道,一套系统后续长久的迭代与维护,最终还是要依靠程序员把控。


在AI普及的今天,程序员的职责不只是埋头写代码,更重要的是交付能正常运行的代码。

交付可运行的代码-1

一、怎么证实你的代码确实可用? 

想要证实一段代码真正具备上线可用的能力,有两个步骤是不可或缺的。


第一就是手动测试,这是验证代码的基础前提。无论是程序员自己写的代码,还是AI生成的代码,都应该完整地运行一遍。


我知道肯定有人会说我之前的AI代码都没测试过,上线后照样能运行。那只能说你的运气非常好,现在不出问题,并不表达未来不出问题,我们进行测试就是为了防患于未然。


我们可以先搭建匹配项目的运行环节,设定初始业务状态,先跑通业务流程,直观确认核心功能符合需求,把操作终端命令、运行输出截图附在提交记录中。这些功能都运行良好后,就可以开始测试各种极端情况了。


验证有效性的第二步是自动化测试,用于弥补手动测试效率低的短板。现在有了LLM工具,自动化测试比之前容易得多,就更没有了省略的理由。所以,提交的PR时要注意补充相应的自动化测试。


关于LLM下的自动化测试,大家可以看一下这篇文章《LLM如何重塑自动化测试的底层逻辑》,这里我就不展开说明了。


最后,要注意不要因为觉得自动化测试已经涵盖了众多方面,就想跳过手动测试。自动化脚本只能覆盖预设场景,很难模拟真实业务中多变的用户操作,所以手动测试搭配自动化测试,才能更好地验证代码的实用性与可靠性,避免线上出现未知故障。

二、让你的AI编码工具先证明这一点

聊完人工验证代码的标准,我再说说AI编码工具的自校验能力。


这几年,LLM领域最重要的趋势是AI编码工具的爆炸式增长。像Claude Code、Codex CLI等这类工具,是可以自主运行生成的代码,我们要学会引导AI完成完整的验证闭环。


在日常开发时,我可以提前配置指令,引导Claude Code自主调用程序执行测试,快速筛选语法错误和逻辑断层。


如果开发后端接口,仅依靠控制台日志很难完整验证接口链路,就可以要求 AI 生成改动代码后自动发起接口请求,校验入参、返回数据、异常场景响应结果,提早发现参数校验遗漏、事务失效这类日志难以暴露的隐性问题。
交付可运行的代码-2

三、开发永远是代码的最终责任人 

讲了这么多,有一条底线是不变的。大模型不会为线上故障承担任何责任,项目内所有代码产出的最终责任是开发者。


如今借助LLM生成代码的门槛极低,输入一段需求描述就能产出上千行代码,快速提交PR。这种无门槛的代码产出已经没有任何稀缺价值,任何人都能做到。真正稀缺的是交付经过完整验证的代码。


现在,很多开发者太依赖AI了,已经忘记了之前古法编程的感觉。但是代码一旦线上出现崩溃,责任只会追溯到提交代码的本人。


所以,程序员在每次提交PR之前,一定要确保自己的代码是经过测试的。这里给大家推荐一下我参与开发的禅道自动化测试功能:

交付可运行的代码-3


* 参考资料:Simon Willison:Your job is to deliver code you have proven to work

推荐阅读

国产化替代是个伪命题?被误解多年的开源软件,如今怎么样了?

开源是世界级创新的土壤,但要在"黑土地"上种出自己的庄稼,必须把根扎进芯片架构和操作系统底层。
🌻
陈哥聊测试
2025-03-28

曾经有一个创业者,叫骆驼

清晨的阳光透过百叶窗洒进办公室,骆驼揉了揉惺忪的睡眼,抬头看了眼墙上的挂钟,已经七点半了。他轻轻叹了口气,又是一个没回家的夜晚。
春哥 2024-06-28

如何有效应对项目中的范围蔓延?

我想解释一个误区,应对范围蔓延并不是要禁止所有变更
🌻
陈哥聊测试
04-17

为什么产品做大后,反而弄丢了核心用户?

为什么这些产品、企业、品牌,在从小众黑马走向行业龙头、从草根体量转为规模化发展的过程中,滋生了傲慢、疏远了用户、丢掉了初心?
💍
IPD
06-18
返回顶部
客服头像
高丽亚
高级客户经理
客服微信
17667930330
3645260865
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。
gtm跟踪器
gtag
UET