论文

从探索到规范:基于 LLM 的移动应用测试属性生成

From Exploration to Specification: LLM-Based Property Generation for Mobile App Testing

摘要

移动应用程序经常会遇到功能错误,这些错误不会导致崩溃,而是在特定用户交互下表现为不正确的行为。此类错误很难自动检测,因为它们通常缺乏明确的测试预言。基于属性的测试可以通过检查不同交互下的预期行为属性来有效地暴露它们。然而,它的使用在很大程度上取决于手动编写的属性,其构建困难且昂贵,限制了其在移动应用程序中的实际使用。为了解决这个限制,我们提出了 PropGen,一种为 Android 应用程序生成属性的自动化方法。然而,这项任务具有挑战性,原因有两个:应用程序功能通常很难系统地发现和执行,并且很难从观察到的行为准确地得出属性。为此,PropGen 执行功能引导的探索,从应用程序执行中收集行为证据,从收集的证据中综合属性,并根据测试反馈细化不精确的属性。我们实现了 PropGen 并在 12 个真实的 Android 应用程序上对其进行了评估。结果表明,PropGen 可以有效识别和执行有效的应用程序功能,生成有效的属性,并修复大多数不精确的属性。在所有应用程序中,PropGen 识别出 1,210 个有效功能,并正确执行了其中 977 个功能,而基线分别为 491 个和 187 个。它生成了 985 个属性,其中 912 个有效,并修复了测试期间暴露的 127 个不精确属性中的 118 个。根据所得属性,我们在主题应用程序的最新版本中发现了 25 个以前未知的功能错误,其中许多错误被现有的功能测试技术所遗漏。