分享自:

LLMDroid:基于大语言模型引导增强移动应用GUI自动化测试覆盖率

期刊:Proceedings of the ACM on Software EngineeringDOI:10.1145/3715763

研究背景与学术价值

近年来,随着大语言模型(LLM)的快速发展,将其应用于自动化移动应用图形用户界面(GUI)测试成为了一个前景广阔的研究方向。自动化移动应用GUI测试对于保障应用质量、辅助应用商店进行安全审查至关重要,其重要性在过去十年中持续凸显,催生了多种工具和方法。然而,现有的自动化测试工具(如基于模型的、基于深度学习的或基于强化学习的方法)在测试覆盖率方面仍有不足,常常陷入操作循环或过度聚焦于应用的有限页面子集。

与此同时,研究人员也开始探索利用LLM的能力来增强GUI测试。然而,现有的大部分基于LLM的测试方法(例如GPTDroid和DroidAgent)依赖于“逐步式LLM引导”,即每个测试动作都需要查询LLM来决策。这种模式存在两大显著挑战:1) 时间效率低:持续的LLM查询引入了显著的延迟和端到端耗时;2) 成本高昂:长时间的测试会带来巨大的经济开销,特别是使用高性能LLM时。这些问题阻碍了相关方法的广泛应用。

为了解决这些挑战,来自华中科技大学、Monash大学和OPPO的研究团队提出了一种名为LLMDroid的新型测试框架。该研究论文《LLMDroid: enhancing automated mobile app gui testing coverage with large language model guidance》于2025年6月发表在Proceedings of the ACM on Software Engineering期刊上。LLMDroid的核心目标是通过更高效地利用LLM来增强现有自动化移动GUI测试工具的覆盖范围,其创新在于放弃了全程的逐步式LLM引导,转而采用一种混合策略,在“自主探索”和“LLM引导”两个阶段之间智能切换,旨在以最少的LLM交互次数实现最大的测试覆盖率提升。本研究不仅评估了LLMDroid的有效性,还深入分析了其在成本效益方面的巨大潜力。

详细工作流程

LLMDroid的设计理念是作为一个增强框架,可以集成到现有的自动化测试工具上。它以代码覆盖率作为主要指导指标和效果评估标准,因其客观、可量化,并且是其他度量(如活动覆盖率)的基础。

整个工作流程围绕两个核心阶段构建,并在测试过程中根据代码覆盖率增长情况进行动态切换。

第一阶段:自主探索 在此阶段,LLMDroid启动并运行其“底层”测试工具(如DroidBot、Humanoid或FastBot)对应用进行常规的、自动化的探索测试。同时,LLMDroid并行运行两个关键模块: * GUI摘要模块:该模块负责利用LLM来理解和总结在自主探索阶段发现的页面。 * UI页面聚类:为了减少LLM交互频率,LLMDroid并非对每个新出现的页面都进行总结。它采用基于Dice系数的相似度算法来对UI页面进行聚类。只有当新页面与现有“页面簇”的根页面(该簇中首次出现的页面)的相似度低于预设阈值(研究表明0.6是最佳值)时,才会创建一个新的页面簇。 * 功能导向的GUI摘要:每当一个新的页面簇形成,LLMDroid会向LLM发送一个精心设计的提示,对代表该簇的根页面进行总结。提示中包含应用的描述和页面的HTML格式结构信息(使用标签表示可操作控件)。LLM的任务是生成该页面的概述,并分析列出页面中包含的功能列表,特别是导航相关的或核心功能,并按重要性排序。同时,LLM还被要求评估当前页面在整个应用中的相对重要性。LLMDroid会维护一个“最重要的页面”的动态列表,供后续阶段使用。整个摘要过程与底层工具的测试并行执行,不阻塞测试进程。

  • 覆盖率监控模块:该模块实时监控应用的代码覆盖率变化。
    • 低增长检测算法:研究者设计了一个动态阈值算法来检测覆盖率增长的瓶颈。算法计算相邻覆盖率数据点间的增长率,并维护一个历史平均增长率基线。当新的增长率数据到来时,算法会计算其与基线的差异,并动态调整一个低增长阈值。这个阈值会随着测试进程自然放缓而降低。
    • 触发LLM引导:设置一个大小为80个动作的观察窗口。当窗口内所有动作的覆盖率增长率都持续低于动态调整的阈值时,LLMDroid判定当前测试进入瓶颈,即“低增长状态”,并触发流程从自主探索阶段切换到LLM引导阶段。

第二阶段:LLM引导 当自主探索陷入瓶颈时,LLM引导阶段启动,旨在利用LLM的知识战略性地引导测试走向未探索的功能区域。此阶段包含三个模块: * 目标选择模块:此模块向LLM提供在GUI摘要阶段收集到的“最重要的页面”列表(每个页面附带其概述和最重要的未测试功能)。LLM的任务是从中选择一个目标页面以及该页面内的一个目标功能,作为下一步测试的方向。系统会优先引导LLM选择那些可能导航到新页面或触发更多代码执行的功能。 * 离线页面导航模块:这是一个旨在提升效率的关键设计。获得目标页面后,LLMDroid并不依靠LLM进行逐步导航,而是利用在自主探索阶段构建的页面转换图,通过Dijkstra算法找到从应用初始页面到目标页面的最短路径,并尝试“重放”这一路径。这包括处理模糊页面匹配、路径跳过等复杂情况,以应对动态内容。这种离线导航大大节省了测试时间,避免了LLM交互的延迟。 * 引导功能执行模块:成功导航到目标页面后,LLMDroid会与LLM进行一轮短暂的、针对性的逐步式交互,以完成具体目标功能的执行。LLM会根据当前页面的HTML描述和已执行步骤,判断是否完成功能,并指导下一步操作(如点击哪个控件、输入什么文本)。此过程被限制在最多5步以内,以控制成本和时间。

完成LLM引导后,无论是否发现了新页面,LLMDroid都会切换回自主探索阶段,让底层工具从当前页面继续探索,直到再次进入低增长状态,触发新一轮的LLM引导。如此循环往复,直至预设的测试时间耗尽。

主要研究结果

研究团队选取了三款基于不同技术的流行开源Android测试工具作为底层工具:DroidBot(模型驱动)、Humanoid(深度学习驱动)和FastBot(强化学习驱动)。评估数据集由来自Google Play排行榜的14款流行的闭源商业应用构成,更具现实世界代表性。每个工具及其LLMDroid增强版本在每个应用上运行60分钟,取三次运行中覆盖率的最高值。主要结果如下:

  1. 覆盖率提升显著

    • 平均而言,LLMDroid将三个工具的代码覆盖率提升了26.16%,活动覆盖率提升了29.31%。
    • 具体到各工具,LLMDroid-FastBot的代码覆盖率提升最为显著,达到30.30%;LLMDroid-DroidBot的活动覆盖率提升最高,达到41.29%。
    • 在评估的42个数据点(3个工具×14个应用)中,近一半(47.62%)的覆盖率提升率超过20%,证明了LLMDroid在不同工具和不同应用上的鲁棒性和一致性。
  2. LLM引导的有效性分析

    • 平均每小时,LLMDroid-FastBot触发约9.17次LLM引导实例,而DroidBot和Humanoid的增强版约为6.5次,这与底层工具的执行速度有关。
    • 根据设定的有效标准(引导后带来的覆盖率增长超过首次引导到最终覆盖率差值的5%),总体上有47.84% 的LLM引导实例是有效的。
    • 对无效实例的分析揭示了主要原因:包括LLM对控件功能的误解、导航到了已探索的页面、选择了无法触发新页面的功能等。值得注意的是,只有12.11%的无效实例是由于离线页面导航失败导致的,这证明了离线导航策略的有效性。
  3. 卓越的成本效益(核心亮点)

    • 与现有基于逐步式LLM引导的方法(GPTDroid和DroidAgent)相比,LLMDroid在显著减少LLM交互的同时获得了更高的覆盖率。
    • 交互频率与时间:LLMDroid每小时仅需约100次LLM交互,而逐步式方法则需要超过600次甚至1700次。更重要的是,LLMDroid的GUI摘要过程是并行的,其阻塞测试的LLM交互时间仅占测试总时长的约3%,而逐步式方法的阻塞时间占比高达60%-70%。
    • 经济成本:在相同的评估环境下:
      • 使用性能最佳的GPT-4o模型,LLMDroid-FastBot每小时成本仅为0.49美元,而达到相近代码覆盖率的DroidAgent使用GPT-4o-mini的成本为1.09美元。
      • 使用性价比高的GPT-4o-mini模型,LLMDroid-FastBot每小时成本低至0.03美元,却能实现GPT-4o版本94% 的代码覆盖率性能和FastBot原始覆盖率118.6% 的改进水平。这表明LLMDroid能以极低的成本获得接近最优的性能。
      • 即使是与成本同样较低的GPTDroid相比,LLMDroid在相近成本下实现了显著更高的代码覆盖率。

结论与价值

本研究提出的LLMDroid框架,通过“自主探索”与“战略LLM引导”相结合的创新范式,成功地解决了现有基于LLM的自动化GUI测试方法在时间效率和成本上的核心难题。其贡献不仅在于平均超过26%的代码覆盖率提升,更在于展示了一条高效、低成本集成LLM到移动应用测试领域的可行路径。

研究的核心亮点在于: 1. 方法论的创新:打破了“逐步式LLM引导”的固有思维,提出了一种混合、两阶段的协同工作流程,在最大化LLM战略指导价值的同时,最小化了其带来的开销。 2. 显著的性能提升:在三个主流测试工具和14个真实商业应用上验证了其广泛的有效性和通用性。 3. 卓越的成本效益:通过并发摘要、离线导航和选择性引导等设计,将LLM的使用成本降至极低水平(如GPT-4o-mini模型下每小时0.03美元),为LLMDroid的大规模实际应用铺平了道路。研究表明,无需依赖最昂贵的大模型,通过精巧的框架设计,即可利用性价比高的模型获得接近最优的测试效果。 4. 详尽的分析与开源:研究不仅报告了结果,还对LLM引导的失效案例进行了深入归因分析,为后续改进指明了方向。作者已将LLMDroid在三个工具上的实现代码、数据集、结果以及集成指南公开,以促进该领域的后续研究。

LLMDroid代表了利用LLM增强自动化软件工程任务(特别是移动应用测试)的一个新思路,它平衡了智能引导的“效果”与频繁查询的“成本”,具有重要的学术价值和广阔的工业应用前景。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com