测试用例生成方法、设备及计算机可读存储介质与流程
未命名
08-12
阅读:248
评论:0
1.本发明涉及自动化测试技术领域,尤其涉及测试用例生成方法、设备及计算机可读存储介质。
背景技术:
2.cmbt(china merchants bank)系统是招商银行自研的基于模型的测试工具,是要用工具可以处理的描述信息对被测系统功能进行描述即模型,通过工具中预置的算法生成出案例。
3.在相关技术中,通常使用面向应用的数值计算包,如针对图数据结构计算路径的算法包(jgrapht算法包),利用其内部集成的图与路径计算相关通用算法及数据结构定义,自动生成对应的测试用例。
4.然而,通用算法均为基于标准的图数据结构而设计的路径查找算法,如最短路径、最小路径覆盖等,其只能针对常规的标准数据结构进行计算,因此,针对自定义结构、特殊数据结构等非标准数据结构,无法自动生成测试用例,综上,现有测试用例工具无法兼容实际应用场景。
5.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
6.本发明的主要目的在于提供一种测试用例生成方法、设备及计算机可读存储介质,旨在解决现有测试用例工具无法兼容实际应用场景。
7.针对非标准数据结构,无法自动生成测试用例的技术问题。
8.为实现上述目的,本发明提供一种测试用例生成方法,其特征在于,所述测试用例生成方法包括以下步骤:
9.获取待测试流程图中的特殊节点,所述特殊节点为具有复杂结构的节点;通过深度优先算法,计算所述待测试流程图对应的主路径;
10.对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径;
11.根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例。
12.可选地,所述特殊节点包括并发流程块,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
13.对所述并发流程块进行展开处理;
14.通过深度优先算法,计算所述并发流程块对应的所有路径;
15.按照所述并发流程块的初始节点出边,对所述所有路径进行分组;
16.从各分组中选取一条路径,并以排列组合的方式拼接形成若干条特殊路径。
17.可选地,所述特殊节点包括子流程,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
18.按照所述子流程的属性设置,对所述子流程进行展开处理;
19.若所述属性设置为不展示,则将所述子流程作为一个占位节点加入所述特殊路径;
20.若所述属性设置为全部展示,则将所述测试集中的所有测试用例加入所述特殊路径;
21.若所述属性设置为选择性展示,则从所述测试集的起始节点相同的测试用例中,筛选出一条最短路径加入所述特殊路径。
22.可选地,所述特殊节点包括环结构,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
23.按照所述环结构的属性设置,将所述环结构拼接到所述主路径上;
24.根据所述环结构和所述主路径之间的关联关系,计算所述环结构的特殊路径。
25.可选地,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
26.选取一条主路径作为候选主路径,并确定所述候选主路径对应的候选特殊节点;
27.对所述候选特殊节点进行展开处理和/或拼接处理,并基于处理后的候选特殊节点计算候选特殊路径;
28.所述根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例的步骤包括:
29.根据所述候选主路径和所述候选特殊路径生成候选测试路径,并根据所述候选测试路径生成对应的测试用例;
30.若所述测试用例的总条目数满足预设数量阈值,则将所述测试用例作为最终结果输出;
31.若所述测试用例的总条目数不满足所述预设数量阈值,则选取另一条主路径作为候选主路径,执行所述确定所述候选主路径对应的候选特殊节点,至所述根据所述候选主路径和所述候选特殊路径生成候选测试路径,并根据所述候选测试路径生成对应的测试用例的步骤,直至所有测试用例的总条目数满足所述预设数量阈值,或所有主路径计算完毕。
32.可选地,所述获取待测试流程图中的特殊节点,所述特殊节点为具有复杂结构的节点的步骤之前,包括:
33.获取待测试流程图的源文件,将所述源文件解析并转换为标准的json格式数据;
34.针对所述json格式数据进行属性提取,得到特殊节点。
35.可选地,所述根据所述主路径和所述特殊路径生成测试路径的步骤包括:
36.确定所述主路径中的特殊节点占位符;
37.以所述特殊路径替换所述特殊节点占位符,生成测试路径。
38.可选地,所述根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例的步骤之后,包括:
39.将所述测试用例输入测试类工具,得到所述待测试流程图的测试结果。
40.此外,为实现上述目的,本发明还提供一种测试用例生成设备,所述设备包括:存
储器、处理器及存储在所述存储器上并可在所述处理器上运行的测试用例生成程序,所述测试用例生成程序配置为实现所述的测试用例生成方法的步骤。
41.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有测试用例生成程序,所述测试用例生成程序被处理器执行时实现所述的测试用例生成方法的步骤。
42.在本发明提供的一个技术方案中,一方面,通过深度优先算法计算待测试流程的主路径,另一方面,计算处理后的特殊节点的特殊路径,然后根据主路径和特殊路径生成测试路径,进而生成测试用例。不同于现有测试用例工具,本方案既能够对标准数据结构部分生成测试用例,也能够对非标准数据结构部分生成测试用例,因此,本技术能够兼容所有的实际应用场景,支持cmbt系统自定义特色功能的扩展实现,能够更好地和cmbt系统功能的发展相契合。
附图说明
43.图1为本发明测试用例生成方法第一实施例的流程示意图;
44.图2为本发明测试用例生成方法第一实施例中的待测试流程图;
45.图3为本发明测试用例生成方法第一实施例中的主路径计算原理图;
46.图4为本发明测试用例生成方法第二实施例的流程示意图;
47.图5为本发明测试用例生成方法第二实施例中的并发流程块示意图;
48.图6为本发明测试用例生成方法第三实施例的流程示意图;
49.图7为本发明测试用例生成方法第四实施例的流程示意图;
50.图8为本发明测试用例生成方法第五实施例的流程示意图;
51.图9为本发明实施例方案涉及的硬件运行环境的测试用例生成设备的结构示意图。
52.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
53.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
54.功能测试是产品研发测试过程中的重要环节,具有实施周期长、投入大、组织管理复杂的特点,其中测试分析与案例编写工作,是其中的关键环节。
55.在测试分析时,需要针对产品需求编写测试用例,当前主要依赖于人工编写,这意味着需要较大的资源投入,且无法避免人工编写案例带来的规范性、需求覆盖度、维护成本高、复用性差等问题。
56.在cmbt系统中,可以通过测试工具中的预置算法替代全人工编写的测试用例,但是,现有的预置算法通常是面向应用的数值计算包,如针对图数据结构计算路径的算法包,利用其内部集成的图与路径计算相关通用算法及数据结构定义,自动生成对应的测试用例。
57.然而,通用算法均为基于标准的图数据结构而设计的路径查找算法,如最短路径、最小路径覆盖等,其只能针对常规的标准数据结构进行计算,因此,针对自定义结构、特殊数据结构等非标准数据结构,无法自动生成测试用例,综上,现有测试用例工具无法兼容实
际应用场景。
58.为解决上述问题,本技术先计算待测试流程图中的主路径,然后针对待测试流程图中的特殊节点计算特殊路径,根据主路径和特殊路径生成测试路径,进而生成测试用例。单独分析特殊节点,实质上是对非标准数据结构进行单独计算,因此,本技术能够兼容实际应用场景。
59.为了更好的理解上述技术方案,下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
60.本发明实施例提供了一种测试用例生成方法,参照图1,图1为本发明一种测试用例生成方法第一实施例的流程示意图。
61.本实施例中,所述测试用例生成方法包括:
62.步骤s11:获取待测试流程图中的特殊节点,所述特殊节点为具有特殊数据结构的节点;
63.可以理解的是,特殊节点是指具有特殊数据结构的节点,包括但不限于自定义节点、复杂结构(不符合标准图结构或标准路径结构)的节点,如并发流程块、并行边、环结构、子流程节点。
64.可选地,待检测流程图包括若干节点,从中筛选出特殊节点,以便后续针对特殊节点进行单独计算。
65.所述获取待测试流程图中的特殊节点,所述特殊节点为具有复杂结构的节点的步骤之前,包括:
66.获取待测试流程图的源文件,将所述源文件解析并转换为标准的json格式数据;
67.针对所述json格式数据进行属性提取,得到特殊节点。
68.可以理解的是,前端绘制流程图使用的专业性和可控性强的draw.io框架,其每一张流程图对应的源文件是xml格式,故后端拿到的是xml格式的字符串数据流,在该步骤将该数据流通过json工具转换为便于提取属性的标准json格式数据结构。
69.步骤s12:通过深度优先算法,计算所述待测试流程图对应的主路径;
70.可以理解的是,深度优先算法,又称基于深度优先的图遍历算法,其原理是指对每一个可能的分支路径深入到不能再深入或者满足结束节点要求为止,不能深入了就向上回溯,然后从其他分支再次开始深入的原则,最后当所有路径都被访问过了,也就代表着遍历结束。
71.可以理解的是,主路径是指符合起止节点配置要求的、有向无环的,且特殊节点仅保留占位符及缓存数据的路径。
72.可选地,通过深度优先算法,对待测试流程图进行遍历,具体是对指定起始节点到指定终止节点之间的主干部分进行遍历,最后得到的所有节点和边的集合,即为主路径。需要注意的是,在遍历过程中,如果遇到特殊节点,不会进行展开处理和/或拼接处理,只会保留占位符及缓存数据。
73.示例性地,图2为包含子流程的待测试流程图,图3为该模型的主路径计算原理,最终得到的结果为:
74.主路径1:begin-》决策表a-》覆盖算法a-(子流程)-》流程-》决策-》end
75.主路径2:begin-》决策表a-》覆盖算法b-(子流程)-》流程-》决策-》end
76.由图可知,主路径是不对决策表、子流程、并发流程等进行展开处理的、也不对环结构(如图中所示:流程-》决策-》流程)进行拼接的、从指定起始点到达指定结束节点的、主干部分的所有节点和边的集合。
77.步骤s13:对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径;
78.可选地,对特殊节点进行展开处理,实际上就是获取特殊节点的具体内容,然后根据特殊节点的具体类型,采用预先设置的算法或模型,计算处理后的特殊节点对应的特殊路径。
79.示例性地,针对并发流程块,采用深度优先算法,计算出该并发流程块对应的所有路径,然后对所有路径进行排列组合生成最终计算结果。
80.步骤s14:根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例。
81.可以理解的是,测试路径是指设计测试用例用来执行不同的路径,相应地,可以根据测试路径设计测试用例。
82.可选地,根据主路径和特殊路径生成总的测试路径,该测试路径既覆盖了常规节点,又覆盖了特殊节点,具有全面性,最后基于测试路径生成完整的测试用例。
83.其中,所述根据所述主路径和所述特殊路径生成测试路径的步骤包括:
84.确定所述主路径中的特殊节点占位符;
85.以所述特殊路径替换所述特殊节点占位符,生成测试路径。
86.示例性地,主路径为begin-》决策表a-》覆盖算法a-(子流程)-》流程-》决策-》end,在计算得到子流程的特殊路径x后,以特殊路径x替换占位符(子流程),生成测试路径为begin-》决策表a-》覆盖算法a-特殊路径x-》流程-》决策-》end。
87.另外,可以将生成的测试用例输入测试类工具,得到待测试流程图的测试结果。
88.在本实施例提供的一个技术方案中,一方面,通过深度优先算法计算待测试流程的主路径,另一方面,计算处理后的特殊节点的特殊路径,然后根据主路径和特殊路径生成测试路径,进而生成测试用例。不同于现有测试用例工具,本方案既能够对标准数据结构部分生成测试用例,也能够对非标准数据结构部分生成测试用例,因此,本技术能够兼容所有的实际应用场景,支持cmbt系统自定义特色功能的扩展实现,能够更好地和cmbt系统功能的发展相契合。
89.进一步的,参照图4,提出本发明测试用例生成方法第二实施例。基于上述图1所示的实施例,所述特殊节点包括并发流程块,所所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
90.步骤s21:对所述并发流程块进行展开处理;
91.步骤s22:通过深度优先算法,计算所述并发流程块对应的所有路径;
92.步骤s23:按照所述并发流程块的初始节点出边,对所述所有路径进行分组;
93.步骤s24:从各分组中选取一条路径,并以排列组合的方式拼接形成若干条特殊路径。
94.可以理解的是,并发流程块是指,存在于该流程块中的流程结构均由并发流程开始节点为起始、并发流程结束节点为终止,且块内不包含复杂结构(不符合标准图结构或标准路径结构)的流程块。
95.示例性地,参见图5,通过深度优先算法,计算并发流程块内的所有路径(流程a所在路径、流程b所在路径、流程c所在路径),计算原理同s12,此处不再赘述。
96.进一步地,按照并发流程块的初始节点的出边(并发流程开始节点对应的左右两条出边),对所有路径进行分组(流程a所在路径)(流程b所在路径、流程c所在路径)。
97.更进一步地,从各分组中选取一条路径,进行排列组合(流程a所在路径+流程b所在路径)(流程a所在路径+流程c所在路径),最终拼接形成特殊路径:
98.并发路径1:并发流程开始-流程a-并发流程结束-决策=false-流程b-并发流程结束;
99.并发路径2:并发流程开始-流程a-并发流程结束-决策=true-流程c-并发流程结束。
100.需要注意的是,特殊节点还包括并行边,并行边是指存在于两个相邻节点间的、指向方向相同的、数量大于1的一组边结构,示例性地,多条并行边均由a节点为起始、由b节点为终止。
101.可选地,针对一组并行边,对其进行展开处理和特殊路径计算,具体原理同上所述,在此不再赘述。进一步地,针对多组并行边(a节点和b节点之间、c节点和d节点之间),采用笛卡尔乘积的方式进行组合计算,即从各分组中选取一条路径,并以排列组合的方式拼接形成若干条特殊路径。
102.在本实施例提供的一个技术方案中,针对并发流程块,先计算其中的所有路径,然后基于并发流程块的初始节点出边进行分组,最后以排列组合的方式将分组拼接成若干条特殊路径。本方案提供了并发流程块的计算方式,保证最后生成的测试路径的全面性。
103.进一步的,参照图6,提出本发明测试用例生成方法第三实施例。基于上述图1所示的实施例,所述特殊节点包括子流程,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
104.步骤s31:按照所述子流程的属性设置,对所述子流程进行展开处理;
105.步骤s32:若所述属性设置为不展示,则将所述子流程作为一个占位节点加入所述特殊路径;
106.步骤s33:若所述属性设置为全部展示,则将所述测试集中的所有测试用例加入所述特殊路径;
107.步骤s34:若所述属性设置为选择性展示,则从所述测试集的起始节点相同的测试用例中,筛选出一条最短路径加入所述特殊路径。
108.可以理解的是,子流程是指作为独立存在的、完成的一段业务流程模型图,被另外的流程模型引用为其流程中的一部分;子流程的属性设置,是对于子流程应用规则相关的设置,具体不展示、全部展示、选择性展示等属性。
109.可选地,针对一个子流程,先确定对应的属性设置,并按照属性设置对其进行展开处理。
110.进一步地,计算子流程的具体内容计算特殊路径:若属性设置为不展示,则将该子
流程节点当成一个纯粹的占位节点,加入特殊路径;若属性设置为全部展示,则将测试集中的所有测试用例均作为一种有效的展开路径,加入特殊路径;若属性设置为选择性展示,则先筛选起始节点相同的测试用例,再从选取一条最短路径加入特殊路径。
111.需要注意的是,上述属性设置对应的计算策略均为叠加生效,最终汇总生成子流程对应的特殊路径。
112.在本实施例提供的一个技术方案中,按照子流程的属性设置,对子流程进行展开处理,进一步地,根据属性设置采用不同的计算方式,最终汇总生成子流程对应的特殊路径。本方案提供了子流程的具体计算方式,保证最后生成的测试路径的全面性。
113.进一步的,参照图7,提出本发明测试用例生成方法第四实施例。基于上述图1所示的实施例,所述特殊节点包括环结构,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
114.步骤s41:按照所述环结构的属性设置,将所述环结构拼接到所述主路径上;
115.步骤s42:根据所述环结构和所述主路径之间的关联关系,计算所述环结构的特殊路径。
116.可以理解的是,环结构的属性设置,是指环的策略(无环、单环、组合环、以上环的组合)、环的出现次数等。
117.可选地,根据环结构的属性设置,将环结构拼接到主路径上,具体地,比较环结构和主路径中各节点的标识符,并将标识符相同的节点定义为交集节点,进一步地,参考交集节点和以下关联关系,将环结构拼接到主路径上:
118.1)主路径单向性:主路径是指无环的、单向的链路路径;
119.2)环结构的顺序性:多环之间是有顺序性的,c1环和c2环的前后出现顺序会形成不同的路径;
120.3)环结构的入口节点固定:环是有固定的入口(出口)节点,同一个环如果指定不同入口节点,可视为不同的环结构;
121.4)环结构与主路径的关系:主路径上与其上的环至少存在一个交集节点(即环的入口节点),若主路径上与环存在多个交集节点,则指定不同的交集结点为环的入口节点时,可认为生成的是同一条路径;
122.5)节点可达性:能否承载环的不同的组合顺序,决定因素是主路径上的节点之间可达性,主路径中的a节点index(指数)小于b节点,则对于以a节点为入口节点的c1环和以b节点为入口节点的c2环,其环添加顺序只能是先c1后c2,原因是b
→
a不可达。
123.更进一步地,拼接完成后,根据环结构和主路径之间的关联关系,将拼接好的每一种情况,作为一种新的路径计算结果加入环结构的特殊路径。
124.在本实施例提供的一个技术方案中,按照环结构的属性设置,将环结构拼接到主路径上,然后根据环结构和主路径之间的关联关系,计算环结构的特殊路径。本方案提供了环结构的具体计算方式,保证最后生成的测试路径的全面性。
125.进一步的,参照图8,提出本发明测试用例生成方法第五实施例。基于上述图1所示的实施例,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:
126.步骤s51:选取一条主路径作为候选主路径,并确定所述候选主路径对应的候选特
殊节点;
127.步骤s52:对所述候选特殊节点进行展开处理和/或拼接处理,并基于处理后的候选特殊节点计算候选特殊路径;
128.所述根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例的步骤包括:
129.步骤s53:根据所述候选主路径和所述候选特殊路径生成候选测试路径,并根据所述候选测试路径生成对应的测试用例;
130.步骤s54:若所述测试用例的总条目数满足预设数量阈值,则将所述测试用例作为最终结果输出;
131.步骤s55:若所述测试用例的总条目数不满足所述预设数量阈值,则选取另一条主路径作为候选主路径,执行所述确定所述候选主路径对应的候选特殊节点,至所述根据所述候选主路径和所述候选特殊路径生成候选测试路径,并根据所述候选测试路径生成对应的测试用例的步骤,直至所有测试用例的总条目数满足所述预设数量阈值,或所有主路径计算完毕。
132.可以理解的是,在通过深度优先算法得到若干条主路径后,不需要针对所有的主路径及以上的特殊节点进行测试,技术人员可以根据业务需求、应用场景等预先设置数量阈值,如1000,以控制测试用例生成流程。
133.可选地,从所有主路径中选取一条作为候选主路径,然后确定候选主路径上的候选特殊节点,对候选特殊节点进行展开处理和/或拼接处理,并基于处理后的候选特殊节点计算候选特殊路径,再根据候选主路径和候选特殊路径生成候选测试路径,进而生成测试用例。
134.进一步地,若测试用例的总条目数满足预设数量阈值,则说明此时测试用例已经足以支撑后续的测试流程,故直接将测试用例作为最终结果输出;若测试用例的总条目数不满足预设数量阈值,则说明此时测试用例不足以支撑后续的测试流程,故再选取另一条主路径作为候选主路径,继续计算测试用例,直至所有测试用例的总条目数叠加起来满足预设数量阈值,或所有主路径计算完毕。
135.在本实施例提供的一个技术方案中,以预设数量阈值和所有主路径全部计算完成,作为测试用例生成流程的终止条件。相较于计算全量路径,本方案能够避免大量的垃圾数据,实现测试用例数量量级可控制,不仅可以节约存储空间,而且可以提升测试用例的整体效率。
136.参照图9,图9为本发明实施例方案涉及的硬件运行环境的测试用例生成设备结构示意图。
137.如图9所示,该测试用例生成设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,
nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
138.本领域技术人员可以理解,图9中示出的结构并不构成对测试用例生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
139.如图9所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及测试用例生成程序。
140.在图9所示的测试用例生成设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明测试用例生成设备中的处理器1001、存储器1005可以设置在测试用例生成设备中,所述测试用例生成设备通过处理器1001调用存储器1005中存储的测试用例生成程序,并执行本发明实施例提供的测试用例生成方法。
141.本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现上述测试用例生成方法任一实施例中的步骤。
142.由于计算机可读存储介质部分的实施例与方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,在此暂不赘述。
143.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
144.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
145.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
146.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种测试用例生成方法,其特征在于,所述测试用例生成方法包括以下步骤:获取待测试流程图中的特殊节点,所述特殊节点为具有复杂结构的节点;通过深度优先算法,计算所述待测试流程图对应的主路径;对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径;根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例。2.如权利要求1所述的测试用例生成方法,其特征在于,所述特殊节点包括并发流程块,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:对所述并发流程块进行展开处理;通过深度优先算法,计算所述并发流程块对应的所有路径;按照所述并发流程块的初始节点出边,对所述所有路径进行分组;从各分组中选取一条路径,并以排列组合的方式拼接形成若干条特殊路径。3.如权利要求1所述的测试用例生成方法,其特征在于,所述特殊节点包括子流程,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:按照所述子流程的属性设置,对所述子流程进行展开处理;若所述属性设置为不展示,则将所述子流程作为一个占位节点加入所述特殊路径;若所述属性设置为全部展示,则将所述测试集中的所有测试用例加入所述特殊路径;若所述属性设置为选择性展示,则从所述测试集的起始节点相同的测试用例中,筛选出一条最短路径加入所述特殊路径。4.如权利要求1所述的测试用例生成方法,其特征在于,所述特殊节点包括环结构,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:按照所述环结构的属性设置,将所述环结构拼接到所述主路径上;根据所述环结构和所述主路径之间的关联关系,计算所述环结构的特殊路径。5.如权利要求1所述的测试用例生成方法,其特征在于,所述对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径的步骤包括:选取一条主路径作为候选主路径,并确定所述候选主路径对应的候选特殊节点;对所述候选特殊节点进行展开处理和/或拼接处理,并基于处理后的候选特殊节点计算候选特殊路径;所述根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例的步骤包括:根据所述候选主路径和所述候选特殊路径生成候选测试路径,并根据所述候选测试路径生成对应的测试用例;若所述测试用例的总条目数满足预设数量阈值,则将所述测试用例作为最终结果输出;若所述测试用例的总条目数不满足所述预设数量阈值,则选取另一条主路径作为候选
主路径,执行所述确定所述候选主路径对应的候选特殊节点,至所述根据所述候选主路径和所述候选特殊路径生成候选测试路径,并根据所述候选测试路径生成对应的测试用例的步骤,直至所有测试用例的总条目数满足所述预设数量阈值,或所有主路径计算完毕。6.如权利要求1所述的测试用例生成方法,其特征在于,所述获取待测试流程图中的特殊节点,所述特殊节点为具有复杂结构的节点的步骤之前,包括:获取待测试流程图的源文件,将所述源文件解析并转换为标准的json格式数据;针对所述json格式数据进行属性提取,得到特殊节点。7.如权利要求1所述的测试用例生成方法,其特征在于,所述根据所述主路径和所述特殊路径生成测试路径的步骤包括:确定所述主路径中的特殊节点占位符;以所述特殊路径替换所述特殊节点占位符,生成测试路径。8.如权利要求1所述的测试用例生成方法,其特征在于,所述根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例的步骤之后,包括:将所述测试用例输入测试类工具,得到所述待测试流程图的测试结果。9.一种测试用例生成设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的测试用例生成程序,所述测试用例生成程序配置为实现如权利要求1至8中任一项所述的测试用例生成方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有测试用例生成程序,所述测试用例生成程序被处理器执行时实现如权利要求1至8任一项所述的测试用例生成方法的步骤。
技术总结
本发明公开了一种测试用例生成方法、设备及计算机可读存储介质,属于自动化测试技术领域。该方法包括:获取待测试流程图中的特殊节点,所述特殊节点为具有复杂结构的节点;通过深度优先算法,计算所述待测试流程图对应的主路径;对所述特殊节点进行展开处理和/或拼接处理,并基于处理后的特殊节点计算特殊路径;根据所述主路径和所述特殊路径生成测试路径,并根据所述测试路径生成对应的测试用例。本发明根据主路径和特殊路径生成测试路径,旨在实现兼容实际应用场景。现兼容实际应用场景。现兼容实际应用场景。
技术研发人员:王斌
受保护的技术使用者:招商银行股份有限公司
技术研发日:2023.06.19
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
