我用多模态AI直接把UI稿丢进去,它自己完成了所有页面的探索式测试
从“写脚本跑自动化”到“丢设计稿自动探索”我们换了个玩法大家好我是某互联网大厂质量效能团队的测试架构师负责移动端UI自动化测试体系建设。今天聊一个我们最近做成的实验——把UI设计稿直接丢给多模态大模型让它自己完成对整个App的探索式测试。先上结果系统上线三个月覆盖了200个页面、3000个交互元素发现了47个传统自动化脚本漏掉的功能性Bug其中9个是P1级。整个过程零脚本、零用例编写。不是标题党。下面我把整个方案从头到尾拆一遍。一、UI自动化测试的“死循环”做移动端UI自动化的人都经历过这个死循环写脚本 → UI改版 → 脚本挂 → 修脚本 → UI又改版 → 脚本又挂我们团队之前维护着一套基于Appium的自动化回归脚本300多条用例每版本光修脚本就要花2-3人天。更坑的是——脚本只能验证“写死”的路径页面里多了个新按钮、弹了个意外弹窗脚本完全不知道该怎么办。探索式测试呢靠人工。测试同学拿着手机到处点凭经验找Bug。效率低、覆盖率看运气、没法规模化。我们一直在想一个问题能不能让AI像人一样“看”着屏幕做探索式测试直到多模态大模型的出现这个想法才有了落地的可能性。二、技术方案三层架构我们的系统叫VisionTest内部代号核心逻辑很简单——把UI设计稿当作“地图”让AI自己探索、自己判断。架构分成三层第一层视觉理解层—— 多模态模型看懂UI稿和实际截图第二层自主探索层—— AI Agent决策“下一步点哪里”第三层智能断言层—— AI判断“这个结果对不对”三、核心能力拆解能力一从UI稿里“读懂”要测什么这是整个方案的起点。我们把产品的Figma设计稿导出成高清截图直接喂给多模态模型我们用的是内部部署的Qwen-VL和GPT-4V的组合方案。模型要做三件事第一识别所有可交互元素。按钮、输入框、开关、滑动条、Tab切换——模型像人眼看设计稿一样把页面上所有“能点能滑”的东西都标出来。第二理解元素的功能语义。光知道“这里有个按钮”不够模型还要理解“这个按钮是干什么的”——“提交订单”“返回首页”“展开更多”——这些语义信息决定了后续探索的优先级和预期结果的判断依据。第三建立页面之间的跳转关系。设计稿里通常包含多个页面模型要识别出“点这个按钮会跳到哪个页面”形成一张页面关系图。这一步听起来简单但实际做起来有很多细节。比如设计稿里的“交互说明”注释“点击后弹出浮层”“长按显示菜单”这些信息在纯截图里是看不到的。我们的做法是把Figma的标注信息一起导出来作为额外的文本输入喂给模型。效果一个中等复杂度的页面20-30个交互元素AI解析耗时不到10秒准确率约92%。人工标注一个页面大概需要15-20分钟。能力二自主探索——像人一样“到处点”有了“地图”接下来就是“探索”。我们的AI Agent采用了一种基于好奇心的探索策略参考了美团KuiTest和VLM-Fuzz的思路第一步从首页开始。AI截取当前屏幕多模态模型分析页面列出所有可交互元素。第二步决定点哪个。AI不是随机乱点而是有策略地选择优先点没去过的元素覆盖率优先优先点语义重要的元素“提交订单”比“返回”优先级高如果某个元素点了之后页面没变化标记为“疑似异常”第三步执行点击并观察结果。AI通过ADB或XCTest执行点击操作然后再次截图让多模态模型判断页面有没有变化跳转了弹窗了还是没反应变化是否符合预期点了“提交订单”应该跳转到支付页而不是报错有没有出现异常白屏、崩溃、错误弹窗第四步记录并继续。把这次探索的结果记录下来哪个页面、点了什么元素、跳转到了哪里、有没有异常然后选择下一个元素继续探索。关键设计探索深度和广度的平衡如果AI无限制地探索下去一个App可能有成百上千个页面状态组合永远跑不完。我们的解决方案是两层探索广度优先先把所有页面都“逛”一遍每个页面只点2-3个核心元素快速建立全貌深度优先对重点页面支付、登录、核心业务流做深度探索穷尽所有交互元素同时设置探索上限——每个页面最多探索15个交互元素整个探索过程最多30分钟。超时自动停止并生成报告。真实案例有一次AI在探索“个人中心”页面时点了一个不起眼的“会员等级”入口跳转到了一个从未被任何测试用例覆盖过的页面——会员权益详情页。AI在这个页面上发现了一个Bug点击“立即续费”按钮后页面白屏。这个Bug如果靠人工探索大概率会被漏掉因为那个入口藏得太深了。能力三智能断言——AI自己判断“对不对”传统自动化测试最难的部分是断言——你得提前写死“预期结果是什么”。但探索式测试的难点就在于——你事先不知道会探索到什么怎么判断对不对我们的方案是让多模态模型自己判断“这个结果合不合理”。具体来说AI每执行一个操作后会问自己三个问题1. 页面状态是否正常——有没有白屏、崩溃、无限加载、乱码2. 操作是否有反馈——点击按钮后页面有没有变化如果点了半天没反应那就是问题。3. 跳转是否合理——点了“去支付”却跳到了“首页”这显然不合理。模型会根据设计稿和常识来判断跳转是否符合预期。最 tricky 的部分有些“异常”其实是正常的产品设计——比如点了“返回”弹出一个“确定要离开吗”的确认框。怎么区分“正常弹窗”和“异常弹窗”我们的解法是两层判断第一层规则兜底预置了一些硬规则——崩溃、白屏、ANR直接判失败第二层AI判断其他情况交给多模态模型根据UI稿和页面语义做综合判断初期误报率很高~40%后来我们加入了置信度阈值——AI判断置信度低于0.8的不直接判失败而是标记为“需人工复核”。同时用历史数据持续微调Prompt现在误报率降到了12%左右。四、踩过的坑说三个最痛的坑一设计稿和真实App的“买家秀”差距太大UI稿是完美的——字体、间距、颜色都整整齐齐。但真实App在不同设备、不同系统版本上渲染效果千差万别。AI在UI稿上识别出的元素在真机截图上可能位置偏移、样式变化、甚至直接消失。解法我们放弃了“像素级对比”的思路改用语义级匹配——不管按钮长什么样、在什么位置只要文字和功能语义一致就认为是同一个元素。这需要模型有很强的泛化能力而不是死记硬背UI稿的像素布局。坑二AI“迷路”了——在页面循环里出不來有些App的页面设计存在循环跳转——A页面点按钮到B页面B页面点按钮又回到A页面。AI如果没有记忆机制会一直在几个页面之间“打转”浪费大量时间。解法给AI加了一个访问历史记录。每次进入一个新页面先检查这个页面之前是否来过。如果来过就优先探索没去过的元素如果所有元素都去过了就“撤退”到上一个页面继续探索。坑三AI的“幻觉”问题多模态模型有时候会“脑补”一些不存在的元素。比如设计稿里明明没有“分享”按钮模型愣是说“这里有个分享按钮”。解法引入交叉验证机制——不光靠多模态模型看截图同时用UI Hierarchy视图树做二次验证。模型说“这里有按钮”我们去视图树里查一下如果确实有可点击的View就采信如果没有就标记为“疑似幻觉”并跳过。这个方案让元素识别的准确率从78%提升到了94%。五、效果数据说几个硬数据截止目前运行了三个月指标数据覆盖页面数200覆盖交互元素3000单次探索耗时15-30分钟全自动发现Bug总数47个其中P1级Bug9个传统脚本漏测的Bug47个全部AI误报率~12%人工复核耗时每版本约1小时最让我意外的一点47个Bug里没有一个是崩溃类的——全都是功能性异常跳转错误、状态不同步、数据展示不对。这类Bug恰恰是传统自动化脚本最难覆盖的因为脚本只会验证“写死”的路径而AI会到处乱点反而更容易撞上这些“隐蔽”的问题。有一次AI在探索“优惠券领取”流程时发现了一个很有意思的Bug——在某种特定操作顺序下先领一张券→返回→再进入→再领一张第二张券的领取按钮会变成灰色但没有任何提示。用户以为不能领了但其实后台是可以领的。这个Bug如果靠人工测试需要非常凑巧的操作顺序才能触发。AI在探索过程中随机撞到了这个路径直接报告了。测试团队的反应一开始大家觉得“AI到处乱点能测出什么”现在变成“每次跑完先看AI的报告再决定要不要人工补充测。”六、和传统方案的对比维度传统脚本自动化人工探索式测试VisionTestAI探索用例编写2-3人天/版本不需要不需要脚本维护高UI一变就挂不适用零维护覆盖率固定路径依赖经验全量遍历发现未知Bug的能力弱强强执行速度快慢中等15-30分钟误报率低低中等需人工复核可规模化难脚本膨胀难人力有限易加设备就行VisionTest不是要取代人工探索式测试而是把“重复性的基础探索”自动化了。测试同学现在可以把精力放在复杂业务流的深度测试上而不是花大量时间到处乱点找Bug。七、给同行的一些建议如果你也想尝试这个方向我有几点掏心窝的话1. 从“设计稿解析”开始别一上来就搞全量探索我们第一个月只做了一个功能——解析UI稿生成页面地图。这一步跑通了再逐步加上“自主探索”和“智能断言”。分阶段推进每阶段都有可交付的成果团队才有信心继续往下做。2. 选对模型比选“大”模型重要我们试过好几个多模态模型——GPT-4V、Qwen-VL、Gemini、UI-TARS。发现专门针对UI场景优化过的模型比如UI-TARS、CogAgent在元素识别准确率上明显优于通用模型。不是参数越大越好是越“懂UI”越好。3. 接受“AI辅助”的定位别指望“AI替代”AI探索式测试的输出是“疑似问题清单”不是“最终缺陷报告”。每个疑似问题都需要人工复核确认。我们现在的流程是AI跑完→生成报告→测试同学花1小时复核→确认的Bug提交TAPD。千万别让AI自动提交Bug——我们试过后果是开发同学在群里疯狂我“这什么鬼这也能算Bug”4. 先跑“非核心”页面别一上来就让AI去探索支付流程、登录流程这些核心链路——万一AI把生产环境搞出问题来你担不起这个责任。我们最开始只在测试环境的非核心模块个人中心、设置页、帮助中心上跑跑了两周没问题才逐步扩展到核心业务。安全第一效率第二。5. 把“探索结果”可视化AI跑完探索式测试如果只给一份文字报告没人看得进去。我们做了一个页面关系图的可视化工具——每个页面是一个节点每个跳转是一条边有问题的节点标红。产品、开发、测试一看就明白“哦这个页面没覆盖到”“这个跳转有问题”。可视化比任何报告都管用。最后多模态AI做探索式测试本质上是把“人眼看屏幕人脑做判断”这个过程自动化了。技术门槛没有想象中那么高——一个多模态大模型 一套设备控制能力 一个简单的探索策略就能搭出一个可用的原型。但这件事真正有价值的不是“技术有多牛”而是它改变了测试团队的工作方式——从“写脚本验证已知路径”变成了“让AI探索未知路径”。后者发现的Bug往往才是真正影响用户体验的。如果你团队还在被UI自动化脚本的维护成本折磨我建议你认真看看这个方向。把设计稿丢给AI让它自己去探索——这事儿真的能成。

