CN107197070B - 基于事件序列的手机应用ui的广度遍历自动化测试方法 - Google Patents
基于事件序列的手机应用ui的广度遍历自动化测试方法 Download PDFInfo
- Publication number
- CN107197070B CN107197070B CN201710429461.4A CN201710429461A CN107197070B CN 107197070 B CN107197070 B CN 107197070B CN 201710429461 A CN201710429461 A CN 201710429461A CN 107197070 B CN107197070 B CN 107197070B
- Authority
- CN
- China
- Prior art keywords
- event sequence
- node
- empty
- entry
- entry event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/24—Arrangements for testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Abstract
本发明提供了一种事件序列的构建方法,具体涉及一种采用广度优先搜索算法用于手机应用UI的自动化测试的基于事件序列的手机应用UI的广度遍历自动化测试方法。该方法具体包括以下步骤:一是事件序列构建;二是元素跳转过程。本发明以广度优先搜索算法对应用UI进行遍历测试,既能在较短时间测试到移动应用的主界面功能尽快发现基本功能bug,又能不限制层次深度遍历到所有功能节点进行全面覆盖测试的测试方法。
Description
技术领域
本发明提供了一种事件序列的构建方法,具体涉及一种采用广度优先搜索算法用于手机应用UI的自动化测试的基于事件序列的手机应用UI的广度遍历自动化测试方法。
背景技术
目前对于手机应用UI进行自动化测试大多采用深度测试方法,深度测试是指应用深度优先搜索算法构建测试过程,它沿着树的深度遍历树的节点,尽可能深地搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。它的不足在于如果应用层次较深,无法在较短时间测试到移动应用的主界面(但是移动应用的主界面通常又布局了应用的主要功能),所以有的深度测试会设定一些层次深度限制,但这样又使得限制层次以下的节点无法遍历到。
广度优先搜索算法简称BFS,是一种图形搜索演算法。简单地说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。它是一种先生成的节点先扩展的策略,通过一层一层不断的扩展来达到搜索的目的。本发明主要综合考虑应用的UI布局特点,以广度优先搜索算法对应用进行遍历测试,这样既能在较短时间测试到移动应用的主界面功能尽快发现基本功能bug,又能不限制层次深度遍历到所有功能节点进行全面覆盖测试。
发明内容
为了解决上述技术问题,本发明提出了一种事件序列的构建方法及通过操作事件序列实现元素跳转的基于事件序列的手机应用UI的广度遍历自动化测试方法。
本发明的技术方案是:基于事件序列的手机应用UI的广度遍历自动化测试方法,该方法具体包括以下步骤:
一是事件序列构建,
二是元素跳转过程。
进一步,所述事件序列构建的具体步骤为:
步骤1.1:操作一个UI元素,并设为入口节点;
步骤1.2:解析当前界面元素;
步骤1.3:判断元素的入口事件序列是否为空:如果非空表示该元素的入口事件序列已经找到,把入口节点插入到序列首部则入口事件序列构建结束;如果为空表示该元素的入口事件序列还没有找到,把入口节点设为元素的父节点、同时设为当前节点,并设当前节点的父节点为当前节点;
步骤1.4判断当前节点是否为空:如果为空表示该元素的入口事件序列已经找到,则入口事件序列构建结束;如果非空表示该元素的入口事件序列还没有找到,把当前节点插入到序列尾部,并设当前节点的父节点为当前节点进行循环判断,直到当前节点为空,则入口事件序列构建结束。
进一步,所述元素跳转过程的具体步骤为:
步骤2.1选择一个UI元素,从当前界面跳到该元素;
步骤2.2判断元素在当前界面是否存在:如果存在表示该元素的跳转过程已经找到,则元素跳转过程结束;如果不存在表示该元素的跳转过程还没有找到,则继续进行下一步判断;
步骤2.3 :判断元素父节点在当前界面是否存在:如果存在表示该元素的跳转过程已经找到,操作元素父节点则元素跳转过程结束;如果不存在表示该元素的跳转过程还没有找到,获取该元素的入口事件序列继续进行下一步判断;
步骤2.4:判断该元素的入口事件序列是否为空:如果为空表示该元素的跳转过程已经找到,则元素跳转过程结束;如果非空表示该元素的跳转过程还没有找到,反向获取序列节点继续进行下一步判断;
步骤2.5:判断节点在当前界面是否存在:如果不存在表示该元素的跳转过程还没有找到,循环判断入口事件序列是否为空并进行相应操作,直到入口事件序列为空表示该元素的跳转过程已经找到,则元素跳转过程结束;如果存在表示该元素的跳转过程已经找到,操作节点后循环判断入口事件序列是否为空并进行相应操作,直到入口事件序列为空表示该元素的跳转过程已经找到,则元素跳转过程结束。
本发明的有益效果是:由于采用上述技术方案,本发明以广度优先搜索算法对应用UI进行遍历测试,既能在较短时间测试到移动应用的主界面功能尽快发现基本功能bug,又能不限制层次深度遍历到所有功能节点进行全面覆盖测试的测试方法。
附图说明
图1为本发明基于事件序列的手机应用UI的广度遍历自动化测试方法的事件序列构建的流程图。
图2为本发明基于事件序列的手机应用UI的广度遍历自动化测试方法的元素跳转过程的流程图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图1-图2所示,本发明基于事件序列的手机应用UI的广度遍历自动化测试方法,该方法具体包括以下步骤:
一是事件序列构建,
二是元素跳转过程。
所述事件序列构建的具体步骤为:
步骤1.1:操作一个UI元素,并设为入口节点;
步骤1.2:解析当前界面元素;
步骤1.3:判断元素的入口事件序列是否为空:如果非空表示该元素的入口事件序列已经找到,把入口节点插入到序列首部则入口事件序列构建结束;如果为空表示该元素的入口事件序列还没有找到,把入口节点设为元素的父节点、同时设为当前节点,并设当前节点的父节点为当前节点;
步骤1.4判断当前节点是否为空:如果为空表示该元素的入口事件序列已经找到,则入口事件序列构建结束;如果非空表示该元素的入口事件序列还没有找到,把当前节点插入到序列尾部,并设当前节点的父节点为当前节点进行循环判断,直到当前节点为空,则入口事件序列构建结束。
所述元素跳转过程的具体步骤为:
步骤2.1选择一个UI元素,从当前界面跳到该元素;
步骤2.2判断元素在当前界面是否存在:如果存在表示该元素的跳转过程已经找到,则元素跳转过程结束;如果不存在表示该元素的跳转过程还没有找到,则继续进行下一步判断;
步骤2.3 :判断元素父节点在当前界面是否存在:如果存在表示该元素的跳转过程已经找到,操作元素父节点则元素跳转过程结束;如果不存在表示该元素的跳转过程还没有找到,获取该元素的入口事件序列继续进行下一步判断;
步骤2.4:判断该元素的入口事件序列是否为空:如果为空表示该元素的跳转过程已经找到,则元素跳转过程结束;如果非空表示该元素的跳转过程还没有找到,反向获取序列节点继续进行下一步判断;
步骤2.5:判断节点在当前界面是否存在:如果不存在表示该元素的跳转过程还没有找到,循环判断入口事件序列是否为空并进行相应操作,直到入口事件序列为空表示该元素的跳转过程已经找到,则元素跳转过程结束;如果存在表示该元素的跳转过程已经找到,操作节点后循环判断入口事件序列是否为空并进行相应操作,直到入口事件序列为空表示该元素的跳转过程已经找到,则元素跳转过程结束。
Claims (1)
1.基于事件序列的手机应用UI的广度遍历自动化测试方法,其特征在于,该方法具体包括以下步骤:
步骤1:选择一个UI元素,并设为入口节点;
步骤2:解析当前界面元素;
步骤3:判断元素的入口事件序列是否为空:如果非空表示该元素的入口事件序列已经找到,把入口节点插入到序列首部则入口事件序列构建结束;如果为空则进行步骤4;
步骤4:如果为空表示该元素的入口事件序列还没有找到,把入口节点设为元素的父节点、同时设为当前节点,并设当前节点的父节点为当前节点;
步骤:5:判断当前节点是否为空:如果为空表示该元素的入口事件序列已经找到,则入口事件序列构建结束;如果非空则进行步骤6;
步骤6:把当前节点插入到序列尾部,返回步骤4,直到当前节点为空,则入口事件序列构建结束;
步骤7:任选一个目标UI元素,从当前界面跳到该元素;
步骤8:判断目标UI元素在当前界面是否存在:如果存在表示该元素已经找到,则元素跳转过程结束;如果不存在则进行步骤7;
步骤9:判断目标UI元素的父节点在当前界面是否存在:如果存在表示该元素的跳转过程已经找到,操作元素父节点后则元素跳转过程结束;如果不存在则获取该元素的入口事件序列则进行步骤10;
步骤10:判断入口事件序列是否为空:如果为空则元素跳转过程结束;如果非空则反向获取序列节点继续进行步骤11;
步骤11:判断节点在当前界面是否存在:如果不存在则循环判断入口事件序列是否为空并进行相应操作,直到入口事件序列为空则元素跳转过程结束;如果存在则操作节点后循环判断入口事件序列是否为空并进行相应操作,直到入口事件序列为空表示该元素的跳转过程已经找到,则元素跳转过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710429461.4A CN107197070B (zh) | 2017-06-08 | 2017-06-08 | 基于事件序列的手机应用ui的广度遍历自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710429461.4A CN107197070B (zh) | 2017-06-08 | 2017-06-08 | 基于事件序列的手机应用ui的广度遍历自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107197070A CN107197070A (zh) | 2017-09-22 |
CN107197070B true CN107197070B (zh) | 2020-03-24 |
Family
ID=59876189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710429461.4A Active CN107197070B (zh) | 2017-06-08 | 2017-06-08 | 基于事件序列的手机应用ui的广度遍历自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107197070B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780448B (zh) * | 2012-10-23 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 一种控件层代码的生成方法及装置 |
CN104052845B (zh) * | 2013-03-11 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 测试移动终端应用的方法及装置 |
CN104035867B (zh) * | 2014-06-04 | 2017-06-09 | 重庆泰凯科技有限公司 | 基于Android的应用功能遍历测试方法 |
KR20150145327A (ko) * | 2014-06-18 | 2015-12-30 | 한국전자통신연구원 | 블룸 필터를 이용한 식별자/위치자 매핑 시스템 및 방법 |
US9846634B2 (en) * | 2014-06-25 | 2017-12-19 | Vmware, Inc. | Visual graphical user interface verification |
CN104915290B (zh) * | 2015-05-28 | 2018-07-31 | 小米科技有限责任公司 | 应用测试方法及装置 |
CN105260301A (zh) * | 2015-09-24 | 2016-01-20 | 努比亚技术有限公司 | 用户界面的视效比对测试装置及其实现方法 |
CN107506300B (zh) * | 2017-08-09 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 一种用户界面测试方法、装置、服务器和存储介质 |
-
2017
- 2017-06-08 CN CN201710429461.4A patent/CN107197070B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107197070A (zh) | 2017-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598380B (zh) | 一种基于控件的自动化测试方法及系统 | |
CN106033393B (zh) | 一种应用程序测试方法及系统以及移动终端 | |
CN104008053B (zh) | 一种用于漏洞发掘的动态符号执行路径搜索方法 | |
CN109086204A (zh) | 节点关系树建立、页面标记和识别方法、装置和存储介质 | |
CN106933947B (zh) | 一种搜索方法及装置、电子设备 | |
JP2013019910A5 (zh) | ||
CN104077228B (zh) | 一种基于谓词依赖图的efsm可执行测试序列生成方法 | |
CN102929981B (zh) | 多媒体扫描文件索引方法及装置 | |
CN105677306A (zh) | 自动化脚本的编写方法和装置 | |
CN108197187B (zh) | 查询语句的优化方法、装置、存储介质和计算机设备 | |
CN103309805B (zh) | xUnit框架下面向对象软件中测试目标的自动化选择方法 | |
CN107197070B (zh) | 基于事件序列的手机应用ui的广度遍历自动化测试方法 | |
CN109388557A (zh) | 一种控件遍历方法、计算机可读存储介质及终端设备 | |
CN103678121B (zh) | 一种嵌入式二进制软件测试用例优先排序方法 | |
KR101761177B1 (ko) | 상위 k 중요 패턴 마이닝 방법, 이를 수행하는 장치 및 이를 저장하는 기록매체 | |
CN105701004B (zh) | 一种应用测试方法和装置 | |
CN106776284A (zh) | 一种软件测试方法以及系统 | |
CN103870460B (zh) | 一种靓号检索方法及系统 | |
CN106020913B (zh) | 一种缺陷检测工具更新方法及装置 | |
CN103914380B (zh) | 结构测试中的边界值测试方法及其系统 | |
Kaur et al. | Review of automatic test case generation from UML diagram using evolutionary algorithm | |
CN104517056A (zh) | 一种扩展Peach平台同时测试多个网络报文字段的方法 | |
CN106291692A (zh) | 盲源地震波场微地震事件的检测方法和装置 | |
CN116932416B (zh) | 基于敏感函数的模糊测试方法、装置、设备以及存储介质 | |
CN117171055B (zh) | 基于深度优先的软件无线电符合性测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |