震撼!一句话就让 AI 帮你做 UI 测试,多模态测试智能体 AUITestAgent 横空出世!

news2024/10/12 22:00:54

美团到店研发平台携手复旦大学周扬帆教授团队,共同开发了智能化终端测试工具AUITestAgent。该工具是第一个能够基于自然语言测试用例,自动化完成终端UI测试驱动、校验全流程的智能化测试工具。仅需输入自然语言形式的测试需求,AUITestAgent通过多个智能代理(Agent)的合作,自动化的进行从交互到检查的全链路测试过程,包括:自动与终端应用进行交互,然后执行对交互过程的检查,最后输出对应的测试结果。

以对美团App的测试为例,测试人员输入测试需求“查看景点门票频道中自然风光下第一个景点的评分,检查其评分在不同页面上是否一致”。如下方视频和图片所示,AUITestAgent从美团首页出发,自动搜索并进入美团门票频道,查看自然风光下的第一个景点的评分页面;然后,AUITestAgent将检查交互过程,从中提取所需的信息,进行判断并给出理由。

在美团中使用AUITestAgent,任务:查看景点门票频道中自然风光下第一个景点的评分,检查其评分在不同页面上是否一致。

在英文场景下, AUITestAgent表现也同样出色:在Facebook场景下输入测试需求:"Send a post with content 'Hello everyone' and like it, check whether it is correctly displayed, and whether the like button turns blue."如下方视频和图片所示,AUITestAgent将自动完成了推文的发送和点赞;然后,AUITestAgent提取所需的信息,并根据两个校验要求依次进行了检查。

在脸书中使用AUITestAgent,任务:发送一条内容为"Hello everyone"的推文并点赞,检查推文发送后是否在主页显示,检查点赞后点赞按钮是否变为蓝色

在实现上,AUITestAgent创造性地提出了交互与检查解耦的双流结构。通过将测试任务分解为交互和检查两个正交的子任务,降低了任务的复杂性,从而提高了任务的成功率和项目的稳定性。

例如,对原始测试需求"Send a post with content 'Hello everyone' and like it, check whether it is correctly displayed, and whether the like button turns blue" ,首先利用 Agent 将其分解为:“发送一条内容为" Hello everyone"的推文并点赞” 这一交互指令和“检查推文发送后是否在主页显示”、“检查点赞后点赞按钮是否变为蓝色” 这两个校验指令,再分别进行交互和检查。

具体而言,AUITestAgent的工作流程如下图所示,其包含三个主要部分:

1.任务分解模块(Task Decomposer)

AUITestAgent首先将原始的测试需求分解为交互指令和多个校验指令,分别作为后续交互和检查模块的输入。

2.交互模块(GUI Interaction Module)

接受分解后的交互指令,动态组织代理以处理不同难度的交互指令,实现与终端应用的图形用户界面(GUI)的直接操作,最后生成交互过程信息。

3.检查模块(Function Verification Module)

接受分解后的一到多条校验指令,采用多维度数据提取策略,对交互过程信息进行分析,形成最终的测试报告,包括测试结果和原因分析。

交互模块

交互模块通过多个基于MLLM的智能代理(Agent)协作,实现根据交互指令自动与终端应用进行交互,其工作流程如图所示:

图片

交互模块包含5个Agent,通过合作分别处理具体和抽象的交互指令:

对于明确指明每一步需要如何操作的具体交互指令,交互模块将会通过观察者(Observer)、选择者(Selector)和执行者(Exectuor)的合作,依次执行其中的每个操作。其工作流程如下:

首先,Observer识别当前UI页面中的所有可交互的UI元素并推断其功能,从而辅助后续Selector选择交互的目标UI元素。

Observer接受多模态的输入——UI截图和对应的XML文件,从而尽可能全面地识别UI页面中的所有可交互组件,并推断其功能。

对于XML文件,Observer会对其进行解析,收集文件中可交互的节点及其文本等辅助信息;

而对于UI截图,Observer使用来自美团的vision-ui视觉模型进行识别和OCR。

通过多模态的信息互补,Observer将处理后的UI截图和整理后的UI元素信息提供给MLLM,对UI元素的功能进行推断。

例如,对于美团首页,处理后的UI截图和MLLM的回复如下:

图片

然后,Selector根据自然语言形式的单步UI操作命令,从预置的UI操作集合中进行选择。

例如,当前交互指令是“点击外卖按钮”,Selector会根据Observer的输出和UI截图,生成"Click 4"操作命令。

最后,Executor在终端应用上执行由Selector生成的 UI 操作。

而对于那些抽象的交互指令,会引入两个新的Agent:规划者(Planner)和监控者(Monitor)。

Planner首先根据交互命令制定当前UI页面上操作计划,计划中的每一步都是自然语言形式的,然后再具体执行计划中的每一步。

举例而言,当处于上图的美团首页,指令是“查看景点门票频道中自然风光下第一个景点的评分”时,Planner生成的计划为:

“1. 点击搜索框,2. 输入'门票',3. 点击搜索”。

Monitor则是用于判断交互命令是否已经完成(即用户的意图是否已经实现)。

Monitor将基于当前的UI截图和已执行的操作进行判断。

如果命令已完成,交互模块输出交互过程信息并停止。

否则,Monitor将为Planner提供其判断理由作为制定计划的反馈。

检查模块

检查模块理解校验指令,从交互过程信息中抽取需要的信息,最后基于这些信息判断其是否符合测试用例中的预期。值得注意的是,对于多个校验指令,检查模块将逐一进行检查,例如对于“检查推文发送后是否在主页显示”和“检查点赞后点赞按钮是否变为蓝色”这两个校验指令,检查模块运行了两次分别进行信息抽取判断。其工作流程如下:

图片

检查模块从多维度分析,精准筛选并提取关键信息,既最大限度地保留有助于判断的要素,又有效过滤了无关数据,从而提高了判断的准确性和效率。多个维度包括:UI页面的功能描述、关键UI元素信息和到达当前状态的操作信息等。例如,在检查美团门票景点评分一致性时,对于某个景点的详情页,检查模块的分析如图所示:

图片

然后,检查模块会综合多个页面抽取的信息,进行最终的判断。如下图中所示,检查模块分别抽取了三个页面的评分,最后进行一致性判断:

图片

实验结果

我们使用两个自定义的基准(benchmark)分别评估了AUITestAgent执行交互和检查的性能。两个基准包括 8 个广泛使用的商业应用(即美团、小红书、豆瓣、Facebook、Gmail、LinkedIn、Google Play 和 YouTube Music),分别包括30个交互任务和40个检查任务。

同时,为了评估AUITestAgent在不同交互指令下的执行效果,我们根据完成交互指令所需的交互步数和交互指令的详细程度两个指标,将交互任务的难度分为三个级别:简单(L1)、中等(L2)和困难(L3)。对于每个级别,我们构建了10个交互任务,并且描述在英文和中文之间均匀分配。

交互效果评估

我们为工具的交互效果制订了4个指标,指标的制订既兼顾了测试场景的特殊性,也参考了其他基于LLM的Agent项目(也即两个baseline,MobileAgent和AppAgent)的指标制定。全面考虑工具完成交互的正确性、指令遵循的准确性和交互的执行效率,详细定义可见我们的论文。这4个指标分别为:任务成功率(Task Completion,TC)、正确步数占比(Correct Step,CS)、正确路径占比(Correct Trace,CT)和交互效率(Step Efficiency,SE)。

可以发现,AUITestAgent在L1中准确完成了 100% 的任务,在二级任务中完成了 80%,在三级任务中完成了 50%。此外,通过人工验证交互,AUITestAgent 生成并执行的交互中有 94% 与人类保持一致。这些指标表明,AUITestAgent 在将自然语言命令转换为UI交互方面显著优于baseline。

图片

检查效果评估

检查基准包含的40个任务,由20个校验指令对应的共40个交互过程信息组成。具体而言,每个校验任务关联了两个交互过程信息,一个是正确的,另一个包含了我们人工手动注入的异常。

由于我们是该领域的首个工作,我们选用了GPT-4o并为其构建了一个多轮对话的提示词作为实验基线方法(详细实验设计参见我们的论文),而在实际业务使用的场景下,我们使用了其他模型。