相关新闻

TMS320C2x DSP源码级调试:从硬件配置到高级命令实战

TMS320C2x DSP源码级调试:从硬件配置到高级命令实战

1. 项目概述与核心价值如果你手头有一块德州仪器(TI)的TMS320C2x系列DSP评估板(EVM),并且正在为如何搭建一个高效的源码级调试环境而头疼,那么这篇文章就是为你准备的。我们不是在讨论一个现代IDE里点击几下…

2026/10/16 3:36:30 阅读更多 →
OMAP3530 GPMC异步接口时序深度解析与NOR/NAND Flash配置实战

OMAP3530 GPMC异步接口时序深度解析与NOR/NAND Flash配置实战

1. 项目概述与核心价值在嵌入式系统开发中,尤其是基于TI OMAP35x这类高性能应用处理器的项目中,外部存储器的访问性能往往是决定系统整体响应速度和稳定性的关键瓶颈。无论是从NOR Flash中执行代码(XIP),还是从NAND Fl…

2026/10/12 9:08:27 阅读更多 →
英雄联盟皮肤修改器终极指南:R3nzSkin技术深度解析与安全使用教程

英雄联盟皮肤修改器终极指南:R3nzSkin技术深度解析与安全使用教程

英雄联盟皮肤修改器终极指南:R3nzSkin技术深度解析与安全使用教程 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin R3nzSkin作为英雄联盟最受欢迎的皮肤修改工具,为玩…

