Vize

测试与特工

代理编码改变了测试的角色。

当人类写入一个小补丁时,测试会告诉我们补丁是否损坏了某些东西。

当代理可以重写大量代码时,测试也成为我们告诉代理“好”意味着什么的语言。

这让考试变得更重要,而不是降低。

测试是项目的记忆

代理擅长局部推理,但项目规模大于当前提示。

工具链包含以下决策:

  • 诊断应说什么

  • 源跨应指向的位置

  • 生成代码应呈现的样子

  • 支持哪些Vue边缘情况

  • 哪些真实项目必须持续编译

  • 哪些假阳性是不可接受的

测试会保留这些决定。

没有测试,每一次代理性变更都必须从零开始重新发现项目。通过测试,项目可以反击。它可以说:这种行为很重要,这个输出是有意为之,这个错误信息是用户体验的一部分。

快照测试尤其有用

Vize 使用大量快照,因为工具链会产生结构化输出,需要人工检查:

  • 编译器输出

  • 格式化器输出

  • 吊坠诊断

  • 虚拟TypeScript

  • 源映射诊断位置

  • 生成的 Musea 元数据

  • 从夹具项目中构建工件

快照不能替代断言。它们是让广泛行为变得可审查的一种方式。

这对智能编码很重要,因为智能体可以快速产生大差分。一个好的快照套件能让这些差异以人工可查看的形式可见。它会把“编译器某处发生了变化”变成了“这个渲染输出正是在这个情况下发生了变化”。

那是一个更好的评测平台。

决定论就是契约

代理式工作流需要确定性工具。

如果检测结果不稳定,检测员无法判断贴片是否有效。如果输出顺序在运行间发生变化,快照就会变成噪声。如果诊断依赖于环境机器状态,CI就成了一场抽签。

所以Vize在意的是无聊的细节:

  • 稳定输出排序

  • 稳定的诊断ID

  • 稳定源段

  • 稳定生成的代码形态

  • 稳定的夹具设置

  • 独立的临时目录

决定论不仅仅适用于CI。这让人类和代理共享相同的反馈循环。

真实世界的赛事让系统保持诚信

单元测试是必要的,但Vue工具存在于真实项目中。

真实项目有:

  • 不寻常的导入图表

  • 包管理器布局

  • 生成文件

  • 宏约定

  • 风格预处理器

  • 庞大的组件树

  • 旧模式与新模式并列

这就是为什么Vize不断用真实世界的固定装置和快照进行测试。目标是不要过早宣称生产准备就绪。目标是找到每一个只有在完美样本应用外才会出现的锐利边缘。

这种详尽的检查过程虽然缓慢,但这是从实验到真正工具的路径。

考试是与社区的对话

社区反馈不仅仅是追踪评论。

它还包括:

  • 一个无法编译的真实项目

  • 指向错误跨度的诊断

  • 阻碍采用的假阳性

  • 仓库中无人预料的性能悬崖

  • 工具链不理解的生产模式

每一份报告都应该成为固定数据、回归测试或基准。

这就是反馈如何变成记忆的原因。这就是实验性工具随着时间变得更严肃的原因。

特工们需要更小、更美好的循环

对代理来说,最糟糕的测试设置是一个巨大的慢速命令,最后会失败并发出不清晰的信息。

最佳的设置会提供多层反馈:

  • 局部不变量的快速单元测试

  • 用于输出审查的快照测试

  • 框架行为的夹具测试

  • 针对工具边界的聚焦集成测试

  • 用于平台和生产构建的CI矩阵

特工们可以用那个梯子。人类也能。

这也是 Vize 持续投资测试工具和脚本整合的原因之一。一个好的项目应使正确的检查易于运行、易于理解,并在风险增加时易于扩展。

信任是反复建立的

没有任何工具链因为说明文件说“快速”或“正确”而变得可信。

信任是赢得的:

  • 诊断是精确的

  • 修复不会损坏附近的代码

  • 快照变化是可解释的

  • 现实项目不断通过

  • CI在释放前捕获了某些东西

  • 代理可以迭代而不丢失线程

这就是为什么测试对Vize来说不是副线任务。

它是产品的一部分。

在人工智能时代,最好的工具不会是生成最多代码的。他们将是能够在紧凑、确定性循环中生成、验证、解释和拒绝代码的人。

测试是这些循环变得真实的地方。