基于粒子群优化算法的Android自动化测试方法技术

技术编号:14568968 阅读:108 留言:0更新日期:2017-02-06 02:44
本发明专利技术一种基于粒子群优化算法的Android自动化测试方法,不仅能够模块化进行应用控件的触发,并且能够生成更高效的输入类测试数据,在便捷的同时能够更加高效的触发软件异常。步骤一、将app安装在模拟器上,viewer模块负责开启view server服务,通过hierarchy viewer获取app的控件层次树信息;步骤二、以获取到的控件层次树信息为输入,PSO模块的build tree方法将其组织成便于遍历的树结构;步骤三、遍历build tree构造的控件层次树,每遍历一个节点就去test case模块中查找是否有历史测试用例;步骤四、调用test case模块中存储的测试用例集,即可实现自动化测试。

【技术实现步骤摘要】

本专利技术属于软件自动化测试领域,涉及一种基于粒子群优化算法的Android自动化测试方法
技术介绍
目前的Android应用自动化测试依旧需要大量的测试人员的手动参与,测试周期长,效率和覆盖率都较低,以及使用现有测试工具会导致代码冗余的问题,关键字驱动的测试框架是通过使用测试指令来操作测试用例生成的方法。目前基于关键字的测试框架与测试方法在Android应用的自动化测试中应用较为广泛。Robotium是以对Instrumentation框架的封装为基础的开源测试框架,主要用于模仿用户的场景测试。使用Robotium能够简易地为Android应用编写强健而有效的自动化黑盒及白盒测试。将关键字思想与Robotium的结合有利于测试代码模块化与测试数据分离,提高便利性与健壮性。粒子群优化算法(ParticleSwarmoptimization,PSO)又称为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法,引入粒子群优化算法可以使生成的输入类测试用例更加高效。Robotium框架:Android应用的自动化测试领域最为重要的研究成果就是GoogleAndroidSDK研发的Instrumentation框架,是现阶段绝大多数的自动化测试工具的核心。Robotium是目前使用率最高的Android开源测试框架,主要用于模仿用户的场景测试。使用Robotium能够简易地为Android应用编写强健而有效的自动化黑盒及白盒测试。Robotium是对Android自带测试类Instrumentation的一个封装,是另一种通过InstrumentationTestRunner来完Android交互式测试的架构,方便于测试人员直接调用封装好的接口。粒子群优化算法PSO(ParticieSwarmOptimization)是由Eberhart博士和Kennedy博士专利技术的一种新的全局优化进化算法,它源于对鸟类捕食行为的模拟。与遗传算法类似,粒子群优化算法同样基于群体(这里称作粒子群)与适应度。粒子群的个体(这里称作粒子)代表问题的一个可能解。每个粒子具有位置和速度两个特征。粒子位置坐标对应的目标函数值即可作为该粒子的适应度。算法通过适应度来衡量粒子的优劣,从而能够对解空间进行有效的优化。经过近十年的发展,针对Android自动化测试,已经有了很多方法,但是各种技术都有其优缺点和适用情况,目前还没有一种被公认的最为有效的方法,尤其是输入类测试用例生成方向。目前测试人员实现Android应用自动化测试往往是:通过UI检查工具从可视化的角度直观地获得UI布局设计结构和各种属性的信息,根据得到的属性信息结合自动化测试工具提供的方法对控件进行操作,从而触发应用程序的运行,在运行中监测每一步的输出信息和运行结果,从而发现应用程序的危险路径。首先,这样的Android应用自动化测试依旧需要大量的测试人员的手动参与,测试周期长,效率和覆盖率都较低。其次,现有的Android自动化测试框架在生成输入类的测试用例方面有极大的局限性,主要依靠经验判断,大大降低了自动化测试的效率与覆盖率。
技术实现思路
本专利技术一种基于粒子群优化算法的Android自动化测试方法,提供结合关键字、粒子群优化算法,以现有的Android自动化测试工具为基础,将粒子群优化算法引入到Android自动化测试中,不仅能够模块化进行应用控件的触发,并且能够生成更高效的输入类测试数据,在便捷的同时能够更加高效的触发软件异常。本专利技术通过以下技术方案实现。一种基于粒子群优化算法的Android自动化测试方法,包括以下步骤:步骤一、将应用安装在模拟器上,viewer模块负责开启ViewServer服务,通过hierarchyviewer获取应用的控件层次树信息;步骤二、以获取到的控件层次树信息为输入,在生成控件层次树的方法中将其组织成便于遍历的树结构;步骤三、遍历buildtree构造的控件层次树,每遍历一个节点就去存储测试用例模块testcase中查找是否有历史测试用例,有则继续遍历下一个节点,没有则调用生成测试数据模块PSO的createtestcase方法进行生成;所述的生成过程如下:根据控件层次树中的控件信息调用测试方法模块testmethod,查询该控件的测试用例需要用到的测试方法并记录关键字methodkey,而后createtestcase调用pre-seed方法生成测试数据,其中pre-seed中为粒子群优化算法的具体实现,根据数据类型生成随机序列,粒子群优化算法通过调整序列中的粒子最终得到最优测试数据,将测试数据与测试方法信息结合即为测试用例,存放于在testcase模块中;步骤四、调用testcase模块中存储的测试用例集,即可实现自动化测试。本专利技术的有益效果:本专利技术结合关键字与Robotium框架并且引入粒子群优化算法,使三者有效的结合起来,以自动化生成测试用例方法研究为重点,通过自动化的测试用例生成来避免低效的手动测试,进而通过对robotium的重新封装来避免代码冗余,最重要的是通过引入粒子群优化算法生成“最优”测试数据,这里的最优是指通过粒子群优化算法可以通过调整测试数据中粒子的选取和粒子的位置,使得以往一条测试触发一次或少数几次异常变为一条测试数据尽可能多的触发异常,进而能够以最少的测试用例达到理想的测试效果,提高测试效率和覆盖率。具体实施方式下面对本专利技术作进一步介绍。本专利技术的基于粒子群优化算法的Android自动化测试方法主要分为viewer、testmethod、PSO、testcase、report/log模块,其中PSO是整个方法的核心模块,负责粒子群优化算法对测试用例的生成,viewer负责获取被测应用的控件层次树信息,testmethod模块是对robotium中基本测试方法的的重新封装,负责减少代码冗余提供更高效的测试方法,report/log模块负责记录运行日志,方便查找异常信息、testcase模块用于存储已经生成的测试用例,便于复用以提高测试用例生成效率。当选定一个APK后,首先要连接其与viewer模块的通信,由于viewserver获得的控件层次树信息是纯文本的,所以需要将控件层次树信息传送给PSO模块的buildtree方法,将控件层次树信息整理成基于关键字的方便遍历的控件层次树,而后调用createtestcase方法,这个过程中会不断查询testcase中是本文档来自技高网
...

