随着移动互联网和智能终端的快速发展,移动应用的功能复杂度和界面交互复杂度持续提升,保证应用质量已成为软件工程领域的重要挑战。图形用户界面是用户与移动应用交互的主要入口,因此 GUI 测试在移动应用质量保障中具有重要作用。传统人工 GUI 测试能够发现可用性问题、交互异常和界面缺陷,但其高度依赖测试人员经验,测试过程耗时较长,难以适应移动应用频繁迭代和持续交付的需求。现有自动化 GUI 测试方法通常根据随机、模型、强化学习等策略自动探索应用界面,以提升测试效率和可重复性。然而,此类方法多以代码覆盖率或状态覆盖率作为主要优化目标,缺乏对应用业务逻辑和用户真实使用流程的理解,容易生成缺乏语义连贯性的测试序列,难以覆盖一些关键但复杂的功能场景。
在人工测试实践中,测试人员通常围绕具体测试场景组织测试用例,例如发送邮件、完成购物、查询天气或登录账户。这类测试场景不仅对应一组界面操作,更体现了应用功能目标、业务逻辑和用户意图之间的联系。基于这一观察,iSE 实验室联合慕尼黑工业大学软件工程与 AI 教席提出了一种基于大语言模型的场景引导移动应用 GUI 测试框架 ScenGen。该方法利用大语言模型对应用界面语义和测试场景意图的理解能力,将高层自然语言测试场景自动转化为可执行、可复现、可追踪的 GUI 测试序列,从而弥合低层界面交互与高层业务逻辑之间的差距。

具体来说,ScenGen 采用多智能体协作机制模拟人工测试过程,将场景化 GUI 测试划分为观察、决策、执行、监督和记录五个阶段。Observer 负责感知当前应用界面,结合传统计算机视觉技术、OCR 和多模态大语言模型识别界面控件、布局结构和语义信息;Decider 根据目标测试场景、当前 GUI 状态和历史操作记录进行场景驱动决策,确定下一步应交互的目标控件和具体操作;Executor 将决策结果转化为底层可执行指令,并在移动设备上完成点击、输入、滑动和返回等操作;Supervisor 对执行结果进行实时验证,判断应用是否完成加载、状态转移是否符合预期以及目标测试场景是否已经完成;Recorder 记录测试过程中的界面状态、操作序列、运行日志和执行结果,并将其组织为可复用的上下文记忆和测试脚本。通过上述协作机制,ScenGen 能够在测试过程中持续保持对场景目标的理解,避免偏离业务流程或陷入无关探索。
为提升场景引导测试的稳定性和可执行性,ScenGen 进一步设计了面向自动化测试的控件定位与自校正机制。由于多模态大语言模型具备较强的语义理解能力,但难以直接给出精确的像素级交互位置,ScenGen 将语义决策与控件定位分离:首先由大语言模型判断下一步操作意图和目标控件语义,再基于视觉识别结果进行控件匹配、控件预测和位置调整。对于识别结果缺失或界面布局复杂的情况,ScenGen 能够根据相邻控件和空间关系预测潜在目标位置;对于输入框等需要精确交互的控件,ScenGen 能够自动调整点击位置,使操作落在真实可交互区域。若执行后未产生预期状态变化,系统会触发自校正机制,重新分析失败原因并生成修正后的操作,从而提升测试过程的鲁棒性。
针对现有自动化 GUI 测试方法业务逻辑理解不足、测试序列语义连贯性较弱和动态界面适应能力有限等问题,本研究提出了一种以测试场景为核心、由大语言模型驱动的多智能体 GUI 测试框架。与传统以覆盖率为中心的自动化探索不同,ScenGen 重点关注真实用户目标和业务关键流程,通过语义感知、场景决策、执行验证和上下文记忆协同生成可复现测试脚本。该研究进一步拓展了大语言模型在软件测试中的应用方式,为构建面向业务逻辑、可解释且可复用的智能化GUI测试系统提供了新的技术路径。相关成果《 Scenario-Guided LLM-based Mobile App GUI Testing 》已发表于软件工程领域顶级期刊( CCF - A )ACM Transactions on Software Engineering and Methodology。
论文第一作者虞圣呈博士于 2024 年毕业于南京大学软件学院,现为慕尼黑工业大学博士后研究员,论文由南京大学陈振宇教授、房春荣副教授,和慕尼黑工业大学陈春阳教授共同指导完成。虞圣呈博士主要研究方向为智能化软件测试、GUI 自动化测试和众包测试,已围绕基于知识理解、场景建模和大语言模型的软件质量保障开展了一系列研究工作。该研究在前期场景化 GUI 测试工作的基础上,进一步引入大语言模型和多智能体协作机制,为移动应用自动化测试从界面探索走向业务理解提供了重要参考。
论文预印版链接:https://arxiv.org/abs/2506.05079
项目仓库地址:https://github.com/iGUITest/ScenGen