0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AppAgent让移动App应用测试更轻松

vliwulianw 来源:软件质量报道 2023-12-26 10:26 次阅读

AppAgent 的创新技术值得我们测试人员的关注。

最近大语言模型(LLMs)的进展导致了智能代理(Agent)的创建,这些代理能够执行复杂的任务。而由腾讯团队开发的AppAgent, 其智能代理能力可以用于操作任何 App,它在 50 个复杂手机任务上展示了强大的能力。

这项技术通过引入一种基于大型语言模型(LLMs)的多模态智能代理(Agent)框架,赋予了智能体操作智能手机应用的能力。与传统的智能助手如 Siri 不同,AppAgent 不依赖于系统后端访问,而是通过简化的操作空间来操作智能手机应用程序,可以模拟人类的点击和滑动等操作,直接与手机应用的图形用户界面(GUI)互动。这种独特的方法不仅提高了安全性和隐私性,还确保了智能体能够适应应用界面的变化和更新,从而扩大了它在各种应用程序中的适用性。

AppAgent 的核心在于其创新的学习方式,智能体可以通过自主探索或观察人类演示来学习如何导航和使用新应用。在自主探索过程中,。这个过程还可以通过观察少数几个人类演示来加速,使智能体能够更快地理解复杂功能。

AppAgent分为两个阶段,分别称为探索阶段和部署阶段。在自主探索阶段,AppAgent智能体通过一系列预定义的动作与应用互动,观察不同应用程序的用户界面交互(每个动作带来的界面变化),AppAgent与智能手机应用程序进行交互,并从结果中学习,所学到的知识被精心编制成文件(构建知识库)。一旦这个学习阶段完成,AppAgent变得擅长使用应用程序,就准备好行动了,即在探索阶段之后的部署阶段,AppAgent利用编制在此文档中的信息来高效地操作和导航应用程序,完成不同应用程序中的各种复杂任务。

ab92392a-a217-11ee-8b88-92fbcf53809c.png

(图1 框架的两阶段方法:探索阶段和部署阶段)

为了验证其实用性,研究团队对 AppAgent 进行了广泛测试,覆盖了社交媒体、电子邮件、地图、购物以及复杂的图像编辑工具等 10 种不同的应用中的 50 个任务。测试结果证明,AppAgent 在处理各种高级任务方面表现出色,显示出其适应性、用户友好性以及高效的学习和操作能力。

1.实验环境

实验环境建立在Android操作系统的命令行界面(CLI)上,允许AppAgent与智能手机应用程序进行交互。代理接收两个关键输入:显示应用程序界面的实时截图和详细的交互元素的XML文件。为了增强AppAgent识别和无缝交互这些元素的能力,我们为每个元素分配了一个唯一的标识符。这些标识符要么来自XML文件中的资源ID(如果提供),要么是通过组合元素的类名、大小和内容构建而成。这些元素以半透明的数字叠加在截图上。这有助于AppAgent在不需要指定屏幕上精确位置的情况下准确交互,并增强了AppAgent在控制手机时的精度。

行动空间:AppAgent的行动空间反映了人们在智能手机上的常见交互方式:轻触和滑动,设计了四种基本功能,并用到Android的两个系统级的操作:

Tap(element : int):这个函数模拟对屏幕上标有数字的UI元素进行轻触。例如,tap(5)将点击标有“5”的元素。

Long_press(element : int):这个函数模拟对UI元素进行长按(1秒)。

Swipe(element : int, direction : str, dist : str):在指定方向(上、下、左、右)和距离(短、中、长)上滑动一个元素。例如,swipe(21, "up", "medium")将在元素“21”上向上滑动一段中等距离。

Text(text : str):为了绕过低效的虚拟键盘输入,这个函数在虚拟键盘可见时直接将文本输入到输入框中。例如,text("Hello, world!")输入字符串“Hello, world!”。

Back():系统级功能,帮助代理返回到前一个UI页面,特别适用于退出不相关页面。

Exit():特地的函数用于结束进程,通常在成功完成任务时调用。

这些预定义的动作旨在简化AppAgent的交互,特别是通过消除对精确屏幕坐标的需求,这对于大语言模型(LLM)准确预测来说可能会带来挑战。

2. 探索阶段

探索阶段是这个框架的核心。