【技术保护点】
一种基于粒子群优化算法的Android自动化测试方法,其特征在于,包括以下步骤:步骤一、将应用安装在模拟器上,viewer模块负责开启View Server服务,通过hierarchy viewer获取应用的控件层次树信息;步骤二、以获取到的控件层次树信息为输入,在生成控件层次树的方法中将其组织成便于遍历的树结构;步骤三、遍历build tree构造的控件层次树,每遍历一个节点就去存储测试用例模块test case中查找是否有历史测试用例,有则继续遍历下一个节点,没有则调用生成测试数据模块PSO的create test case方法进行生成;所述的生成过程如下:根据控件层次树中的控件信息调用测试方法模块test method,查询该控件的测试用例需要用到的测试方法并记录关键字method key,而后create test case调用pre‑seed方法生成测试数据,其中pre‑seed中为粒子群优化算法的具体实现,根据数据类型生成随机序列,粒子群优化算法通过调整序列中的粒子最终得到最优测试数据,将测试数据与测试方法信息结合即为测试用例,存放于在test case模块中;步骤四、调用test case模块中存储的测试用例集,即可实现自动化测试。...

【技术特征摘要】
1.一种基于粒子群优化算法的Android自动化测试方法,其特征在于,包括以下步骤:
步骤一、将应用安装在模拟器上,viewer模块负责开启ViewServer服务,通过hierarchy
viewer获取应用的控件层次树信息;
步骤二、以获取到的控件层次树信息为输入,在生成控件层次树的方法中将其组织成便
于遍历的树结构;
步骤三、遍历buildtree构造的控件层次树,每遍历一个节点就去存储测试用例模块test
case中查找是否有历史测试用例,有则继续遍历下一个节点,没有则调用生成测试数据模块
PSO的createtestcase方法进行生成;所述的生成过程如下:根据控件层次树中的控件信息调
用测试方法模块testmethod,查询该控件的测试用例需要用到的测试方法并记录关键字
methodkey,而后createtestcase调用pre-seed方法生成测试数据,其中pre-seed中为粒子群
优化算法的具体实现,根据数据类型生成随机序列,粒子群优化算法通过调整序列中的粒子
最终得到最优测试数据,将测试数据与测试方法信息结合即为测试用例,存放于在testcase
模块中;
步骤四、调用testcase模块中存储的测试用例集,即可实现自动化测试。
2.一种基于粒子群优化算法的Android自动化测试系统,其特征在于,包括viewer模块、
testmethod模块、PSO模块、testcase模块、输出日志模块report/log;其中:
PSO模块负责粒子群优化算法对测试用例的生成;
viewer模块负责获取被测应用的控件层次树信息;
testmethod模块是对Android自动化测试框架robotium中基本测试方法的的重新封装,负责
减少代码冗余提供更高效的测试方法;
report/log模块负责记录运行日志,方便查找异常信息;
testcase模块用于存储已经生成的测试用例,便于复用以提高测试用例生成效率;
当选定一个APK后,首先连接其与viewer模块的通信,将控件层次树信息传送给PSO模块
的buildtree方法,将控件层次树信息整理成基于关键字的方便遍历的控件层次树,而后调用
createtestcase方法,过程中不断查询testcase中是否有可复用的测试用例,若没有则调用
pre-seed生成,若有则跳过,最终生成的所有测试用例均存储于testcase中。
3.如权利要求2所述的一种基于粒子群优化算法的Android自动化测试系统,其特征在于,
进一步地,viewer模块获取控件层次树信息采用以下方法:
3.1将Android设备上的4939端口映射到PC的某端口上,使得向PC的该端口号发包转发到
Android设备的4939端口上;
3.2打开ViewServer服务,连接Vie...

【专利技术属性】
技术研发人员:胡昌振马锐王达光刘月王赫晨
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1