我们分别统计了工具在无异常的交互日志(Correct Function Verification)和存在异常的交互日志(Anomaly Detection)上的运行结果。其中,Oracle Acc.表示正确判断的任务的比例,只有当一个任务中的所有测试预言被正确判断时,才认为检查任务成功。同样地,Point Acc. 和 Reasoning Acc. 分别衡量单个测试预言判断的准确性和解释的正确性。此外,我们还统计了不同方法中大模型的Token消耗数,对比两者的成本。

图片

通过实验我们发现,AUITestAgent对注入的UI功能异常的召回率达到 90%,同时保持了仅 4.5% 的低误报率。由于异常检测比正确功能验证难度更大,AUITestAgent在异常检测上的效果略逊于其在正确功能验证上的效果;除此之外,GPT-4o在异常检测上的效果不佳,也证实了这一点。

落地效果评估

自AUITestAgent推出以来,以美团的视频场景测试为例,进行的10轮回归测试中,它发现了4个有效异常,突显了其在复杂商业应用 GUI 测试中的实际优势,其中一个异常如图所示。

图片

结论

我们提出了AUITestAgent,首个基于自然语言驱动,实现操作、校验全流程的智能化终端测试智能体。在这个工作中,创造性地提出了交互与检查解耦的双流结构,提高了驱动与校验的准确性,达到了可工业落地的水平。

为了评估AUITestAgent的效果,我们提出两个自定义基准,在其上的实验表明,AUITestAgent 在UI交互方面显著优于现有方法,并且能够召回 90% 的注入错误,误报率仅为 4.5%。

此外,在美团的落地使用过程中的效果展示了 AUITestAgent 进行复杂商业应用UI测试的实际收益,这些突显了使用AUITestAgent在实际终端中进行大规模自动化UI测试的潜力。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

福建谷器参加泉州市中小企业数字化转型试点工作启动会

为进一步加快推动试点城市工作,10月9日,泉州市产业数字化转型工作现场会暨2024年中小企业数字化转型试点工作启动会成功举办。出席本次会议的有福建省工业和信息化厅副厅长许永西、泉州市人民政府副市长雷连鸣等领导,及来自国家工业信息安全发展研究中心、中国工业互联网研究院…

newlibc memcpy 存在问题

背景 sdk 中发现 memcpy 函数没有达到预期,执行后,目的地址与源地址中的内容不一致。 复现方法 通过单步调试 memcpy 汇编代码,发现使用了 ldrh 指令,该指令在对 uncacheable memory 同时该 memory 非对齐的情况下,…

高性能计算平台(HPC)如何选型

选型高性能计算平台(HPC)非常复杂,需要考针对行业的痛点等多个因素进行考虑,来确保平台系统能满足特定行业和应用的需求。下面为大家列举了几个方面,大家可以参考。 1.计算需求 首先需要了解你需要处理的数据类型、计算…

如何给照片加文字?几个方法帮助你给照片轻松填字

如何给照片加文字?几个方法帮助你给照片轻松填字 给照片添加文字是常见的图片处理需求,尤其是在社交媒体、海报设计和个人相册制作中。以下是5款常用软件,它们能够帮助你轻松在照片上添加文字,满足不同层次的用户需求&#xff0c…

os镜像包一键安装

5、解压后点击运行旗胜PE维护系统。 6、插入U盘识别到U盘后点那个蓝色的制作启动U盘就可以了,设置用默认的就行不用改。 7、正在制作启动U盘中大约5分钟左右。 8、出现这个页面就制作完成了,可以关掉这个软件了 9、打开启动U盘就可以看到里面有os文件夹跟…

Python酷库之旅-第三方库Pandas(145)

目录 一、用法精讲 656、pandas.Timestamp.resolution属性 656-1、语法 656-2、参数 656-3、功能 656-4、返回值 656-5、说明 656-6、用法 656-6-1、数据准备 656-6-2、代码示例 656-6-3、结果输出 657、pandas.Timestamp.second属性 657-1、语法 657-2、参数 6…

Unity XR PICO 手势交互 Demo APK

效果展示 用手抓取物体,调整物体位置和大小等 亲测pico4 企业版可用, 其他设备待测试 下载链接: 我标记的不收费 https://download.csdn.net/download/qq_35030499/89879333