在此阶段,AppAgent被分配一个任务,并开始自主与UI元素进行交互,通过试错学习智能手机应用程序的功能和特性

AppAgent使用不同的动作,并观察应用界面的变化,以了解其工作原理。由LLM驱动的AppAgent试图通过分析每个动作之前和之后的截图来弄清楚UI元素的功能和特定动作的影响。这些信息被编制成一个记录了对不同元素应用的动作效果的文档。

当一个UI元素被多次操作时,AppAgent将根据过去的文档和当前观察更新文档以提高质量。为了使探索更加高效,如果当前UI页面似乎与应用的主要任务无关,如广告页面,AppAgent将停止进一步探索UI元素。在这种情况下,它使用Android系统的Back()函数返回到前一个UI页面。

与随机探索(如深度优先搜索和广度优先搜索)相比,这种目标导向的探索方法确保代理专注于对应用程序有效操作至关重要的元素。AppAgent还利用LLM对用户界面的现有知识来提高探索效率。当AppAgent完成分配的任务时,探索停止。

通过观看演示进行探索。另一种常见且通常更有效的探索方法涉及AppAgent观察人类示范。这些演示为代理提供了高效使用应用程序的示例,特别是对于理解可能通过自主交互难以发现的复杂功能。在这种方法中,一个人类用户操作应用程序,而AppAgent观察并记录人类使用的元素和动作。这种策略缩小了探索空间,防止代理与无关的应用页面进行交互,使其与自主交互相比成为更加简化和高效的方法。

3. 部署阶段

在探索阶段之后,代理已经具备了执行复杂任务的能力,这是基于其积累的经验。当给定任务时,代理遵循一种逐步的方法,每一步都包括对当前UI截图的访问和动态生成的文档,详细说明了UI元素的功能以及动作对当前UI页面的影响。提示还提供了所有可用动作的详细解释。

在每一步中,代理首先被要求提供对当前UI的观察,然后阐述其对任务和当前观察的思考过程。随后,代理开始执行动作,调用可用的函数。在每个动作之后,代理总结了交互历史和当前步骤中所采取的动作。这些信息被纳入下一个提示中,为代理提供了一种记忆形式。这种细致的方法增强了代理行动的可靠性和可解释性,从而促进了更明智的决策制定。当代理确定任务已经完成时,部署阶段停止,此时它可以通过执行Exit()动作退出流程。

aefef242-a217-11ee-8b88-92fbcf53809c.gif









审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GUI
    GUI
    +关注

    关注

    3

    文章

    635

    浏览量

    39472
  • XML技术
    +关注

    关注

    0

    文章

    15

    浏览量

    6007
  • CLI
    CLI
    +关注

    关注

    1

    文章

    79

    浏览量

    8521

原文标题:震撼:AppAgent让移动App应用测试更轻松

文章出处:【微信号:软件质量报道,微信公众号:软件质量报道】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    移动终端测试仪的技术原理和应用场景

    不同的实际环境中进行现场测试,评估手机的性能表现。 教学和培训:在电子通信相关的教学和培训中,便携综测仪可以学生更直观地了解手机的性能测试过程。 移动终端
    发表于 11-04 16:01

    Python常用函数大全

    在 Python 世界里,有一些宝藏函数和模块,它们可以你编程更轻松、代码更高效。这篇文章将带你一一认识这些神器,你的开发生活瞬间轻松不少!
    的头像 发表于 10-27 17:20 134次阅读

    移动电源的测试方法与测试标准规范

    移动电源测试系统是针对便携式移动电源综合性能测试的自动化测试软件,能够全面检测移动电源性能和质量
    的头像 发表于 08-23 11:41 521次阅读
    <b class='flag-5'>移动</b>电源的<b class='flag-5'>测试</b>方法与<b class='flag-5'>测试</b>标准规范

    谷歌针对Android和iOS版Chrome发布五项更新

    移动设备上搜索内容应该像在电脑上一样流畅。近期,我们针对 Android 和 iOS 版 Chrome 发布了五项更新,旨在您能够更轻松地在手机或平板电脑上进行搜索。
    的头像 发表于 08-09 16:56 677次阅读

    涂鸦App开发工具App SDK

    联网移动应用(IoTApp)开发打造的一系列SDK,为开发者提供了丰富的组件和示例代码,可以快速实现移动App对智能设备的连接、控制以及丰富的智能场景应用。今天要为
    的头像 发表于 05-24 08:15 686次阅读
    涂鸦<b class='flag-5'>App</b>开发工具<b class='flag-5'>App</b> SDK

    bootloader开多线程做引导程序,跳app初始化后直接进hardfualt,为什么?

    如标题,想做一个远程升级的项目,bootloader引导区域和app都是开多线程跑的,就是自己写了个小的任务调度器,没什么功能主要是想程序快速的响应,延时不会对其他程序造成堵塞,程序测试
    发表于 04-18 06:07

    茂森智能手机变身移动数据釆集器

    内建全球最小二维条码识读引擎,可透过萤幕触控按钮ScanKey®帮助用户精准快速轻松扫码,轻巧方便携带、随插即用,运用磁吸式USB Type -C接头连接一般智能手机,用户端主程序APP免修改,即可达到市售移动数据釆集器相同效果
    的头像 发表于 04-09 17:06 478次阅读
    茂森<b class='flag-5'>让</b>智能手机变身<b class='flag-5'>移动</b>数据釆集器

    具有增强AI功能的Minitab 22发布!新增多种新功能让数据分析更轻松

    以实现自动化,带来更智能、更快速、更轻松的可视化和数据分析。 通过添加史上首个专有自动化能力分布,Minitab 将彻底改变从业者分析过程的方式。自动化且增强的可视化将为客户提供更多强大的方法,以交互式
    的头像 发表于 03-27 10:48 464次阅读

    机智云开发者中心:移动APP应用开发更智能化

    移动应用市场的蓬勃发展中,开发者们面临着不断提高效率和创新的挑战。为了帮助开发者更好地实现移动应用开发的目标,机智云物联网的新版开发者中心,通过自动生成移动APP应用的功能,
    的头像 发表于 03-26 16:45 303次阅读
    机智云开发者中心:<b class='flag-5'>让</b><b class='flag-5'>移动</b><b class='flag-5'>APP</b>应用开发更智能化

    文心一言APP上线数字分身功能

    文心一言APP近日上线了一项令人兴奋的新功能——数字分身。这一功能允许用户轻松创建自己的个性化虚拟形象,为用户带来全新的互动体验。
    的头像 发表于 02-04 10:32 1080次阅读

    单片机供电模块测试方案

    用户自己设计的电路板或者是单片机电源,是否能够持续稳定的输出,对设备的运行状态有着至关重要的影响。所以用户自制的电源能否按工程师的设定要求给设备供电,是电源的一项基础测试。使用ITECH艾德克斯IT8500+系列电子负载,能让这项测试变得
    的头像 发表于 01-20 10:20 795次阅读
    单片机供电模块<b class='flag-5'>测试</b>方案

    APP盾的防御机制及应用场景

    移动应用(APP)在我们日常生活中扮演着越来越重要的角色,但随之而来的是各种网络安全威胁的增加。为了保障APP的安全性,APP盾作为一种专门设计用于防御
    的头像 发表于 01-20 08:31 2027次阅读
    <b class='flag-5'>APP</b>盾的防御机制及应用场景

    GBT 37729-2019《信息技术 智能移动终端应用软件(APP)技术要求》

    GB/T 37729-2019是中国国家标准之一,旨在规范智能移动终端应用软件(APP)的技术要求。该标准提供了移动终端APP的技术要求,包括功能性、性能效率、兼容性、易用性、可靠性、
    的头像 发表于 01-10 10:07 599次阅读

    使用App盾方案加固移动应用

    拥有对企业数据访问权限的易受攻击的应用程序是此类威胁的潜在渠道,并且在与受限制的商业环境进行交互时很少受到监控。大量的应用程序存储在App Store中,其中很大一部分是未经缓解的移动应用程序
    的头像 发表于 01-08 15:09 327次阅读

    加速数智化升级,华为云这款服务器企业上云更轻松

    (以下称:云耀 L 实例)成为焦点之一,通过其独特的性能和功能,助力广大中小企业实现数智化升级,轻松应对企业上云、用云的需求,真正实现“实惠更实用,‘11’都如愿”的目标。 开启上云的第一步 在数字化转型的路上,构建稳定、高
    的头像 发表于 12-01 09:55 224次阅读