基于Android的应用功能遍历测试方法

文档序号:6548585阅读:915来源:国知局
基于Android的应用功能遍历测试方法
【专利摘要】本发明公开了一种基于Android的应用功能遍历测试方法,属于软件测试【技术领域】,首先启动PC端的界面寻路算法引擎,然后PC通过dump界面信息的方法获取界面信息,PC端解析获取的界面信息、分析界面的布局和元素,PC端根据解析出来的界面信息进行深度遍历。本发明不必对被测应用进行预处理操作,不要求手机必须获取root权限,还可以对手机内置的应用,例如电话簿,短彩信等功能进行功能遍历。
【专利说明】基于Android的应用功能遍历测试方法
【技术领域】
[0001]本发明属于软件测试【技术领域】,特别是涉及一种基于Android的应用功能遍历测试方法。
【背景技术】
[0002]目前已有的功能遍历的技术都是基于Android手机提供的测试工具instrument进行实现,需要首先对被测应用进行预处理,主要内容就是生成一个针对被测应用的测试应用,再使用同一签名将测试应用和被测应用进行签名,然后将被测应用和测试应用都安装到手机上,接着使用android instrument的启动方式启动测试。
[0003]上面说到的功能遍历的方式的缺陷主要有以下几个,
[0004]一、是必须先获取到被测应用的安装文件,并且对其进行预处理。但是对于手机端已经装好的应用例如通讯录,短信,电话等功能就无法进行功能遍历操作;
[0005]二、很多功能遍历算法是随机无序点击,对功能测试的检测力度很弱;
[0006]三、通常的功能遍历算法或软件不能进行测试策略设置,导致用户主动干预度低,易用性差,还表现在一次遍历时间过长,算法或软件的易用性很低;
[0007]四、功能遍历过程中只能对系统底层异常信息进行捕获,对应用软件界面性的缺陷无法发现,比如软件已经报出错误提示框,软件界面存在乱码,软件界面分辨率发生了变化大于或小于终端屏幕分辨率导致界面显示不全或大面积空白屏幕的出现。

【发明内容】

