测试与特工
代理编码改变了测试的角色。
当人类写入一个小补丁时,测试会告诉我们补丁是否损坏了某些东西。
当代理可以重写大量代码时,测试也成为我们告诉代理“好”意味着什么的语言。
这让考试变得更重要,而不是降低。
测试是项目的记忆
代理擅长局部推理,但项目规模大于当前提示。
工具链包含以下决策:
诊断应说什么
源跨应指向的位置
生成代码应呈现的样子
支持哪些Vue边缘情况
哪些真实项目必须持续编译
哪些假阳性是不可接受的
测试会保留这些决定。
没有测试,每一次代理性变更都必须从零开始重新发现项目。通过测试,项目可以反击。它可以说:这种行为很重要,这个输出是有意为之,这个错误信息是用户体验的一部分。
快照测试尤其有用
Vize 使用大量快照,因为工具链会产生结构化输出,需要人工检查:
编译器输出
格式化器输出
吊坠诊断
虚拟TypeScript
源映射诊断位置
生成的 Musea 元数据
从夹具项目中构建工件
快照不能替代断言。它们是让广泛行为变得可审查的一种方式。
这对智能编码很重要,因为智能体可以快速产生大差分。一个好的快照套件能让这些差异以人工可查看的形式可见。它会把“编译器某处发生了变化”变成了“这个渲染输出正是在这个情况下发生了变化”。
那是一个更好的评测平台。
决定论就是契约
代理式工作流需要确定性工具。
如果检测结果不稳定,检测员无法判断贴片是否有效。如果输出顺序在运行间发生变化,快照就会变成噪声。如果诊断依赖于环境机器状态,CI就成了一场抽签。
所以Vize在意的是无聊的细节:
稳定输出排序
稳定的诊断ID
稳定源段
稳定生成的代码形态
稳定的夹具设置
独立的临时目录
决定论不仅仅适用于CI。这让人类和代理共享相同的反馈循环。
真实世界的赛事让系统保持诚信
单元测试是必要的,但Vue工具存在于真实项目中。
真实项目有:
不寻常的导入图表
包管理器布局
生成文件
宏约定
风格预处理器
庞大的组件树
旧模式与新模式并列
这就是为什么Vize不断用真实世界的固定装置和快照进行测试。目标是不要过早宣称生产准备就绪。目标是找到每一个只有在完美样本应用外才会出现的锐利边缘。
这种详尽的检查过程虽然缓慢,但这是从实验到真正工具的路径。
考试是与社区的对话
社区反馈不仅仅是追踪评论。
它还包括:
一个无法编译的真实项目
指向错误跨度的诊断
阻碍采用的假阳性
仓库中无人预料的性能悬崖
工具链不理解的生产模式
每一份报告都应该成为固定数据、回归测试或基准。
这就是反馈如何变成记忆的原因。这就是实验性工具随着时间变得更严肃的原因。
特工们需要更小、更美好的循环
对代理来说,最糟糕的测试设置是一个巨大的慢速命令,最后会失败并发出不清晰的信息。
最佳的设置会提供多层反馈:
局部不变量的快速单元测试
用于输出审查的快照测试
框架行为的夹具测试
针对工具边界的聚焦集成测试
用于平台和生产构建的CI矩阵
特工们可以用那个梯子。人类也能。
这也是 Vize 持续投资测试工具和脚本整合的原因之一。一个好的项目应使正确的检查易于运行、易于理解,并在风险增加时易于扩展。
信任是反复建立的
没有任何工具链因为说明文件说“快速”或“正确”而变得可信。
信任是赢得的:
诊断是精确的
修复不会损坏附近的代码
快照变化是可解释的
现实项目不断通过
CI在释放前捕获了某些东西
代理可以迭代而不丢失线程
这就是为什么测试对Vize来说不是副线任务。
它是产品的一部分。
在人工智能时代,最好的工具不会是生成最多代码的。他们将是能够在紧凑、确定性循环中生成、验证、解释和拒绝代码的人。
测试是这些循环变得真实的地方。