2026/10/4 10:42:42 阅读更多 →

最新新闻

Flask+Redis+MySQL打造电商购书平台:抽奖与积分系统实战解析

Flask+Redis+MySQL打造电商购书平台:抽奖与积分系统实战解析

如果你搜Python练手项目,排名靠前的大概率是图书管理系统、爬虫、记账本这类。但真正能帮你把电商知识串起来的项目,至少要包含商品、订单、支付、库存,而线上购书平台如果再加上抽奖和积分兑换,基本就是把运营玩法也补齐了。我前…

2026/10/16 7:58:16 阅读更多 →
AI产品经理的决策框架:从Agent落地看人机协同设计

AI产品经理的决策框架:从Agent落地看人机协同设计

1. 这不是技术课,是AI产品决策现场的复盘笔记做了几个 Agent 项目后,我发现:真正拉开 AI 产品经理差距的,不是技术——这句话我是在凌晨三点改完第三版 workflow 编排逻辑、盯着日志里反复失败的 tool calling 调用链发呆时写下的…

2026/10/16 7:58:16 阅读更多 →
毕业论文AI率41%到9%:降AI的48小时自救与四步拆骨法

毕业论文AI率41%到9%:降AI的48小时自救与四步拆骨法

说实话,我从来没觉得“AI率”三个字会以那种方式砸在我脸上。周一上午十点,我正坐在实验室改论文的参考文献格式,手机屏幕弹出一条消息,是导师转发的学院系统检测报告截图。我那篇熬了快一个月的毕业论文初稿,疑似AI生…

