[发明专利]一种应用程序的测试方法及系统有效
申请号: | 201210494967.0 | 申请日: | 2012-11-28 |
公开(公告)号: | CN103853649B | 公开(公告)日: | 2018-09-04 |
发明(设计)人: | 鲁晓宇;梁郁君 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 倪志华 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 测试 方法 系统 | ||
1.一种应用程序的测试方法,其特征在于,该方法包括:
对预设的操作树的节点进行遍历,并依据节点间的触发关系为所述节点添加子孙节点,对所述子孙节点进行深度优先遍历;所述操作树的节点为待测试应用程序当前页面的view对象的可执行操作;当遍历到的节点发生crash时,记录crash的发生路径,并继续遍历其他未遍历的节点;
依据crash的发生路径生成测试结果。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
从利用JAVA反射机制获取的对象数组中获得应用程序当前页面的view对象;
依据应用程序当前页面的view对象的isclickable属性,将不可操作的view对象删除,并在预设的属性值与可执行操作的对应关系中找到可操作的view对象的可执行操作;
将找到的可执行操作添加到所述操作树,作为所述操作树的根节点的子节点。
3.根据权利要求1所述的方法,其特征在于,所述依据节点间的触发关系为所述节点添加子孙节点具体包括:
遍历到的节点触发应用程序的当前页面生成新的view对象时,将新生成的view对象的可执行操作作为当前节点的子节点加入到操作树。
4.根据权利要求1所述的方法,其特征在于,所述对子孙节点进行深度优先遍历具体包括:
依据预设的深度优先遍历算法和遍历深度,对操作树的节点的子孙节点进行优先遍历;
当遍历到所述遍历深度对应的子孙节点时,遍历所述节点的兄弟节点及所述兄弟节点的子孙节点。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:
当对操作树的节点的遍历操作使所述节点的子节点变成不可操作状态时,再次遍历所述节点。
6.根据权利要求1所述的方法,其特征在于,
所述crash的发生路径为操作树的根节点到发生crash的节点之间所有节点的可执行操作;
所述crash的发生路径保存在安装所述待测试应用程序的终端的存储设备中。
7.根据权利要求1所述的方法,其特征在于,所述继续遍历其他未遍历的节点具体包括:
在记录完crash的发生路径后,对记录的crash的发生路径中的节点进行重新遍历,到达发生crash的节点时,遍历所述发生crash的节点的兄弟节点。
8.根据权利要求1所述的方法,其特征在于,
所述测试结果为crash的发生路径中可执行操作所属的view对象和所述view对象所属的页面;或,
所述测试结果为对crash的发生路径进行重现得到的crash场景。
9.一种应用程序的测试系统,其特征在于,该系统包括:遍历单元、生成单元;其中,
遍历单元,用于对预设的操作树的节点进行遍历,并依据节点间的触发关系为所述节点添加子孙节点,对所述子孙节点进行深度优先遍历;所述操作树的节点为待测试应用程序当前页面的view对象的可执行操作;当遍历到的节点发生crash时,记录crash的发生路径,并继续遍历其他未遍历的节点;
生成单元,用于依据crash的发生路径生成测试结果。
10.根据权利要求9所述的系统,其特征在于,该系统还包括:处理单元;
处理单元,用于从利用JAVA反射机制获取的对象数组中获得应用程序当前页面的view对象;依据应用程序当前页面的view对象的isclickable属性,将不可操作的view对象删除,并在预设的属性值与可执行操作的对应关系中找到可操作的view对象的可执行操作;将找到的可执行操作添加到所述操作树,作为所述操作树的根节点的子节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210494967.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种弹性固定装置
- 下一篇:一种高效节能加热底座