[发明专利]一种应用程序的测试方法及系统有效
申请号: | 201210494967.0 | 申请日: | 2012-11-28 |
公开(公告)号: | CN103853649B | 公开(公告)日: | 2018-09-04 |
发明(设计)人: | 鲁晓宇;梁郁君 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 倪志华 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 测试 方法 系统 | ||
本发明提供了一种应用程序的测试方法及系统,该方法包括:对预设的操作树的节点进行遍历,并依据节点间的触发关系为所述节点添加子孙节点,对所述子孙节点进行深度优先遍历;所述操作树的节点为待测试应用程序当前页面的view对象的可执行操作;当遍历到的节点发生crash时,记录crash的发生路径,并继续遍历其他未遍历的节点;依据crash的发生路径生成测试结果。根据本发明提供的技术方案,能够提高应用程序中测试功能点的覆盖率。
【技术领域】
本发明涉及自动化测试技术,尤其涉及一种应用程序的测试方法及系统。
【背景技术】
自动化测试中测试用例的编写成本较高,因此在日常的应用程序测试中,利用应用程序的所有操作作为测试用例对应用程序进行测试。
目前,在Android平台中通常使用Monkey工具对应用程序进行测试,Monkey工具是一款强大的应用程序测试工具,在对应用程序进行测试时,Monkey工具是通过向应用程序页面中view对象随机发送点击事件或按键事件来随机测试应用程序的对象,因此Monkey工具最大的缺点是操作的随机性较大,因此在对应用程序进行测试时,无法保证测试功能点的覆盖率,导致应用程序的测试不全面;而且,Monkey无法对发生崩溃(crash)的对象的操作路径进行记录,因此当crash发生时无法依据之前的操作路径进行复现,也就得不到应用程序从初始状态到crash状态之间的有效操作路径,即使能够测试出应用程序中的问题,也不能在测试过后依据操作路径对应用程序中的问题进行修复。
【发明内容】
本发明提供了一种应用程序的测试方法及系统,能够提高应用程序中测试功能点的覆盖率。
本发明的具体技术方案如下:
根据本发明一优选实施例,一种应用程序的测试方法,包括:
对预设的操作树的节点进行遍历,并依据节点间的触发关系为所述节点添加子孙节点,对所述子孙节点进行深度优先遍历;所述操作树的节点为待测试应用程序当前页面的view对象的可执行操作;当遍历到的节点发生crash时,记录crash的发生路径,并继续遍历其他未遍历的节点;
依据crash的发生路径生成测试结果。
上述方法中,该方法还包括:
从利用JAVA反射机制获取的对象数组中获得应用程序当前页面的view对象;
依据应用程序当前页面的view对象的isclickable属性,将不可操作的view对象删除,并在预设的属性值与可执行操作的对应关系中找到可操作的view对象的可执行操作;
将找到的可执行操作添加到所述操作树,作为所述操作树的根节点的子节点。
上述方法中,所述依据节点间的触发关系为所述节点添加子孙节点具体包括:
遍历到的节点触发应用程序的当前页面生成新的view对象时,将新生成的view对象的可执行操作作为当前节点的子节点加入到操作树。
上述方法中,所述对子孙节点进行深度优先遍历具体包括:
依据预设的深度优先遍历算法和遍历深度,对操作树的节点的子孙节点进行优先遍历;
当遍历到所述遍历深度对应的子孙节点时,遍历所述节点的兄弟节点及所述兄弟节点的子孙节点。
上述方法中,该方法还包括:
当对操作树的节点的遍历操作使所述节点的子节点变成不可操作状态时,再次遍历所述节点。
上述方法中,
所述crash的发生路径为操作树的根节点到发生crash的节点之间所有节点的可执行操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210494967.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种弹性固定装置
- 下一篇:一种高效节能加热底座