论文部分内容阅读
随着移动设备的快速发展以及Android平台的不断完善,移动应用成为了互联网品牌的标准输出模式。如何在瞬息万变的互联网环境中快速、低成本的上线应用功能也成为了应用开发人员的基本追求之一,因此hybrid应用应运而生。hybrid应用使用web模式开发核心功能,在原生开发框架上使用WebView(Android)、UIWebView(iOS)等控件运行web程序代码,集成了 web的跨平台开发和原生应用的良好交互的优势。为了保证应用的质量,自动化遍历测试技术的研究成为当前研究热点。然而现有的自动化测试技术以控件为最小细粒度进行动态测试,并不能完全覆盖hybrid应用中WebView控件内容。因此对hybrid应用程序的WebView页面进行事件自动化测试具有非常重要的现实意义。为了解决上述问题,本文提出了一种基于阈值优化的GUI模型遍历算法的WebView自动化测试方法,验证了遍历算法的有效性,并将自动化遍历测试应用于WebView的安全检测。该方法的目的是通过自动化测试遍历WebView页面的事件,从而为WebView组件自动化测试提供新的切入点。该技术使用静态分析筛选处使用WebView控件的hybrid应用,然后动态运行过程中出现的WebView页面进行GUI事件树简化,构建GUI模型,并根据测试过程中事件实时反馈的信息不断调整模型树,计算出合适的探索路径,以最少的事件触发完成页面遍历测试。本文的主要工作包括:1、通过静态分析技术分析测试应用,获取Activity以及对应的事件回调接口信息,通过以上信息为出现的Activity建立对应的输入事件集合。针对WebView中的HTML页面,获取当前的DOM树信息,然后在此基础之上通过获取到的Activity GUI信息构建能够覆盖WebView页面的GUI模型。2、针对已经建立好的GUI模型进行内外层状态空间简化,提出了一种同层比对节点特征的分组算法,简化GUI模型所需的树结构,从而减少GUI模型内层空间,改进了基于Q-learning算法的在遍历GUI模型的同时能根据反馈结果动态调整模型的路径探索方法。3、基于上述方法设计并实现了一个能够对WebView页面进行自动化遍历测试的系统GADroid,并将其与现有遍历测试工具进行对比实验,验证了有效性。然后将系统应用于WebView安全检测中,验证了系统的实用性。