基于静态分析的Android动态测试方法研究

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:ocean0228
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Android应用软件具有事件驱动特性,主要通过GUI(图形用户界面)与用户进行交互。为了保证Android应用软件的可靠性和安全性,需要对其进行分析与检测,而对GUI进行遍历是其中的关键。目前,Android应用程序的分析与检测方法主要分为静态方法和动态方法。静态方法难以适应真实环境要求,分析结果的准确率较低,且有一定的误报率而动态方法的测试覆盖率较低,测试结果有时无法达到预期的效果。本文提出了一种基于静态分析的Android动态检测方法,在对应用程序数据流进行静态分析的基础上,构建应用程序活动转换图和函数调用图。通过遍历应用程序活动转换图图和函数调用图,模拟用户事件遍历应用程序。本文的主要工作和特色如下:(1)提出结合动静态分析的Android程序测试方法。利用静态分析的方法反编译程序安装文件,提取Android manifest.xml中的Activity注册信息,反汇编程序代码构建活动转换图。在静态分析程序数据流获取函数调用图之后,利用正则表达式精简得到仅与控件及监视器相关的函数调用图。(2)提出了基于应用程序活动转换图和函数调用图的GUI遍历方法。结合应用程序数据流,模拟用户事件和动作遍历GUI控件。(3)利用UiAutomator编写测试脚本遍历应用程序。充分利用UiAutomator良好的耦合性,模拟Android原生事件,动态运行、监控应用程序遍历程序Activity上的GUI元素。(4)通过实验验证本文提出的方法的有效性和适用性。利用本文提出的方法对Android应用程序进行测试,编写测试脚本遍历应用程序。实验证明本文提出的方法能够提高Activity覆盖率和GUI覆盖率,这种基于遍历的方法可以发现程序的敏感行为。通过对Android程序GUI测试研究,提高GUI测试覆盖率,可以帮助开发者提高测试效率和程序代码质量。在程序动态安全性方面,本文提出的方法在测试应用程序时产生的日志和测试报告可以为研究人员进行安全隐私方面分析,有助于提高应用程序的安全性。
其他文献
在当前的企业信息化开发过程中,利用基于B/S模式的J2EE多层体系结构进行Web应用开发是主要的解决方案。但是传统的J2EE开发,由于受其核心组件EJB模型缺陷的制约,应用并不广泛
随着计算机硬件性能的不断提高,嵌入式系统中软件系统的规模和复杂性不断增加,软件可靠性问题已成为嵌入式控制系统发展的一个瓶颈。传统的嵌入式软件可靠性保障技术主要关注
随着网络技术,多媒体技术以及计算机技术的发展以及人们对流媒体信息需求的增加,流媒体系统已经在因特网上开始了现大规模地应用。可是流媒体传输的实时性、高宽带性等特点使
随着GIS地图功能的完善,以及日益增大的地图数据量,GIS对计算机的软硬件要求也越来越高。目前,GIS在嵌入式设备上的应用也日益增多,但由于软硬件存在的局限性,内存容量有限,
随着计算机和互联网技术的发展,云计算作为一种新兴的商业分布式计算模型产生了。云计算是分布式处理、并行处理和网格计算的发展,通过将计算任务分布在处于不同地理位置的大量
SaaS (Software as a Service,软件即服务),是随着互联网技术的飞速发展与应用软件的日趋成熟而形成的一种新型软件服务供销模式。它通过互联网提供应用软件服务,消除了客户
联想记忆网络是一类特殊的人工神经网络,能够从不完整、含噪信息中获得全部信息。模糊联想记忆是模糊系统和神经网络的结合,兼具两种优点,已广泛应用在人工智能,模式识别等领
随着信息化时代的到来,Internet飞速发展,各种新的网络应用层出不穷,导致了各种网络问题的出现,给网络监测带来巨大的挑战。网络检测是保证网络正常运行的重要手段,合适的网
信息技术的快速发展使得越来越多的企业使用电子应用系统替代传统的电话、传真等方式。大量具有应用意义的事件在各应用系统之间进行传递。因此实时地搜集事件信息,并快速推
互联网技术日新月异的发展与网络数据库资源的日益丰富,为科研工作带来极大的帮助。学术论文、调研报告、分析数据等等学术论文写作所需要的参考资料得以便捷获取,与此同时论