2026/10/16 7:58:16 阅读更多 →
Python学习笔记:从虚拟环境到调试的完整成长路径

Python学习笔记:从虚拟环境到调试的完整成长路径

每次有人问我“Python学到什么程度算入门”,我的回答从来都是:去翻你自己的Python学习笔记。如果笔记里全是复制粘贴的代码,说明还在抄作业阶段;如果里面有报错记录、踩坑复盘、以及你自己写下的注释,那才算真正开始会…

2026/10/16 7:58:16 阅读更多 →
迭代学习控制开源代码:让重复作业系统一次比一次精准

迭代学习控制开源代码:让重复作业系统一次比一次精准

简介:迭代学习控制(ILC)是一类面向重复性任务的控制策略,核心思想是通过多次迭代修正控制输入,逐步逼近期望输出,在机器人、自动化生产线、航空航天等领域均有广泛应用。这份开源代码以单个MATLAB的m文件呈…

2026/10/16 7:58:16 阅读更多 →
nvidia-smi命令找不到?从驱动到容器彻底排查与修复指南

nvidia-smi命令找不到?从驱动到容器彻底排查与修复指南

“nvidia-smi: command not found”大概是 Linux 装显卡驱动时最经典、也最让人摸不着头脑的报错。我第一次遇到是在一台刚装完系统的服务器上,当时还以为是显卡坏了,折腾半天才发现只是驱动没装上。后来搞多了就明白,这个报错本身不复杂&…

2026/10/16 7:57:16 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →