AI Coding 与 Vibe Coding 正在大幅提升软件交付速度,但自动化测试、回归验证与质量门禁并没有同步演进,Verification Debt 正成为 AI 软件工程的新挑战。传统 GUI 自动化依赖大量脚本编写和维护,面对多端形态、频繁变更和复杂交互时,验证成本很难随研发速度线性扩展。
本次分享将介绍一个全平台 GUI 持续验证框架的实践路径:第一阶段通过 MCP 将 GUI 操作、界面观察和录制能力接入 Coding Agent,验证 AI 辅助录制与测试生成的可行性;第二阶段进一步演进为独立的自动化生成 Agent,以自然语言 Case 作为核心测试资产,通过需求上下文、历史用例、录制轨迹和界面状态生成结构化验证规格,并结合可插拔 Driver、共享 Harness、证据包与独立验证机制,支持 Windows、macOS、Android、iOS 和 Web 的统一 GUI 验证。分享将重点介绍架构演进、自然语言 Case 到验证规格的生成思路、跨平台执行抽象、稳定性治理和实践效果。
演讲提纲
1. 背景:AI Coding 提速后的 GUI 验证断层
- GUI 自动化的长期难题:复杂业务回归中,GUI 自动化长期面临编写门槛高、跨平台覆盖难、录制成本高、脚本维护重、回归反馈慢等问题
- Vibe Coding 放大 Verification Debt:AI Coding 提升了功能迭代速度,但测试资产、回归执行和质量门禁没有同步提速,导致“功能变了,验证没跟上”的问题更加突出
- 目标:把 GUI 验证从工具能力变成研发闭环能力:目标不是单纯让 AI 写测试代码,而是降低 GUI 自动化从用例表达、录制、规格生成、执行到结果验证的整体成本
2. 第一阶段:通过 MCP 把 GUI 自动化能力接入 Coding Agent
- MCP 作为 Coding Agent 与 GUI 环境的连接层:通过 MCP 暴露 GUI 操作、界面观察、元素信息、截图和执行能力,让 Coding Agent 能够理解并调用真实 GUI 环境
- 录制不是录屏,而是采集可生成测试的上下文:录制过程中沉淀用户操作、控件信息、界面状态、截图、等待条件和断言意图,使 Agent 能够基于结构化上下文生成可执行测试
- AI 辅助录制路线的阶段性验证:该阶段验证了“借助 AI 完成 GUI 自动化录制与测试生成”的可行性,在实践中取得了相当好的效果
- 第一阶段边界:仍依赖人工完成验证闭环:测试代码生成、调试、更新和流水线接入仍需要人工参与,当功能变化加快后,测试资产更新仍容易滞后
3. 第二阶段:Agent 驱动的验证规格生成
- 从依赖 Coding Agent 到独立自动化生成及验证 Agent:第二阶段不再依赖外部 Coding Agent,而是由 Agent 理解自然语言 Case、变更上下文和历史执行结果,生成或更新可执行验证规格
- 自然语言 Case 的生成与约束思路:自然语言 Case 不是随意文本,而是由需求描述、Code Diff、历史用例、录制轨迹和业务规则共同约束,抽取前置条件、用户路径、关键操作、断言点、异常分支和数据依赖,形成更适合审查和生成的结构化用例表达
- YAML 作为可审查、可执行的中间规格:自然语言 Case 面向人维护,YAML 面向机器执行。通过 YAML 固化步骤、定位策略、等待条件、断言和运行配置,让测试资产可版本化、可 diff、可审查、可回放
- 可插拔 Driver 与全平台支持:底层平台能力通过可插拔 Driver 承载,统一支持 Windows、macOS、Android、iOS 和 Web,屏蔽控件树、输入事件、截图、权限弹窗和生命周期差异
- Harness 确定性执行与证据包:Harness 负责执行 YAML、采集日志、截图、控件树、步骤轨迹和断言结果,避免最终验证结果完全依赖模型判断
4. 关键技术设计与工程取舍
- 跨平台 GUI 能力抽象:统一界面观察、元素定位、点击输入、等待、断言和截图能力,同时保留各平台 Driver 的可扩展空间。
- 录制与回放一致性治理:通过结构化录制、多信号定位、显式等待、环境初始化和失败证据回溯,降低分辨率、动画、异步加载和平台差异带来的不稳定。
- Agent 生成与确定性执行分层:Agent 负责理解、生成和修复验证规格;Harness 负责执行、采集和判定结果,在生成效率和工程可信度之间做平衡。
- 实践效果与评估指标:实践中节省约 30% 测试资源。除发现缺陷支撑项目质量外,更关注自动化用例生成效率、跨平台覆盖能力、回放稳定性、人工介入率、维护成本下降和回归反馈时效。
5. 未来展望:从自动化录制走向持续验证闭环
- 自然语言 Case 成为核心测试资产:让 QA 和研发主要维护可审查的自然语言 Case,减少对测试代码细节的直接维护
- 研发流水线中的自动验证:通过“功能更新 → Case 更新 → 提交触发 → Agent 更新规格 → Harness 执行 → 证据反馈”,形成从变更到回归的持续验证闭环
- 面向 Verification Debt 的质量内建:长期目标是让 GUI 验证能力持续发生在研发过程中,而不是发布前集中补债
实践痛点
这类技术并不是把 GUI 自动化复杂性完全消灭,而是把复杂性从“人工写脚本”转移到“用例表达、规格生成、跨平台执行和结果可信度”上。
- 自然语言 Case 的质量决定后续生成质量。需求描述过粗、断言不明确、数据依赖缺失时,Agent 容易生成看似合理但不符合业务意图的验证规格,因此需要结构化 Case 模板、上下文约束和必要审查
- 全平台统一抽象存在取舍。统一 Driver 能降低接入成本,但 Windows、macOS、Android、iOS、Web 在控件树、输入事件、权限弹窗和页面生命周期上差异明显,过度统一会损失平台特性,过度定制又会增加维护成本
- 录制与回放一致性仍是核心难点。分辨率、动画、异步加载、环境初始化和测试数据都会影响流水线稳定性,需要 Harness、显式等待、多信号定位、证据包和失败诊断共同治理
- AI 生成不等于可信验证。方案选择让 Agent 负责生成和修复,让 Harness 负责确定性执行和证据沉淀,但这也带来了规格设计、证据采集和独立验证的额外工程成本
前沿亮点
- 自然语言 Case 到可执行验证规格的生成链路:不只是让 Agent 直接操作界面,而是将需求、Code Diff、历史用例、录制轨迹和界面状态转化为结构化自然语言 Case,再生成可审查、可版本化、可执行的 YAML 规格,提升验证资产的长期可维护性
- Agent 生成与 Harness 确定性执行分层:与完全依赖 Agent 在线探索和判断不同,该方案让 Agent 负责理解、生成和修复,让 Harness 负责执行、采集和判定,既保留 AI 的生成效率,也保证回归结果可复现、可审计
- 面向全平台的可插拔 Driver 架构:通过统一上层验证规格和可插拔底层 Driver,同时支持 Windows、macOS、Android、iOS 和 Web,能够在不同 GUI 技术栈之间复用用例表达、执行流程和证据模型
听众收益
- 理解 AI Coding 时代 GUI 验证的新问题:了解 Verification Debt 在 GUI 自动化中的具体表现,以及为什么传统脚本维护模式难以跟上 Vibe Coding 的交付速度
- 获得一套可参考的全平台 GUI 验证架构:了解 MCP 接入、自然语言 Case、验证规格、可插拔 Driver、Harness 和证据包如何组合成可落地的工程体系
- 借鉴 AI 测试落地中的关键取舍:了解如何平衡 Agent 自主性与执行确定性,如何避免“AI 生成看起来正确但验证不可信”,以及如何用结构化规格和证据机制提升质量闭环的可信度