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

    文章

    684

    浏览量

    41551
  • XML技术
    +关注

    关注

    0

    文章

    15

    浏览量

    6135
  • CLI
    CLI
    +关注

    关注

    1

    文章

    80

    浏览量

    8841

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    安科瑞园区解决方案:绿电直连更高效,低碳管理更轻松

    安科瑞
    jf_459710037
    发布于 :2025年07月18日 16:48:37

    HarmonyOS 代码工坊的指尖开发, APP 开发所见即所得

    过去,移动APP 的开发,往往是开发者在桌面仿真界面上的一场“隔空演练”。 虽然市面上已经有一些简化开发的工具,可以在开发桌面提供模拟移动端效果的窗口,但终究不是真实的移动端设备。
    的头像 发表于 06-24 12:08 ?234次阅读
    HarmonyOS 代码工坊的指尖开发,<b class='flag-5'>让</b> <b class='flag-5'>APP</b> 开发所见即所得

    【HarmonyOS 5】App Linking 应用间跳转详解

    ![](<> \"点击并拖拽以移动\")? 如何开发 开发前注意事项:使用 App Linking 需使用手动生成签名,自动签名将无法启动应用。 1.开通 App
    发表于 05-16 16:24

    APP自动化测试框架

    APP自动化测试框架是一套结合工具链、设计模式和技术规范的集成解决方案。以下是基于主流技术实践的核心要点总结: 一、核心模块构成 环境管理? 支持物理机/虚拟机/容器化部署,集成ADB、Appium
    的头像 发表于 05-07 07:35 ?225次阅读
    <b class='flag-5'>APP</b>自动化<b class='flag-5'>测试</b>框架

    秒验:重构APP用户体验与运营效率

    秒验:重构APP用户体验与运营效率 在移动互联网竞争日益激烈的今天,APP用户对便捷性和安全性的需求持续升级。传统短信验证码的“输入-等待-验证”流程,因延迟、操作繁琐等问题,已成为用户流失的重要
    的头像 发表于 02-28 10:40 ?452次阅读

    声智APP畅享多元模型体验

    重点并生成思维导图。 ——这不是科幻电影,而是声智APP用户正在经历的真实日常 ,它就像一个时刻待命的 “AI 超脑”,为用户的生活、工作和学习排忧解难,每一个复杂任务都变得轻松简单。 声智
    的头像 发表于 02-22 14:09 ?727次阅读

    App发布前完整测试的重要性:从Sonos的失败中汲取教训

    在当今数字化时代,App 已成为企业与用户沟通的关键桥梁,其质量直接关乎企业的声誉与命运。Sonos 公司的 App 更新失败事件,堪称一场灾难性的警示,淋漓尽致地展现了 App 发布前进行完整
    的头像 发表于 01-16 09:12 ?509次阅读

    LambdaTest发布新一代SmartUI,重塑可视化测试体验

    升级,旨在彻底改变传统的可视化测试工作流程,测试过程变得更加无缝、直观且高效。通过引入一系列创新功能和优化界面设计,LambdaTest的新一代SmartUI为用户提供了一个更加简洁明了的操作环境,使得
    的头像 发表于 01-02 13:56 ?551次阅读

    “兼具”性能与成本,INDEMIND新一代视觉方案机器人落地更轻松!

    机器人开发更快速,落地更稳健。
    的头像 发表于 12-06 14:46 ?501次阅读
    “兼具”性能与成本,INDEMIND新一代视觉方案<b class='flag-5'>让</b>机器人落地<b class='flag-5'>更轻松</b>!

    基于瑞萨FPB-RA4E2智能床头灯项目——4 APP制作

    App Inventor是一款由Google开发的在线移动应用开发平台,主要用于开发Android应用程序。它通过可视化编程方式,允许用户使用拖放和连接编程块来创建应用程序,无需编写复杂代码。App
    发表于 11-29 22:38

    谷歌Pixel Recorder应用用户参与度显著提升

    Google Pixel 的 Recorder 应用允许用户录制、转录、保存和共享音频。为了用户更轻松地管理和回顾自己的录音,Recorder 的开发者将目光锁定在功能强大的设备端大语言模型
    的头像 发表于 11-15 13:46 ?771次阅读

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

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

    Python常用函数大全

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

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

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