VET:识别并避免 UI 探索陷阱
软件工程
2021-07-15 v2
摘要
尽管已有十余年的研究,移动 UI 测试工具仍难以达到令人满意的有效性,尤其是在具有丰富功能和大型代码库的工业应用上。我们的经验表明,现有移动 UI 测试工具容易陷入探索陷阱(exploration tarpits),即工具在较长时间内被困于应用功能的极小一部分。例如,某工具在早期将应用登出且无法重新登录,此后该工具便困于探索应用的登录前功能(即探索陷阱)而非其主要功能。虽然工具供应商/用户可手动硬编码规则使工具避免特定探索陷阱,但这些规则几乎无法泛化,在面对变化的测试环境与快速的应用迭代时十分脆弱。为识别并解决探索陷阱,我们提出 VET,一种通用方法,包含针对给定特定 Android UI 测试工具与给定特定被测应用(AUT)的支撑系统。VET 在 AUT 上运行工具一段时间并记录 UI 轨迹,据此通过识别 UI 轨迹中的模式来发现探索陷阱。VET 随后定位导致或表现出探索陷阱的动作(如点击登出)或界面。在后续测试运行中,VET 引导测试工具预防或从探索陷阱中恢复。根据我们在流行工业应用上使用最先进 Android UI 测试工具的评估,VET 识别出的探索陷阱耗费了高达 98.6% 的测试时间预算。这些探索陷阱不仅揭示了 UI 探索策略的局限,也揭示了工具实现中的缺陷。VET 自动处理已识别的探索陷阱,使各被评估工具实现更高的代码覆盖率并提升触发崩溃的能力。
引用
@article{arxiv.2102.06377,
title = {VET: Identifying and Avoiding UI Exploration Tarpits},
author = {Wenyu Wang and Wei Yang and Tianyin Xu and Tao Xie},
journal= {arXiv preprint arXiv:2102.06377},
year = {2021}
}