[0008]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种可以对Android终端上已安装或未安装的应用进行前后台识别的功能遍历方法。
[0009]为实现上述目的,本发明提供了一种基于Android的应用功能遍历测试方法,包括以下步骤:
[0010]步骤一、启动PC端的界面寻路算法引擎;
[0011]步骤二、PC通过dump界面彳目息的方法获取界面/[目息;
[0012]步骤三、PC端解析获取的界面信息、分析界面的布局和元素;
[0013]步骤四、PC端根据解析出来的界面信息进行深度遍历或广度遍历。
[0014]本程序功能遍历过程通过界面寻路算法引擎来驱动,通过android系统提供的各种界面dump方法获取界面的控件和布局信息,并且按照界面寻路算法对获得的界面控件进行遍历,不必对被测应用进行预处理操作,更重要的是本发明不要求手机必须获取root权限,还可以对手机内置的应用,例如电话簿,短彩信等功能进行功能遍历。
[0015]较佳的,所述深度遍历按以下步骤进行:
[0016]Al、dump出界面的Layout并解析;
[0017]A2、通过界面相似度对比算法识别界面是否发生迁移;当界面发生迁移时,将迁移后的界面替换为当前界面,并记录当前操作;当界面未发生迁移时,执行下一个步骤;[0018]A3、判断当前界面是否还有未操作的控件;当前界面还有未操作的控件时返回执行步骤A2,否则进入下一步;
[0019]A4、判断是否达到临界条件;当达到临界条件时,遍历结束;当未达到临界条件时,判断是否所有的界面都遍历完成;当所有的界面都遍历完成时,遍历结束;当还有界面没有遍历完成时,返回执行步骤Al。
[0020]较佳的,所述步骤二中获取的界面信息为界面上的Π元素、各Π元素的层次关系和各Π元素自身的属性信息。
[0021]较佳的,步骤三中所述PC端解析获取的界面信息分析界面的布局和元素按以下步骤执行:
[0022]根据dump到的信息还原出界面UI控件树形结构;遍历控件树,识别可点击控件和特殊界面;所述特殊界面包括Dialog、PopList和PopMenu。
[0023]进一步的,运行过程中同时会记录测试路径信息、测试截图信息、性能数据、错误信息,用于以后分析。
[0024]本发明的有益效果是:
[0025]1、本发明不必对被测应用进行预处理操作,
[0026]2、本发明不要求手机必须获取root权限,还可以对手机内置的应用,例如电话簿,短彩信等功能进行功能遍历。
[0027]3、本发明能够自定义深度优先遍历、广度优先遍历策略、应用遍历深度、应用遍历广度和应用遍历时间长度。
【专利附图】

【附图说明】
[0028]图1是本发明一【具体实施方式】的流程示意图。
【具体实施方式】
[0029]下面结合附图和实施例对本发明作进一步说明:
[0030]如图1所示,一种基于Android的应用功能遍历测试方法,包括以下步骤:
[0031]步骤一、启动PC端的界面寻路算法引擎;
[0032]步骤二、PC通过dump界面信息的方法获取界面信息;
[0033]步骤三、PC端解析获取的界面信息、分析界面的布局和元素;
[0034]步骤四、PC端根据解析出来的界面信息进行深度遍历或广度遍历。
[0035]本程序功能遍历过程通过界面寻路算法引擎来驱动,通过android系统提供的各种界面dump方法获取android系统界面的控件和布局信息,并且按照界面寻路算法对获得的界面控件进行遍历,不必对被测应用进行预处理操作,更重要的是本发明不要求手机必须获取root权限,还可以对手机内置的应用,例如电话簿,短彩信等功能进行功能遍历。本发明能识别手机前后台各种错误、异常,且具备自学习能力,持续学习积累错误对象库,使发现错误的能力可持续性提高。
[0036]所述深度遍历按以下步骤进行:
[0037]Al、dump出界面的Layout并解析;
[0038]A2、通过界面相似度对比算法识别界面是否发生迁移;当界面发生迁移时,将迁移后的界面替换为当前界面,并记录当前操作;当界面未发生迁移时,执行下一个步骤;上述界面相似度对比算法是基于界面控件树相似度进行对比。
[0039]A3、判断当前界面是否还有未操作的控件;当前界面还有未操作的控件时返回执行步骤A2,否则进入下一步;
[0040]A4、判断是否达到临界条件;当达到临界条件时,遍历结束;当未达到临界条件时,判断是否所有的界面都遍历完成;当所有的界面都遍历完成时,遍历结束;当还有界面没有遍历完成时,返回执行步骤Al。
[0041]所述步骤二中获取的界面信息为界面上的Π元素、各Π元素的层次关系和各Π元素自身的属性信息。
[0042]步骤四中所述PC端解析获取的界面信息分析界面的布局和元素按以下步骤执行:
[0043]根据dump到的信息还原出界面UI控件树形结构;遍历控件树,识别可点击控件和特殊界面;本实施例中所述特殊界面为Dialog、PopList和PopMenu。
[0044]所述深度优先和广度优先遍历算法的界面遍历深度、遍历时间、遍历步数参数可配置,功能遍历运行过程完全由遍历算法驱动,每次分析界面后会记录点击控件、输入文字、测试路径信息、测试截图信息、性能数据、错误信息。android平台dump界面信息的方法包括通过viewserver和uiautomator来进行,本实施例中,米用viewserver来对android平台dump界面信息。
[0045]以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本【技术领域】中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
【权利要求】
1.一种基于Android的应用功能遍历测试方法,其特征在于包括以下步骤: 步骤一、启动PC端的界面寻路算法引擎; 步骤二、PC通过dump界面彳目息的方法获取界面彳目息; 步骤三、PC端解析获取的界面信息、分析界面的布局和元素; 步骤四、PC端根据解析出来的界面信息进行深度遍历或广度遍历。
2.如权利要求1所述的基于Android的应用功能遍历测试方法,其特征是:所述深度遍历按以下步骤进行: Al、dump出界面的Layout并解析; A2、识别界面是否发生迁移;当界面发生迁移时,将迁移后的界面替换为当前界面,并记录当前操作;当界面未发生迁移时,执行下一个步骤; A3、判断当前界面是否还有未操作的控件;当前界面还有未操作的控件时返回执行步骤A2,否则进入下一步; A4、判断是否达到临界条件;当达到临界条件时,遍历结束;当未达到临界条件时,判断是否所有的界面都遍历完成;当所有的界面都遍历完成时,遍历结束;当还有界面没有遍历完成时,返回执行步骤Al。
3.如权利要求1所述的基于Android的应用功能遍历测试方法,其特征是:所述步骤二中获取的界面信息为界面上的Π元素、各UI元素的层次关系和各Π元素自身的属性信肩、O
4.如权利要求1所述的基于Android的应用功能遍历测试方法,其特征是:步骤三中所述PC端解析获取的界面信息分析界面的布局和元素按以下步骤执行: 根据dump到的信息还原出界面UI控件树形结构;遍历控件树,识别可点击控件和特殊界面;所述特殊界面包括Dialog、PopList和PopMenu。
【文档编号】G06F11/36GK104035867SQ201410243645
【公开日】2014年9月10日 申请日期:2014年6月4日 优先权日:2014年6月4日
【发明者】刘金起, 潘科, 刘昕, 鲁金屏, 刘剑, 刘杨, 王鹏, 王淞 申请人:重庆泰凯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1