Android应用自动化测试中UI人机交互方法的设计与实现
作者单位:北京邮电大学
学位级别:硕士
导师姓名:徐国爱
授予年度:2021年
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:随着移动互联网的快速发展,移动应用程序逐渐改变了人们的日常生活方式。在应用市场中的应用数量指数级增长的同时,应用安全设计缺陷和恶意程序的增长也带来了严重的安全威胁,对当前移动应用自动化测试技术提出了挑战。当前,国内Android应用市场中应用功能日益丰富,不仅限于社交类应用,用户与应用之间、用户与用户之间的关联越来越紧密。国内多数应用都涉及了用户账号的注册和登录功能,部分应用核心功能与用户账号紧密联系,有些应用甚至存在不注册账号或账号未登录状态则无法进入应用的情况。当前运行时状态分析的应用测试方法对于UI人机交互模式的应对仍然存在缺陷,现有的自动化测试工具都无法解决国内Android应用的账号注册和登录问题,导致对应用内容和账号相关功能的测试覆盖不全,很大程度上降低了测试覆盖率可以达到的上限。同时,部分应用为防止机器自动获取应用内容或出于安全考虑,在账号、财产等应用使用场景中融入了人机交互验证流程。由于通过验证通常需要复杂的认知识别,或具有一定逻辑约束的操作行为,当前Android应用自动化测试工具亦不能很好地应对。针对上述现状中存在的问题,本文实现了基于UI人机交互方法的Android应用自动化测试工具,主要工作如下:1.提出一种适用于国内Android应用的账号注册和登录流程引导方法,以及账号注册和第三方应用账号关联登录方法。根据应用UI与用户交互的特点和UI控件间关系特点,对国内应用常见的引导模式和注册登录流程交互方法进行设计与实现。2.提出一种国内Android应用中常见人机交互验证模式的应对方法。结合目标检测和图像处理技术实现了图像验证码和滑块验证方法。3.基于上述方法实现了自动化测试工具,并根据不同UI交互场景设计实验以验证工具的可行性和有效性。实验结果表明,上述UI交互方法可以完成国内多数Android应用的账号引导、注册和登录及人机交互验证流程,同时对应用的测试覆盖率具有较好的提升效果。