CN112506766B - 交互式测试用例的自动生成方法 - Google Patents
交互式测试用例的自动生成方法 Download PDFInfo
- Publication number
- CN112506766B CN112506766B CN202011392991.4A CN202011392991A CN112506766B CN 112506766 B CN112506766 B CN 112506766B CN 202011392991 A CN202011392991 A CN 202011392991A CN 112506766 B CN112506766 B CN 112506766B
- Authority
- CN
- China
- Prior art keywords
- view
- tree
- test case
- path information
- views
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 8
- 230000003993 interaction Effects 0.000 claims abstract description 10
- 230000001960 triggered effect Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种交互式测试用例的自动生成方法,当应用程序的UI界面显示后,通过遍历应用程序UI界面对应的视图树中的所有视图,并记录下其中可点击视图在视图树中的路径,获得UI界面中所有可点击视图在视图树中的路径信息的集合。对该集合中的每一路径信息分别生成对应的测试用例:在测试用例中,根据待测试视图在视图树中的路径信息,在应用程序UI界面中查找到该视图,并触发其点击事件,即完成对该视图的点击交互测试。本发明对应用程序的类型及其运行环境没有严格要求,只需要应用程序的UI布局符合视图树的结构,且每个视图有对应的属性可用于查询其是否能响应点击事件,即可以通过本发明自动生成与用户点击事件相关的测试用例。
Description
技术领域
本发明涉及软件测试技术领域,具体涉及一种交互式测试用例的自动生成方法。
背景技术
生成测试用例是进行软件测试的基础。测试用例编码空间的多样性、大规模和复杂性会造成测试用例生成需要高计算代价,影响测试效率。基于流形优化软件测试用例自动生成算法在求解ATCG-PC问题时,首先需要获取测试用例的编码空间M,然后通过流形优化获取满足约束的测试用例。当对现代应用程序运用基于流形优化软件测试用例自动生成算法时,由于用户交互方式的多样性,以及用户交互界面的复杂性,如何有效的获得测试用例的编码空间M是一个在工程上需要解决的问题。通过人工编码测试用例的方式,不但需要增加人力投入,还有可能产生遗漏。
发明内容
本发明针对在现代应用程序上应用基于流形优化软件测试用例自动生成算法的需求,提供一种交互式测试用例的自动生成方法,通过遍历应用程序UI界面中可点击视图自动生成与用户点击交互相关的测试用例。
本发明的目的可以通过采取如下技术方案达到:
一种交互式测试用例的自动生成方法,该方法通过遍历应用程序UI界面中的可点击视图,自动生成与用户点击交互相关的测试用例,包括以下步骤:
T1、遍历应用程序UI界面中的所有可点击视图,得到遍历结果,过程如下:
当应用程序的UI界面显示后,通过遍历应用程序UI界面对应的视图树中的所有视图,并记录下其中可点击视图在视图树中的路径,获得UI界面中所有可点击视图在视图树中的路径信息的集合;
T2、根据步骤T1得到的遍历结果自动生成对应点击事件的测试用例,过程如下:
对该路径信息的集合中的每一路径信息分别生成对应的测试用例,在测试用例中,根据待测试视图在视图树中的路径信息,在应用程序UI界面中查找到该视图,并触发其点击事件,即完成对该视图的点击交互测试,然后将操作对应的代码写入测试用例文件,生成该视图对应的测试用例。
进一步地,所述步骤T1过程如下:
T11、在测试程序中,显示待测试应用程序的UI界面。
T12、获取UI界面视图树(view tree)的根视图(root view)。
T13、从根视图开始,对视图树中的所有视图进行遍历。
T14、为了在遍历过程中有效表示每个子视图在视图树中的位置,使用栈(stack)作为记录子视图位置信息的数据结构。首先,将根视图的索引(index)定义为0,将同一个父视图下的第一个子视图的索引定义为0,第二个子视图的索引定义为1,依此类推。每当遍历到树形结构中一个新的视图时,如果它是同一父视图下的所有子视图中第一个视图,则将其索引入栈,如果它是同一父视图下的所有子视图中除第一个视图外的其余视图,则先将栈顶出栈,再将新视图的索引入栈;如果在遍历过程中返回到视图树的上一级,则将栈顶出栈。因此,每一时刻,栈中从栈底到栈顶所保存的索引信息(s0, s1, s2, …)就可用于表示从视图树的根视图开始一直到当前视图的路径信息。
T15、在遍历过程中,通过查询当前子视图的属性,判断其是否可点击,对于可点击的视图,将栈中所保存的该视图在视图树中的路径信息(s0, s1, s2, …)记录下来。
T16、当完成对整个视图树的遍历后,获得所有可点击视图在视图树中的路径信息集合。
进一步地,所述步骤T2过程如下:
T21、根据遍历应用程序UI界面中所有可点击视图后得到的可点击视图在视图树中的路径信息集合,分别对集合中的每一条路径信息自动生成测试用例。
T22、当生成一个测试用例时,从路径信息集合中取出一条路径信息(s0, s1, s2,…)。该数据队列的第1个值代表的是视图树的根视图,其后每一个值代表着在处于路径上的子视图在视图树的下一级视图中对应的索引。通过这样的索引方式可以迅速的查找到待测试的视图。
T23、当查找到待测试视图后,触发该视图的点击事件。
T24、将完成步骤T22和步骤T23所描述操作对应的代码写入测试用例文件,即完成该视图对应测试用例的生成。
T25、重复步骤T22到步骤T24,直至完成对路径信息集合中所有路径对应测试用例的生成。
本发明相对于现有技术具有如下的优点及效果:
本发明基于仿真环境进行遍历可点击的view,而不需要在真机设备环境下进行,速度较快、并行处理。
附图说明
图1是本发明实施例中公开的一种交互式测试用例的自动生成方法的流程图;
图2是本发明实施例中遍历应用程序UI界面中的所有可点击视图的流程图;
图3是本发明实施例中根据遍历结果自动生成对应点击事件的测试用例的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
基于流形优化软件测试用例自动生成算法在求解ATCG-PC问题时,首先需要获取测试用例的编码空间M,然后通过流形优化获取满足约束的测试用例。本实施例提供了一种自动生成与用户交互相关的测试用例的方法,该方法实现对现代应用程序运用基于流形优化软件测试用例的自动生成,提高获取测试用例的编码空间M的效率。
如图1所示,该方法通过遍历应用程序UI界面中的可点击视图,自动生成与用户点击交互相关的测试用例,包括以下步骤:
T1、遍历应用程序UI界面中的所有可点击视图,得到遍历结果,过程如下:
当应用程序的UI界面显示后,通过遍历应用程序UI界面对应的视图树中的所有视图,并记录下其中可点击视图在视图树中的路径,获得UI界面中所有可点击视图在视图树中的路径信息的集合;
T2、根据步骤T1得到的遍历结果自动生成对应点击事件的测试用例,过程如下:
对该路径信息的集合中的每一路径信息分别生成对应的测试用例,在测试用例中,根据待测试视图在视图树中的路径信息,在应用程序UI界面中查找到该视图,并触发其点击事件,即完成对该视图的点击交互测试,然后将操作对应的代码写入测试用例文件,生成该视图对应的测试用例。
如图2,遍历应用程序UI界面可点击视图的主要流程包括以下子步骤:
T11、在测试程序中,显示待测试应用程序的UI界面。
T12、获取UI界面视图树(view tree)的根视图(root view)。
T13、从根视图开始,对视图树中的所有视图进行遍历。
T14、为了在遍历过程中有效表示每个子视图在视图树中的位置,使用栈(stack)作为记录子视图位置信息的数据结构。首先,将根视图的索引(index)定义为0,将同一个父视图下的第一个子视图的索引定义为0,第二个子视图的索引定义为1,依此类推。每当遍历到树形结构中一个新的视图时,如果它是同一父视图下的所有子视图中第一个视图,则将其索引入栈,如果它是同一父视图下的所有子视图中除第一个视图外的其余视图,则先将栈顶出栈,再将新视图的索引入栈;如果在遍历过程中返回到视图树的上一级,则将栈顶出栈。因此,每一时刻,栈中从栈底到栈顶所保存的索引信息(s0, s1, s2, …)就可用于表示从视图树的根视图开始一直到当前视图的路径信息。
T15、在遍历过程中,通过查询当前子视图的属性,判断其是否可点击,对于可点击的视图,将栈中所保存的该视图在视图树中的路径信息(s0, s1, s2, …)记录下来。
T16、当完成对整个视图树的遍历后,获得所有可点击视图在视图树中的路径信息集合。
如图3,根据遍历结果自动生成对应点击事件的测试用例的主要流程包括以下子步骤:
T21、根据遍历应用程序UI界面中所有可点击视图后得到的可点击视图在视图树中的路径信息集合,分别对集合中的每一条路径信息自动生成测试用例。
T22、当生成一个测试用例时,从路径信息集合中取出一条路径信息(s0, s1, s2,…)。该数据队列的第1个值代表的是视图树的根视图,其后每一个值代表着在处于路径上的子视图在视图树的下一级视图中对应的索引。通过这样的索引方式可以迅速的查找到待测试的视图。
T23、当查找到待测试视图后,触发该视图的点击事件。
T24、将完成步骤T22和步骤T23所描述操作对应的代码写入测试用例文件,即完成该视图对应测试用例的生成。
T25、重复步骤T22到步骤T24,直至完成对路径信息集合中所有路径对应测试用例的生成。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (1)
1.一种交互式测试用例的自动生成方法,其特征在于,所述自动生成方包括以下步骤:
T1、遍历应用程序UI界面中的所有可点击视图,得到遍历结果,过程如下:
当应用程序的UI界面显示后,通过遍历应用程序UI界面对应的视图树中的所有视图,并记录下其中可点击视图在视图树中的路径,获得UI界面中所有可点击视图在视图树中的路径信息的集合;
所述步骤T1过程如下:
T11、在测试程序中,显示待测试应用程序的UI界面;
T12、获取UI界面视图树的根视图;
T13、从根视图开始,对视图树中的所有视图进行遍历;
T14、使用栈作为记录子视图位置信息的数据结构,首先将根视图的索引定义为0,将同一个父视图下的第一个子视图的索引定义为0,第二个子视图的索引定义为1,依此类推,每当遍历到树形结构中一个新的视图时,如果它是同一父视图下的所有子视图中第一个视图,则将其索引入栈,如果它是同一父视图下的所有子视图中除第一个视图外的其余视图,则先将栈顶出栈,再将新视图的索引入栈;如果在遍历过程中返回到视图树的上一级,则将栈顶出栈,将每一时刻的栈中从栈底到栈顶所保存的索引信息(s0, s1, s2, …)用于表示从视图树的根视图开始一直到当前视图的路径信息;
T15、在遍历过程中,通过查询当前子视图的属性,判断其是否可点击,对于可点击的视图,将栈中所保存的该视图在视图树中的路径信息(s0, s1, s2, …)记录下来;
T16、当完成对整个视图树的遍历后,获得所有可点击视图在视图树中的路径信息集合
T2、根据步骤T1得到的遍历结果自动生成对应点击事件的测试用例,过程如下:
对该路径信息的集合中的每一路径信息分别生成对应的测试用例,在测试用例中,根据待测试视图在视图树中的路径信息,在应用程序UI界面中查找到该视图,并触发其点击事件,即完成对该视图的点击交互测试,然后将操作对应的代码写入测试用例文件,生成该视图对应的测试用例;
所述步骤T2过程如下:
T21、根据遍历应用程序UI界面中所有可点击视图后得到的可点击视图在视图树中的路径信息集合,分别对集合中的每一条路径信息自动生成测试用例;
T22、每当生成一个测试用例时,从路径信息集合中取出一条路径信息(s0, s1, s2,…),该数据队列的第1个值代表的是视图树的根视图,其后每一个值代表着在处于路径上的子视图在视图树的下一级视图中对应的索引;
T23、当查找到待测试视图后,触发该视图的点击事件;
T24、将完成步骤T22和步骤T23所描述操作对应的代码写入测试用例文件,生成该视图对应的测试用例;
T25、重复步骤T22到步骤T24,直至完成对路径信息集合中所有路径对应测试用例的生成。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011392991.4A CN112506766B (zh) | 2020-12-02 | 2020-12-02 | 交互式测试用例的自动生成方法 |
PCT/CN2021/122578 WO2022116681A1 (zh) | 2020-12-02 | 2021-10-08 | 交互式测试用例的自动生成方法 |
US18/255,593 US20240104006A1 (en) | 2020-12-02 | 2021-10-08 | Method for automatically generating interactive test cases |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011392991.4A CN112506766B (zh) | 2020-12-02 | 2020-12-02 | 交互式测试用例的自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506766A CN112506766A (zh) | 2021-03-16 |
CN112506766B true CN112506766B (zh) | 2023-06-20 |
Family
ID=74969290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011392991.4A Active CN112506766B (zh) | 2020-12-02 | 2020-12-02 | 交互式测试用例的自动生成方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240104006A1 (zh) |
CN (1) | CN112506766B (zh) |
WO (1) | WO2022116681A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506766B (zh) * | 2020-12-02 | 2023-06-20 | 华南理工大学 | 交互式测试用例的自动生成方法 |
CN113468044B (zh) * | 2021-05-27 | 2022-06-24 | 长江大学 | 一种基于改进的灰色预测演化算法的测试用例生成方法 |
CN113535594B (zh) * | 2021-09-17 | 2021-12-21 | 广州裕睿信息科技有限公司 | 业务场景测试用例的生成方法、装置、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857668A (zh) * | 2019-02-03 | 2019-06-07 | 苏州市龙测智能科技有限公司 | Ui自动化功能测试方法、测试装置、测试设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT411802B (de) * | 2001-06-01 | 2004-05-25 | Siemens Ag Oesterreich | Verfahren zum testen von software |
CN104090844B (zh) * | 2014-07-18 | 2017-06-06 | 百度在线网络技术(北京)有限公司 | 网页自动化测试方法和装置 |
CN104699608B (zh) * | 2015-03-10 | 2017-10-27 | 于秀山 | 图形用户界面软件自动测试方法及装置 |
CN105677570B (zh) * | 2016-01-11 | 2018-05-18 | 北京航空航天大学 | 一种基于事件响应函数树的gui软件测试用例生成方法 |
CN106294167B (zh) * | 2016-08-16 | 2018-08-10 | 济南大学 | Android应用程序界面自动遍历方法及系统 |
CN106649100B (zh) * | 2016-11-16 | 2020-08-25 | 福建天晴数码有限公司 | 一种自动化测试方法及系统 |
US10713152B2 (en) * | 2017-06-28 | 2020-07-14 | Sap Se | Automated path generator for optimized application testing |
CN107608890A (zh) * | 2017-09-15 | 2018-01-19 | 南京航空航天大学 | 一种基于带权重的事件处理函数模型生成gui软件测试用例的方法 |
CN108345485B (zh) * | 2018-01-30 | 2021-05-07 | 口碑(上海)信息技术有限公司 | 用于界面视图的标识方法及装置 |
CN108459967B (zh) * | 2018-03-21 | 2021-04-06 | 东南大学 | 基于用户接口状态流图的Web应用测试用例生成方法 |
CN112506766B (zh) * | 2020-12-02 | 2023-06-20 | 华南理工大学 | 交互式测试用例的自动生成方法 |
-
2020
- 2020-12-02 CN CN202011392991.4A patent/CN112506766B/zh active Active
-
2021
- 2021-10-08 US US18/255,593 patent/US20240104006A1/en active Pending
- 2021-10-08 WO PCT/CN2021/122578 patent/WO2022116681A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857668A (zh) * | 2019-02-03 | 2019-06-07 | 苏州市龙测智能科技有限公司 | Ui自动化功能测试方法、测试装置、测试设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于GPU的并行协同过滤算法;许建 等;《计算机应用研究》;第30卷(第9期);第2656-2659页 * |
Also Published As
Publication number | Publication date |
---|---|
US20240104006A1 (en) | 2024-03-28 |
CN112506766A (zh) | 2021-03-16 |
WO2022116681A1 (zh) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506766B (zh) | 交互式测试用例的自动生成方法 | |
US11137871B2 (en) | System and method for interface display screen manipulation | |
CN110928772B (zh) | 一种测试方法及装置 | |
CN111818123B (zh) | 网络前端远程回放方法、装置、设备及存储介质 | |
US20140053021A1 (en) | Automatic classification adjustment of recorded actions for automation script | |
CN103631590B (zh) | 自动化测试脚本的编辑方法 | |
CN112597014B (zh) | 基于数据驱动的自动化测试方法、装置、介质及电子设备 | |
CN110507986B (zh) | 动画信息的处理方法和装置 | |
CN114896173A (zh) | 用于目标数据路径显示的数据处理系统 | |
CN115080398A (zh) | 一种接口自动化测试系统及方法 | |
CN112286814A (zh) | 一种测试用例脚本的自动化生成系统及方法 | |
CN111008154A (zh) | 一种基于强化学习的Android应用自动测试方法及系统 | |
CN111143205B (zh) | 一种面向安卓平台的测试用例自动化生成方法及生成系统 | |
JP5677924B2 (ja) | テスト自動化システム | |
CN116630990B (zh) | Rpa流程元素路径智能修复方法及系统 | |
CN115168196A (zh) | 一种基于事件依赖模型的web gui测试用例生成方法 | |
CN115328891A (zh) | 数据迁移方法、装置、存储介质及电子设备 | |
CN113672509A (zh) | 自动化测试方法、装置、测试平台及存储介质 | |
CN110908649B (zh) | 一种可拆分及合并的图表绘制方法和系统 | |
CN113986441A (zh) | 一种飞机地面站软件人机交互界面自动化测试方法 | |
JP6157166B2 (ja) | 部品生成システムおよび方法ならびにプログラム | |
JP2017224185A (ja) | バグ混入確率計算プログラム及びバグ混入確率計算方法 | |
CN108664383B (zh) | 一种控件测试方法及软件自动测试方法 | |
CN111444091A (zh) | 测试用例生成方法及装置 | |
CN111290938A (zh) | 一种基于人工辅助的Android半自动化测试方法 |
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 |