Despite over a decade of research, it is still challenging for mobile UI testing tools to achieve satisfactory effectiveness, especially on industrial apps with rich features and large code bases. Our experiences suggest that existing mobile UI testing tools are prone to exploration tarpits, where the tools get stuck with a small fraction of app functionalities for an extensive amount of time. For example, a tool logs out an app at early stages without being able to log back in, and since then the tool gets stuck with exploring the app's pre-login functionalities (i.e., exploration tarpits) instead of its main functionalities. While tool vendors/users can manually hardcode rules for the tools to avoid specific exploration tarpits, these rules can hardly generalize, being fragile in face of diverted testing environments and fast app iterations. To identify and resolve exploration tarpits, we propose VET, a general approach including a supporting system for the given specific Android UI testing tool on the given specific app under test (AUT). VET runs the tool on the AUT for some time and records UI traces, based on which VET identifies exploration tarpits by recognizing their patterns in the UI traces. VET then pinpoints the actions (e.g., clicking logout) or the screens that lead to or exhibit exploration tarpits. In subsequent test runs, VET guides the testing tool to prevent or recover from exploration tarpits. From our evaluation with state-of-the-art Android UI testing tools on popular industrial apps, VET identifies exploration tarpits that cost up to 98.6% testing time budget. These exploration tarpits reveal not only limitations in UI exploration strategies but also defects in tool implementations. VET automatically addresses the identified exploration tarpits, enabling each evaluated tool to achieve higher code coverage and improve crash-triggering capabilities.
翻译:尽管进行了十多年的研究,但对于移动用户界面测试工具来说,实现令人满意的效果仍然是挑战,特别是在具有丰富特点和大型代码基础的工业应用程序上。我们的经验显示,现有的移动用户界面测试工具容易被勘探停靠,因为工具在大量时间里被一小部分应用程序功能卡住。例如,一个工具在早期阶段登录了一个应用程序,而没有能够登入,自那以来,该工具被困在探索应用程序的预入功能(即,冷藏、冷藏)而不是其主要功能上。虽然工具供应商/用户可以手动硬编码工具规则,以避免具体的勘探停机坪,但这些规则很难概括化,面对被转用的测试环境以及快速的迭代。为了识别和解决勘探停机坪,我们建议VET是一种一般方法,其中包括在特定测试中的特定自动交换仪测试工具(AUT), VET在AUT上运行工具,用于某些时间,但用于某些时间和记录UT的跟踪,根据VET确定勘探停机坪的自动编码,从而在确认勘探停机坪的进度,从而确认其勘探活动模式。我们在勘探测试过程中,我们建议VET的测试工具。