Harness engineering 上强度后,瓶颈反而更清晰了

最近一段时间我在持续实践 Harness engineering(把规则、流程、护栏、脚手架先搭好,再让 AI 在框架里跑),体感开发效率确实提高了不少。

但效率上来以后,新的问题也更刺眼:真正拖慢 vibe coding 飞轮的,不再是“写代码”,而是“把代码验证成可交付的软件”。

非 AI 的总结

  • 结论一:测试是 vibe coding 的瓶颈。
  • 结论二:GUI 老兵不死——CLI 再火,也不可能取代 GUI。
  • 结论三:未来更现实的形态是:GUI + CLI 并行,AI 做 AI 擅长的,人类做人类擅长的。

下面展开这周两个最有价值的经验。

一、测试是 vibe coding 的瓶颈

AI 把“产出代码”这件事的边际成本打到很低:

  • 改一处功能很快
  • 重构一层也很快
  • 加一个模块更快

但代价是:代码量膨胀速度远超测试能力增长速度。当代码规模上去,你会发现测试需求不是线性增长,而是接近指数增长:

  • 功能越多,组合越多
  • 分支越多,回归越多
  • 依赖越多,牵一发而动全身

更致命的是:很多产品的核心体验都在 GUI 上,而 GUI 测试天然难:

  • 面向人类的交互路径多、状态多
  • 视觉反馈难以结构化
  • UI 自动化一旦碰到弹窗、遮罩、引导层、验证码、异步加载……就容易崩

于是 vibe coding 的飞轮变成:

开发(快)→ 测试(慢)→ 修复(快)→ 再测试(更慢)

最后“最慢的一环”决定整体吞吐。

我目前的解决方案:三段式测试流水线

1)用脚本做开发环境的单元测试,形成开发-测试-修复闭环

把能单测的尽量单测:

  • 业务逻辑
  • 数据结构 / schema
  • 配置解析
  • 接口契约

目的不是追求“100% 覆盖率”,而是让 AI 的高频迭代有一个可重复、可自动化的安全网。

2)在单测护城河上,用 AI 根据 commit 信息生成“功能测试清单”

这一步很关键:

  • 人类很难在高频 commit 下保持“测试清单同步更新”
  • AI 反而擅长从 diff/commit message 里总结“我改了什么,可能影响什么”

产出的不是测试用例代码,而是一份“本次改动应该检查哪些路径”的 checklist。

3)发布前人工收尾 GUI 测试

很现实:现阶段 GUI 的端到端测试仍然是最难彻底自动化的部分。

人工收尾不是退步,而是把人力用在最值钱的地方:

  • 体验是否连贯
  • 关键路径是否通顺
  • 视觉/交互是否符合预期

下一步:我想做一个 vision-based AI Test

测试完备性一直是软件工程的老大难,而 GUI 又是最难的那块。

我接下来想尝试搭一个基于视觉的 AI 测试(vision-based AI Test):

  • 像“人”一样看屏幕
  • 像“人”一样点按钮
  • 用视觉结果判断状态

目标不是一开始就做通用 E2E,而是从最朴素的场景开始:

  • 启动是否成功
  • 关键按钮是否可用
  • 页面是否进入到预期状态
  • 弹窗/教程浮层是否出现并可关闭

如果这条路能跑通,vibe coding 的“最后一公里”就能再省掉一大块人工。

二、GUI 老兵不死

最近一段时间 CLI 风头很大,甚至有人高喊“GUI 已死”。

但我这段时间更深的体感是:指望完全通过对话来完成任务,既低效也不现实。

1)GUI 是新用户的引导系统

没有 GUI 的产品,很多时候等于没有“路标”。

对一个新用户来说:

  • 面对聊天框,他不知道有哪些功能
  • 不知道应该怎么问
  • 更不知道“问错了”会发生什么

GUI 把“可用性”摊开给用户看:

  • 我能做什么
  • 我现在在哪
  • 下一步怎么走

这是一种非常强的“认知减负”。

2)多媒体交互的信息密度,天然高于文字

文字聊天的优点是灵活,但它的信息密度并不高:

  • 你需要把信息线性读完
  • 你需要在脑子里构建结构
  • 你需要自己记住上下文

而 GUI(尤其是图表、表格、预览、拖拽、可视化状态)天然具备并行信息:

  • 一眼看到全局
  • 直接操作对象
  • 用空间组织复杂度

这不是审美偏好,是信息论层面的效率差异。

结语:GUI + CLI 并行,AI 和人各归其位

我越来越相信一个更现实的未来形态:

  • GUI 负责“可见、可探索、可控”的交互
  • CLI/对话负责“表达意图、生成内容、自动化执行”的部分

让 AI 做它擅长的:

  • 总结
  • 生成
  • 批处理
  • 重复劳动

让人类做自己擅长的:

  • 判断
  • 取舍
  • 体验审美
  • 最终验收

Harness engineering 的意义,也许就在这里:

不是让 AI 更聪明,而是让 AI 在正确的轨道上更稳定地跑。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注