最近这段时间我和 AI 一起在一个实际项目里持续协作做了不少功能多语言、命令路由、vault、server/run 相关能力、playground 调整以及一整套逐步完善起来的测试体系。做完之后我最大的感受不是“AI 写代码很快”而是另一件事真正让这套东西越做越完整、越做越稳的是测试一直同行。Vibe Coding不只是“快速写代码”很多人提到 Vibe Coding第一反应往往是想法来了就开写让 AI 快速实现看起来能跑就继续推进这种方式当然有它的效率优势尤其是在原型期速度非常惊人。但如果项目不是一次性 demo而是要持续迭代、持续修改、持续加功能那么只靠“感觉差不多了”其实很快就会撞墙。因为一旦你开始继续往前做改一处会不会坏另一处新功能加进来会不会把旧逻辑带崩某个场景现在能跑换一条路径还行不行远端服务器、SSH、vault 这种边界情况靠肉眼到底看得住多少这时候单纯的“vibe”是不够的。这次协作顺不是因为 AI 一次写对了所有东西这次我和 AI 的协作之所以顺我觉得主要有三部分我负责给方向、边界和取舍AI 负责把这些决策快速翻译成代码、文档和实现测试负责把已经做出来的东西托住也就是说这不是“AI 自己完成了一切”而更像是一种分工明确的结对开发人来判断什么该做、什么不该做AI 来高频执行、补代码、补测试、补文档每推进一步都尽量用测试把结果固定下来这样一来后面很多原本容易心虚的修改就会变得非常有底气。完整度高很大一部分来自测试回头看这次项目里真正变得越来越完整的部分几乎都和测试有关。比如命令层逻辑不是只测 happy pathSSH 相关能力不是只测 mock/server add不是只走一条最简单的流程/run batch不是只测单机成功playground 的改动也不是只靠肉眼看一下我们后来逐步把测试分成了几层普通单元测试基于ssh2的本地协议级测试基于 Dockersshd的第二层 smoke test这个分层非常关键。它让很多原本“只能靠真实环境手工验证”的东西慢慢变成了可以自动回归的资产。尤其是server/run/ssh这一块后来之所以越补越敢补不是因为“已经很有信心了”而是因为每往前走一步脚下都有测试托着。测试不是最后补的而是一路同行的我越来越强烈地觉得测试最有价值的方式不是“功能都做完了再补”而是像这次这样做出第一版发现真实问题把问题变成测试修复继续扩功能再把新风险变成测试这个过程会让系统自然长大。你不会觉得自己是在堆一堆脆弱的功能而是在慢慢铺一张越来越密的网。所以这次最让我满意的不是“实现了很多”而是这些实现并没有随着功能增多而越来越乱反而因为测试变得越来越可控。人、AI、测试三者怎么配合如果要用一句话总结这次协作我会写人负责决策AI 负责执行测试负责把系统托起来。这三者缺一不可只有人没有 AI推进速度会慢很多只有 AI没有人方向和边界会飘只有人和 AI没有测试完整度和稳定性都很难持续提高而一旦三者都在协作体验会非常不一样。你会感觉自己不是在“让 AI 替你做事”而是在和一个执行力极强的搭档一起把想法迅速变成真实可运行、可验证、可演进的系统。我对 Vibe Coding 的新理解经过这次实践我现在会更愿意这样理解 Vibe Coding它不是“凭感觉写代码”。它是保持快速反馈保持协作流动保持实现 momentum但与此同时让测试一路同行这样才不是裸奔。这样写出来的东西才有机会从“看起来能跑”慢慢长成“真的可靠”。结语所以如果我要给这次经历下一个标题我会很愿意用这一句Vibe Coding测试同行因为真正让我觉得这次协作有价值的不只是快而是快的同时还能越来越稳。如果没有测试这可能只是一场高效率的即兴创作。但因为测试一直在它最后更像是一场有节奏、有方向、能不断累积成果的共同开发。