交互式测试用例的自动生成方法与流程

文档序号:24305857发布日期:2021-03-17 00:58阅读:388来源:国知局
交互式测试用例的自动生成方法与流程

本发明涉及软件测试技术领域,具体涉及一种交互式测试用例的自动生成方法。



背景技术:

生成测试用例是进行软件测试的基础。测试用例编码空间的多样性、大规模和复杂性会造成测试用例生成需要高计算代价,影响测试效率。基于流形优化软件测试用例自动生成算法在求解atcg-pc问题时,首先需要获取测试用例的编码空间m,然后通过流形优化获取满足约束的测试用例。当对现代应用程序运用基于流形优化软件测试用例自动生成算法时,由于用户交互方式的多样性,以及用户交互界面的复杂性,如何有效的获得测试用例的编码空间m是一个在工程上需要解决的问题。通过人工编码测试用例的方式,不但需要增加人力投入,还有可能产生遗漏。



技术实现要素:

本发明针对在现代应用程序上应用基于流形优化软件测试用例自动生成算法的需求,提供一种交互式测试用例的自动生成方法,通过遍历应用程序ui界面中可点击视图自动生成与用户点击交互相关的测试用例。

本发明的目的可以通过采取如下技术方案达到:

一种交互式测试用例的自动生成方法,该方法通过遍历应用程序ui界面中的可点击视图,自动生成与用户点击交互相关的测试用例,包括以下步骤:

t1、遍历应用程序ui界面中的所有可点击视图,得到遍历结果,过程如下:

当应用程序的ui界面显示后,通过遍历应用程序ui界面对应的视图树中的所有视图,并记录下其中可点击视图在视图树中的路径,获得ui界面中所有可点击视图在视图树中的路径信息的集合;

t2、根据步骤t1得到的遍历结果自动生成对应点击事件的测试用例,过程如下:

对该路径信息的集合中的每一路径信息分别生成对应的测试用例,在测试用例中,根据待测试视图在视图树中的路径信息,在应用程序ui界面中查找到该视图,并触发其点击事件,即完成对该视图的点击交互测试,然后将操作对应的代码写入测试用例文件,生成该视图对应的测试用例。

进一步地,所述步骤t1过程如下:

t11、在测试程序中,显示待测试应用程序的ui界面。

t12、获取ui界面视图树(viewtree)的根视图(rootview)。

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界面视图树(viewtree)的根视图(rootview)。

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,直至完成对路径信息集合中所有路径对应测试用例的生成。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1