论文部分内容阅读
现阶段Android已经成为市场占有率最高的移动端系统,Android应用(Application,App)种类繁多,用户在使用App时,也就有了更多的选择空间。App若想在用户中形成口碑传播,就必须对其功能、性能、稳定性等方面严格要求。测试作为产品质量保障的重要环节,已经成为软件开发过程中必不可少的步骤。随着产品功能不断增多、用户需求不断变化,传统的手工测试已经难以满足日益增长的测试需求,因此越来越多的公司开始使用自动化测试手段。鉴于自动化测试在测试工作中的重要性,本文设计并实现了面向Android App的自动化测试系统,该系统对规范测试流程、缩短测试时间、提高测试效率、降低测试成本提供帮助,对保障产品质量,确保App按期发布提供强有力支持。本文的主要工作如下:(1)需求分析。结合待测App的业务现状及测试需求,将整个系统分为UI(User Interface)自动化测试、接口自动化测试、稳定性测试和测试报告管理等主要模块,以满足多种测试需求。本文对系统各个功能模块的需求进行了详细的用例分析及功能描述。(2)稳定性测试工具的设计。针对Android应用界面组件(Widget)的特点,构建了基于组件的GUI(Graphical User Interface)模型,采用增强学习指导的探索方式,对探索到的后续GUI状态进行充分测试,最后利用Q-Learning算法基于Monkey源码和Android框架实现了稳定性测试工具,并将其命名为Q-Monkey。通过Q-Monkey与Monkey的实验对比,表明了Q-Monkey在Activity覆盖率和发现Bug能力上的提升,证实了该工具的有效性和高效性。(3)设计并实现自动化测试系统。本系统采用前后端分离的开发模式,前端使用Vue框架和Element-UI组件,并用Webpack进行前端代码管理,实现快速调试,降低了前端开发难度,同时也使系统界面更加简洁实用;后端使用Spring Boot框架,内置Tomcat容器,使系统部署更加容易;使用Spring Security框架和JWT(Json Web Token)在保证系统安全性的同时也实现了系统权限的可配置化。