【技术实现步骤摘要】
本专利技术属于软件自动化测试领域,涉及一种基于粒子群优化算法的Android自动化测试方法。
技术介绍
目前的Android应用自动化测试依旧需要大量的测试人员的手动参与,测试周期长,效率和覆盖率都较低,以及使用现有测试工具会导致代码冗余的问题,关键字驱动的测试框架是通过使用测试指令来操作测试用例生成的方法。目前基于关键字的测试框架与测试方法在Android应用的自动化测试中应用较为广泛。Robotium是以对Instrumentation框架的封装为基础的开源测试框架,主要用于模仿用户的场景测试。使用Robotium能够简易地为Android应用编写强健而有效的自动化黑盒及白盒测试。将关键字思想与Robotium的结合有利于测试代码模块化与测试数据分离,提高便利性与健壮性。粒子群优化算法(ParticleSwarmoptimization,PSO)又称为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法,引入粒子群优化算法可以使生成的输入类测试用例更加高效。Robotium框架:Android应用的自动化测试领域最为重要的研究成果就是GoogleAndroidSDK研发的Instrumentation框架,是现阶段绝大多数的自动化测试工具的核心。Robotium是目前使用率最高的Android开源测试框架,主要用于模仿用户的场景测试。使用Robotium能够简易地 ...
【技术保护点】
一种基于粒子群优化算法的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模块中;步骤四、调用 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。