[发明专利]基于插桩技术的安卓应用软件自动化测试方法有效
申请号: | 201410210389.2 | 申请日: | 2014-05-16 |
公开(公告)号: | CN103970659B | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 刘玉光 | 申请(专利权)人: | 刘玉光 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海科盛知识产权代理有限公司31225 | 代理人: | 赵继明 |
地址: | 313113 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 技术 应用软件 自动化 测试 方法 | ||
技术领域
本发明涉及一种软件测试方法,尤其是涉及一种基于插桩技术的安卓应用软件自动化测试方法。
背景技术
一、当前安卓应用自动化测试的难点
当前安卓应用软件的自动化测试一般采用robotium框架编写自动化测试用例。通过robotium框架,自动化测试用例在执行时,可以获得被测试安卓应用软件的UI信息,也可以模拟用户进行按键或触屏操作,从而可以对被测试安卓应用软件的逻辑进行测试。
但是,由于安卓系统安全性的限制,robotium框架在下面的自动化测试场景中存在问题:
1.测试用例要求对被测试安卓应用发出的Intent进行检查,以确认被测试安卓应用各模块内部之间的耦合、被测试安卓应用与安卓系统之间的耦合、被测试安卓应用与其他应用之间的耦合是否正常。
2.对很多与后台服务有关的安卓应用进行自动化测试时,为降低被测试安卓应用与服务器之间的耦合,使测试的软件逻辑清晰可控,测试用例要求对服务器进行Mock。
3.对使用了GoogleMap服务的安卓应用进行自动化测试时,测试用例要求对被测试安卓应用的Google MAP(V2)的相关功能数据进行检查,以确认被测试安卓应用的Google Map的相关软件逻辑正常。由于Google Map(V2)是作为第三方库的形式被测试软件集成,而且Google Map(v2)并不支持自动化测试,所以在robotium框架下无法对Google Map(v2)进行自动化测试。
二、程序插桩技术
程序插桩技术最早是由J.C.Huang教授提出的,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,从而实现测试目的的方法。
三、安卓应用反编译及smali汇编
安卓应用均采用Java开发,运行在android dalvik java虚拟机之上,可以使用工具将安卓应用进行反编译,得到资源文件和smali语言的源文件,也可以使用工具将反编译得到资源文件和smali语言的源文件再次编译打包,生成安卓应用。
smali是android dalvikjava虚拟机反编译后的采用的一种类Jasmin语法的汇编语言,它是Java语言的指令级描述,与Java语言有一一对应关系。其特点是:
(1)文件命名
在每个smali源文件中只能定义一个类,源文件的名称与类的名称相同,源文件的扩展名为smali,源文件所在的目录为类的包名。例如:类com.droidbox.sandbox.DroidboxGoogleMapWrapper所对应的源文件为com/droidbox/sandbox/DroidboxGoogleMapWrapper.smali。
(2)数据类型
smali语言中,有两种主要的类型:基本数据类型和复杂类型。复杂类型又分为对象类型和数组。
基本数据类型
smali语言中的基本数据类型与Java中的基本数据类型相同,采用一个字母表示,与Java中类型对应关系如下表所示:
Smali类
型V Z B S C I J F D
对应Java
类型void boolean byte short char int long float double
对象类型
smali语言中的对象类型即为Java中的类,采用的表示形式为:Lpackage/name/ClassName$InnerClassName;
例如:Lcom/droidbox/sandbox/DroidboxGoogleMapWrapper$MapHelper;
它等同于Java语言中的com.droidbox.sandbox.DroidboxGoogleMapWrappe r.MapHelper。
数组
smali语言中的数组类型即为Java中的数组,采用的表达形式为:[DataType。′[′的个数表示数组的维度。例如:′[I′等同于Java语言中的“int[]”,′[[Ljava/lang/String′等同于Java语言中的“java.lang.String[][]”。
(3)寄存器
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于刘玉光,未经刘玉光许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410210389.2/2.html,转载请声明来源钻瓜专利网。