可观察性的三大支柱:统一日志、指标和跟踪

作者:来自 Elastic Elastic Observability Team 了解遥测信号,以便做出更好的决策、提高性能并增强客户体验。 多年来,遥测信号已经发生了重大变化 —— 如果你眨眼,你可能会错过它。事实上,关于可观察性的许多常识都…

DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中?

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 原文链接:DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中? 如何将 (.mdf) 和 (.ldf) 的SQL Server 数据库文件导入到当前数据库中? Step 1.登录到 Sql Server 服…

“云计算+高职”:VR虚拟仿真实训室的发展前景

随着科技的飞速进步,云计算与虚拟现实(VR)技术的结合正在深刻改变着教育领域,尤其是在高等职业教育中,这一融合为实训教学带来了革命性的变革。VR虚拟仿真实训室作为这一变革的前沿阵地,正展现出广阔的发展…

PCL点云处理之求法向量

求法向量干什么?将点渲染成面 1、一个点垂直于一个曲线的切线叫法线 2、在点云中取一块区域,用最小二乘将区域中的点云拟合成一个面(贴合在曲面上的一个切面)在相近的区域计算出n个这样的面,用这个面求出法向量&#…

LibreOffice SDK是LibreOffice软件的开发工具包

LibreOffice SDK是LibreOffice软件的开发工具包,它提供了一系列工具和库,使得开发者可以基于LibreOffice进行扩展或开发新的应用程序。以下是对LibreOffice SDK的详细介绍: 一、下载与安装 下载地址: 可以在LibreOffice的官方网站…

警惕!.rmallox勒索病毒:加密你的文件,勒索你的钱包

导言 在数字化时代,网络安全威胁层出不穷,其中勒索病毒已成为企业和个人用户面临的一大挑战。特别是.rmallox勒索病毒,以其复杂的加密算法和广泛的传播方式,给数据安全带来了严重威胁。本文91数据恢复将详细介绍.rmallox勒索病毒…

SCSI-8.UFS_RPMB

SCSI-8.UFS_RPMB RPMB 介绍 **RPMB(Replay Protected Memory Block)**是一种基于硬件的安全存储区域,其结构设计旨在确保数据的机密性、完整性以及防重放攻击的能力。RPMB通常嵌入在eMMC、UFS等存储设备中,由专用硬件电路管理和…

TCN-Transformer时间序列预测(多输入单预测)——基于Pytorch框架

1 数据集介绍 我们使用的数据集包含以下几个重要的属性: date(日期) open(开盘价) high(最高价) low(最低价) close(收盘价) pre_close&…

搜索如何加速你迈向 “AI 优先” 的步伐

作者:来自 Elastic Hayley Sutherland 人工智能与搜索的结合使企业智能达到了新的水平,自然语言处理 (NLP)、基于机器学习 (ML) 的相关性、向量/语义搜索和大型语言模型 (LLMs) 等技术帮助组织最终释放未分析数据的价值。组织需要搜索和知识发现技术来发…

uniapp 整合 OpenLayer3 - 全图、切换底图、导航、定位

一、全图 主要代码: // 获取当前可见视图范围 //console.log(this.map.getView().calculateExtent()); // 设置中心点 //this.map.getView().setCenter(transform([125.33,43.90], EPSG:4326, EPSG:3857)); // 设置层级 //this.map.getView().setZoom(10);// 中心…

【ProtoBuf】ProtoBuf基础与安装

本篇文章介绍 C 使用方向 文章目录 ProtoBuf简介ProtoBuf安装WindowsLinux ProtoBuf简介 ProtoBuf(全称为 Protocol Buffer)是一种序列化结构数据的方法 序列化是将对象转换为可存储的或传输的格式的过程,通常用于数据交换或持久化存储。我们在C/Java中编写的类不…

JAVA-数据结构-排序

1.直接插入排序 1.原理&#xff1a;和玩扑克牌一样&#xff0c;从左边第二个牌开始&#xff0c;选中这个&#xff0c;和前面的所有牌比较&#xff0c;插在合适的位置 public static void insertsort(int[] arr){//直接插入排序for (int i 1; i < arr.length; i) {//此循环…

SSD融合FERPlus模型实现面部情绪识别

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…