【技术实现步骤摘要】
一种基于安卓虚拟机修改的有效测试框架
专利技术专利涉及软件工程,安卓应用的测试和动态分析等
技术介绍
安卓移动端应用经常存在各种各样的质量缺陷。针对这个问题,大量的面向移动应用的自动测试技术被开发出来,这些工具大部分都是动态运行的。很多测试工具通常为实现某种或者某几种测试算法(算法决定自动测试过程)而开发,不具备可扩展性。测试人员在实现新的测试工具时,需要面临已有的测试工具复用困难这一问题,他们不得不关注测试策略实现之外的很多细节。当前已经有很多测试框架可以方便测试工具的构建,用户基于框架能够简化工具的开发流程。框架封装底层的细节,提供可用的接口给开发者。然而这些框架在使用上具有局限性。首先,一些框架的接口设计不够友好,在使用时需要用户有一定的编程基础。部分框架需要移动设备的root权限,在使用上造成不便。此外,不少框架只对有限的测试和分析技术提供了支持,比如针对移动端应用丰富的交互,很多工具只提供支持GUI测试的接口。很多工具支持的测试和分析技术都比较单一,用户在开发测试工具时需要组合多个测试框架。最后,很多框架需要修改被测试应用的源码,修改过程很容易引入不可预知的错误。
技术实现思路
本专利技术的主要目的是提供一种针对安卓应用的有效测试框架实现技术,该框架具有方便性、有效性和高效性等特点。方便性是指框架能够方便地实现测试分析工具,有效地封装技术实现细节,减少工具实现过程的工作量。有效性则指框架对于多种技术的实现是有效的。高效性是指框架在测试应用时具有很好的覆盖能力,不会引入修改错误,引入的额外性能开销在可接受范围之内。本专利技术的技术解决方案:一 ...
【技术保护点】
1.一种基于安卓虚拟机修改的有效测试框架,包含服务端模块,客户端模块,可执行接口语言模块和插件扩展与管理模块;框架采用CS架构,安卓虚拟机内部的功能模块作为服务端,客户端接收用户输入的接口语言操作指令并进行解析,与服务端通过专门的应用层协议进行通信,能够读写安卓虚拟机的内部状态数据;其特征在于:所述服务端模块是基于安卓虚拟机修改的、测试框架运行在安卓移动设备上的模块;所述客户端模块是指运行在普通电脑上的测试框架模块,负责解析接口语言,与虚拟机内部通信;所述可执行接口语言模块,使用自定义的语言作为接口,提供给开发者使用;所述插件扩展与管理模块包含测试框架为部分开发者提供的可编程接口和相关规范,开发者能够在此基础上基于有效测试框架开发插件;所述安卓虚拟机指安卓ART虚拟机,它是JVM的一种实现形式,运行在安卓移动设备上,能够运行JAVA字节码程序;在安卓系统中,一个进程有一个ART虚拟机;所述JVM是指广义的JAVA虚拟机;所述有效测试框架是指能够用来帮助方便地实现面向移动应用的测试和动态分析工具,测试框架对于测试分析工具的开发和技术的实现是有效的;所述移动应用指在安卓移动设备上安装并运行 ...
【技术特征摘要】
1.一种基于安卓虚拟机修改的有效测试框架,包含服务端模块,客户端模块,可执行接口语言模块和插件扩展与管理模块;框架采用CS架构,安卓虚拟机内部的功能模块作为服务端,客户端接收用户输入的接口语言操作指令并进行解析,与服务端通过专门的应用层协议进行通信,能够读写安卓虚拟机的内部状态数据;其特征在于:所述服务端模块是基于安卓虚拟机修改的、测试框架运行在安卓移动设备上的模块;所述客户端模块是指运行在普通电脑上的测试框架模块,负责解析接口语言,与虚拟机内部通信;所述可执行接口语言模块,使用自定义的语言作为接口,提供给开发者使用;所述插件扩展与管理模块包含测试框架为部分开发者提供的可编程接口和相关规范,开发者能够在此基础上基于有效测试框架开发插件;所述安卓虚拟机指安卓ART虚拟机,它是JVM的一种实现形式,运行在安卓移动设备上,能够运行JAVA字节码程序;在安卓系统中,一个进程有一个ART虚拟机;所述JVM是指广义的JAVA虚拟机;所述有效测试框架是指能够用来帮助方便地实现面向移动应用的测试和动态分析工具,测试框架对于测试分析工具的开发和技术的实现是有效的;所述移动应用指在安卓移动设备上安装并运行的应用,由开发者发布在市场中;所述可执行语言是指测试框架提供给使用者的接口,使用者可使用该语言以脚本的形式开发测试工具,它和其他任何编程语言都是解耦合的。2.根据权利要求1所述的基于安卓虚拟机修改的有效测试框架,其特征在于:所述接口语言模块,测试者通过使用该语言能够方便地对目标应用进行测试和分析,该语言包括7种确定的操作类型和可变参数,它和具体的编程语言解耦合;因此,该测试框架的目标用户覆盖不具备编程能力的普通测试用户;所述安卓虚拟机修改模块通过修改虚拟机的解释器部分完成实现的,将解释器的执行上下文暴露给外部的测试分析工具;所述解释器能够逐条读取应用程序的字节码指令并进行运行,在这个过程中,指令执行产生的数据存储于ART虚拟机内存中或者执行寄存器中;所述解释器的执行上下文由数据组成,这些数据是解释器在解释执行应用程序的特定时刻产生的;安卓虚拟机修改模块将测试工具感兴趣的上下文数据有效地组织存储在虚拟机内存中,作为服务端,接收客户端的指令,既能够读取内存中的数据,又对应用的运行状态进行修改;所谓的对应用运行状态进行修改,表现为劫持程序的指令执行过程;所述劫持程序的指令执行过程,是指在解释器逐条执行指令过程时修改指令的执行过程;所述客户端模块负责解析接口语言并与安卓虚拟机内部的服务端进行通信交换数据,负责数据包的封装和解析;所述解析接口语言是指将用户输入的操作语句解析成为符合特定应用层协议规范的数据包的过程;所述应用层协议是指专门设计并实现的通信协议,它是一种同步的通信协议;所述插件扩展与管理模块负责管理框架所有的插件,并且提供可扩展的接口给插件的开发者;插件可以读写框架暴露的应用程序解释器执行上下文,作为框架基础设施和基于该框架实现的测试工具的桥梁而存在;框架已支持的测试分析技术包括并发测试、GUI测试、异常检测和代码覆盖统计。3.根据权利要求1所述的基于安卓虚拟机修改的有效测试框架,其特征在于:所述服务端模块和客...
【专利技术属性】
技术研发人员:蒋炎岩,孟占帅,马晓星,许畅,吕建,
申请(专利权)人:南京大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。