基于用户操作时序图的测试用例生成方法和装置与流程

文档序号:22129281发布日期:2020-09-08 12:38阅读:284来源:国知局
基于用户操作时序图的测试用例生成方法和装置与流程

本申请涉及计算机技术领域,尤其涉及一种基于用户操作时序图的测试用例生成方法和装置。



背景技术:

软件上线或更新前,均需进行软件测试。测试用例用于检验软件功能和性能的全面性和正确性,确保软件质量,是软件测试的核心。目前软件测试有自动化测试、接口测试以及手工测试,一般测试人员在进行自动化测试、接口测试以及手工测试时,需要分别编写相应的测试用例。

按照目前业界的发展要求测试用例应符合客户操作习惯和真实操作顺序,并且需要覆盖全业务场景,因此测试人员在编写测试用例上所需时间较多,且很难符合客户操作顺序,容易出错和造成遗漏,并且复用度也不高。

现有自动测试用例生成方法,通过绘制状态转换图,采用优化后的n-switch状态覆盖算法覆盖路径的各个分支路径,以树型结构进行遍历,生成流程类的手工测试用例,存在不能全面且精准的生成符合测试人员要求的全业务场景的自动化测试用例和手工测试用例的问题。



技术实现要素:

本申请提供一种基于用户操作时序图的测试用例生成方法和装置,可精准生成符合客户真实操作顺序的自动化测试用例与手工测试用例,达到对客户使用全场景进行测试覆盖的目的。

本申请第一方面提供一种基于用户操作时序图的测试用例生成方法,包括:

获取业务的用户操作时序图,所述用户操作时序图包括至少一个业务要素和业务要素间时序关系;

采用时序遍历算法和逆向分支识别算法,对所述用户操作时序图进行解析,获取所述业务的所有业务要素和所有分支路径,任一分支路径中每个业务要素只存在一个后续业务要素;

设置各所述业务要素的数据字典,所述业务要素的数据字典包括业务要素的所有取值以及各取值的分离方式;同一测试用例中的各业务要素的取值具有相同的分离方式;

根据所述业务的业务要素的数据字典、分支路径以及所述业务的业务规则,生成所述业务的测试用例。

本申请实施例提供的基于用户操作时序图的测试用例生成方法,从用户操作时序图中提取出业务要素和分支路径,并根据补充的业务要素的数据字典以及业务的业务规则,生成测试用例,可精准生成符合客户真实操作顺序的自动化测试用例与手工测试用例,达到对客户使用全场景进行测试覆盖的目的,通过要素-数据字典-分支逻辑三维算法可生成全类型的精准的测试用例,保证测试用例的正确性和全面性,彻底解决了手工编写测试用例的耗时长、不准确、易遗漏的问题;对功能要素的数据字典和分支逻辑进行分离方式设置,可以实现对要素的数据字典进行各类智能组合,对分支逻辑进行遍历算法筛检控制,最终实现自动生成的测试用例无冗余,更准确,通过模拟的用户真实操作时序图,还可对现有软件的测试用例质量进行检核,以验证其正确性和全面性。

在一种可行的实现方式中,所述采用时序遍历算法和逆向分支识别算法,对所述用户操作时序图进行解析,获取所述业务的所有业务要素和所有分支路径,包括:

步骤1、在所述用户操作时序图的所有业务要素中,确定所有入口要素,所述入口要素为只有后续业务要素没有前序业务要素的业务要素;

步骤2、对于每一个入口要素,将所述入口要素存储在数据库中,分别判断所述入口要素的每一个后续业务要素是否已经存储在数据库中;

步骤3、对于每一个未存储在数据库中的后续业务要素,建立所述入口要素和所述未存储在数据库中的后续业务要素的分支路径,将所述分支路径存储在数据库中;

步骤4、对于每一个所述未存储在数据库中的后续业务要素,将所述未存储在数据库中的后续业务要素存储在数据库中,将所述未存储在数据库中的后续业务要素作为新的当前业务要素,判断所述新的当前业务要素是否存在后续业务要素;

步骤5、若存在,则对于所述新的当前业务要素的每一个未存储在数据库中的后续业务要素,根据所述新的当前业务要素的每一个未存储在数据库中的后续业务要素,扩展存储在数据库中的分支路径;重复执行上述步骤4直至新的当前业务要素不存在后续业务要素。

在一种可行的实现方式中,所述基于用户操作时序图的测试用例生成方法还包括:

对于每一个所述当前业务要素的存储在数据库中的后续业务要素,根据所述存储在数据库中的后续业务要素、以及数据库中包含所述存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

在一种可行的实现方式中,若所述存储在数据库中的后续业务要素是所述当前业务要素的前序业务要素,所述根据所述存储在数据库中的后续业务要素、以及数据库中包含所述存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径,包括:

根据所述存储在数据库中的后续业务要素、所述存储在数据库中的后续业务要素的循环次数、以及数据库中包含所述存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

在一种可行的实现方式中,所述用户操作时序图中的业务要素为接口的输入字段或输出字段。

在一种可行的实现方式中,所述获取业务的用户操作时序图,包括:

获取至少一个业务的用户操作时序图;

对应的,所述根据所述业务的业务要素的数据字典、分支路径以及所述业务的业务规则,生成所述业务的测试用例,包括:

确定各业务间相同的业务要素,根据所述相同的业务要素、各业务的业务要素的数据字典、分支路径以及业务规则,生成测试用例。

在一种可行的实现方式中,所述根据所述业务的业务要素的数据字典、分支路径以及所述业务的业务规则,生成所述业务的测试用例,包括:

根据用户输入的业务要素和/或分支路径,生成所述业务的部分测试用例。

本申请第二方面提供一种基于用户操作时序图的测试用例生成方法装置,用于执行上述第一方面中的任一种可行的实现方式中的基于用户操作时序图的测试用例生成方法,具有相同或相似的技术特征和技术效果,本申请不再赘述。

本申请提供的基于用户操作时序图的测试用例生成装置包括用于实施第一方面的任意一种方法的若干个功能单元。举例来说,基于用户操作时序图的测试用例生成装置包括:

接收模块,用于获取业务的用户操作时序图,所述用户操作时序图包括至少一个业务要素和业务要素间时序关系;

解析模块,用于采用时序遍历算法和逆向分支识别算法,对所述用户操作时序图进行解析,获取所述业务的所有业务要素和所有分支路径,任一分支路径中每个业务要素只存在一个后续业务要素;

配置模块,用于设置各所述业务要素的数据字典,所述业务要素的数据字典包括业务要素的所有取值以及各取值的分离方式;同一测试用例中的各业务要素的取值具有相同的分离方式;

生成模块,用于根据所述业务的业务要素的数据字典、分支路径以及所述业务的业务规则,生成所述业务的测试用例。

在一种可行的实现方式中,所述解析模块,具体用于执行以下步骤:

步骤1、在所述用户操作时序图的所有业务要素中,确定所有入口要素,所述入口要素为只有后续业务要素没有前序业务要素的业务要素;

步骤2、对于每一个入口要素,将所述入口要素存储在数据库中,分别判断所述入口要素的每一个后续业务要素是否已经存储在数据库中;

步骤3、对于每一个未存储在数据库中的后续业务要素,建立所述入口要素和所述未存储在数据库中的后续业务要素的分支路径,将所述分支路径存储在数据库中;

步骤4、对于每一个所述未存储在数据库中的后续业务要素,将所述未存储在数据库中的后续业务要素存储在数据库中,将所述未存储在数据库中的后续业务要素作为新的当前业务要素,判断所述新的当前业务要素是否存在后续业务要素;

步骤5、若存在,则对于所述新的当前业务要素的每一个未存储在数据库中的后续业务要素,根据所述新的当前业务要素的每一个未存储在数据库中的后续业务要素,扩展存储在数据库中的分支路径;重复执行上述步骤4直至新的当前业务要素不存在后续业务要素。

在一种可行的实现方式中,所述解析模块还用于:

对于每一个所述当前业务要素的存储在数据库中的后续业务要素,根据所述存储在数据库中的后续业务要素、以及数据库中包含所述存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

在一种可行的实现方式中,所述解析模块还用于:

若所述存储在数据库中的后续业务要素是所述当前业务要素的前序业务要素,根据所述存储在数据库中的后续业务要素、所述存储在数据库中的后续业务要素的循环次数、以及数据库中包含所述存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

在一种可行的实现方式中,所述用户操作时序图中的业务要素为接口的输入字段或输出字段。

在一种可行的实现方式中,所述接收模块,具体用于获取至少一个业务的用户操作时序图;

对应的,所述解析模块还用于,确定各业务间相同的业务要素,根据所述相同的业务要素、各业务的业务要素的数据字典、分支路径以及业务规则,生成测试用例。

在一种可行的实现方式中,所述生成模块,具体用于根据用户输入的业务要素和/或分支路径,生成所述业务的部分测试用例。

本申请第三方面还提供一种电子设备,处理器、存储器和计算机程序;

计算机程序存储在存储器中,处理器运行计算机程序执行如上述第一方面中任一项的基于用户操作时序图的测试用例生成方法。

本申请第四方面提供一种计算机存储介质,存储介质包括计算机程序,计算机程序用于实现如上述第一方面中任一项的基于用户操作时序图的测试用例生成方法。

本申请第五方面提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如上述第一方面中任一项的基于用户操作时序图的测试用例生成方法。

本申请第六方面提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的电子设备执行如上述第一方面中任一项的基于用户操作时序图的测试用例生成方法。

本申请的在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请一实施例提供的一种用户操作时序图的示意图;

图2为本申请一实施例提供的另一种用户操作时序图的示意图;

图3为本申请一实施例提供的基于用户操作时序图的测试用例生成方法的流程示意图;

图4为本申请一实施例提供的基于用户操作时序图的提取分支路径的方法的流程示意图;

图5为本申请一实施例提供的再一种用户操作时序图的示意图;

图6为本申请一实施例提供的基于用户操作时序图的测试用例生成装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本发明的描述中,还需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请以下实施例中至少提供了一种基于用户操作时序图的测试用例生成方法和装置。下面采用具体实施例,对本申请提供的基于用户操作时序图的测试用例生成方法和装置进行详细说明。下面几个具体的实施例中,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本申请一实施例提供的一种用户操作时序图的示意图,图2为本申请一实施例提供的另一种用户操作时序图的示意图。在生成测试用例前,测试人员可根据项目的软需文档和/或系统设计文档,依据用户的操作使用习惯绘制的交易操作时序图如图1、图2所示。图1和图2示例性的可以为visio格式。图1和图2分别示出了一种业务的用户操作时序图,图中每一个时序步骤为业务的一个业务要素,图中的箭头指示了业务要素间时序关系,可以理解的是,图1和图2仅仅是用户操作时序图的示意,而不是限定。

图3为本申请一实施例提供的基于用户操作时序图的测试用例生成方法的流程示意图。本实施例提供的测试用例生成方法中,从用户操作时序图中提取出业务要素和分支路径,并根据补充的业务要素的数据字典以及业务的业务规则,生成测试用例。本实施例提供的测试用例生成方法可应用于基于用户操作时序图的测试用例生成装置,该装置可以为计算机、服务器等电子设备。如图3所示,基于用户操作时序图的测试用例生成包括:

s101、获取业务的用户操作时序图。

其中,用户操作时序图包括至少一个业务要素和业务要素间时序关系。

示例性的,业务的用户操作时序图可以如图1所示,业务可以示例性的为转账、账户查询等交易。在获取用户操作时序图时,可以为用户将业务的操作时序图上传服务器。

s102、采用时序遍历算法和逆向分支识别算法,对用户操作时序图进行解析,获取业务的所有业务要素和所有分支路径。

其中,任一分支路径中每个业务要素只存在一个后续业务要素。

示例性的,在用户操作时序图中提取所有业务要素,对所有业务要素进行遍历,采用时序遍历算法和逆向分支识别算法,在用户操作时序图中提取出所有的分支路径。

图4为本申请一实施例提供的基于用户操作时序图的提取分支路径的方法的流程示意图,如图4所示,提取分支路径的方式可以包括:

步骤1、在用户操作时序图的所有业务要素中,确定所有入口要素。

其中,入口要素为只有后续业务要素没有前序业务要素的业务要素。

示例性的,参照图1,图1中的时序步骤1为一个入口要素,时序步骤2为入口要素的后续业务要素,时序步骤3和时序步骤4均为时序步骤2的后续业务要素,时序步骤1是时序步骤2的前序业务要素。

可以理解的是,用户操作时序图可以存在一个或多个入口要素。

步骤2、对于每一个入口要素,将入口要素存储在数据库中,分别判断入口要素的每一个后续业务要素是否已经存储在数据库中。

示例性的,考虑到以每一个入口要素为起始业务要素,按照时序从前到后的顺序,将用户操作时序图进行遍历,因此,可能存在某一个入口要素的后续业务要素为已经遍历过的业务要素的情形,因此,对于每一个入口要素的每一个后续业务要素,都需要判断是否已经存储在数据库中。

示例性的,在遍历生成分支路径时,可以按照入口要素的编号从小到大的顺序,也可以随机,还可以按照入口要素的后续业务要素数量从少到多的顺序进行。示例性的,对于存在多个后续业务要素的当前业务要素,均可按照上述任一原则进行处理。参照图1,可通过遍历先得到分支路径1:时序步骤1--->时序步骤2--->时序步骤3--->时序步骤6,再得到分支路径2:时序步骤1--->时序步骤2--->时序步骤3--->时序步骤6;最后得到分支路径3:时序步骤1--->时序步骤2--->时序步骤4--->时序步骤7。

步骤3、对于每一个未存储在数据库中的后续业务要素,建立入口要素和未存储在数据库中的后续业务要素的分支路径,将分支路径存储在数据库中。

示例性的,对于未存储在数据库中的后续业务要素,也即没有遍历到的业务要素,例如图1中的时序步骤2,建立由时序步骤1和时序步骤2构成的分支路径,可以理解的是,分支路径的数量即为时序步骤1的后续业务要素的数量。在生成分支路径后,将分支路径存储在数据库中。

可选的,对于每一个当前业务要素的存储在数据库中的后续业务要素,根据存储在数据库中的后续业务要素、以及数据库中包含存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

示例性的,假设图1中时序步骤4还存在一个前序业务要素时序步骤0,时序步骤0也是一个入口要素,则在以时序步骤0为起点的遍历过程中,对于时序步骤0的后续业务要素时序步骤4以及时序步骤4所涉及的分支路径(分支路径3)是已经存储在数据库中的,此时,可基于时序步骤4,以及分支路径3,扩展已有分支路径,得到新的分支路径4:时序步骤0--->时序步骤4--->时序步骤7。也即在时序步骤0所在的已有分支路径的尾部,续上从时序步骤4开始的所有分支路径。

步骤4、对于每一个未存储在数据库中的后续业务要素,将未存储在数据库中的后续业务要素存储在数据库中,将未存储在数据库中的后续业务要素作为新的当前业务要素,判断新的当前业务要素是否存在后续业务要素。

示例性的,在建立了分支路径,并存储了业务要素和分支路径后,继续基于该未存储在数据库中的后续业务要素进行遍历,此时,将未存储在数据库中的后续业务要素作为当前业务要素,判断该当前业务要素是否存在后续业务要素。参照图1,在确定了分支路径:时序步骤1--->时序步骤2后,将时序步骤2存储在数据库中,并将时序步骤2作为新的当前业务要素,判断时序步骤2是否存在后续业务要素。

可以理解的是,当某一个新的当前业务要素不存在后续业务要素时,当前分支路径结束。继续执行步骤4,判断另一个新的当前业务要素是否存在后续业务要素,直至判断完所有的新的当前业务要素。

若存在后续业务要素,则当前分支路径还需扩展。可以理解的是,当前业务要素的后续业务要素数量为n,当前业务要素原本涉及的分支路径数量为m时,当前业务要素所述涉及的分支路径数量扩展为nxm个。其中n和m均为正整数。

步骤5、若存在,对于新的当前业务要素的每一个未存储在数据库中的后续业务要素,根据新的当前业务要素的每一个未存储在数据库中的后续业务要素,扩展存储在数据库中的分支路径;重复执行上述步骤4直至新的当前业务要素不存在后续业务要素。

示例性的,参照图1,对于未存储在数据库中的后续业务要素,时序步骤3和时序步骤4,根据时序步骤3和时序步骤4,扩展存储在数据库中的分支路径;也即将存储在数据库中的一条分支路径:时序步骤1--->时序步骤2,扩展为两条分支路径:时序步骤1--->时序步骤2--->时序步骤3,以及时序步骤1--->时序步骤2--->时序步骤4。

再次执行步骤4,也即将时序步骤3和时序步骤4存储只数据库中,将时序步骤3和时序步骤4作为新的当前业务要素,判断时序步骤3和时序步骤4是否存在后续业务要素。示例性的,当时序步骤3作为当前业务要素时,由于时序步骤3存在后续业务要素,则执行步骤5,根据时序步骤3的两个后续业务要素时序步骤5和时序步骤6,可确定两条分支路径,时序步骤1--->时序步骤2--->时序步骤3--->时序步骤6,以及时序步骤1--->时序步骤2--->时序步骤3--->时序步骤6;对于时序步骤5和时序步骤6,由于均不存在后续业务要素,进而可确定得到两条分支路径1和2。再次以当时序步骤4作为当前业务要素重复执行步骤4和5。

可以理解的是,在步骤5中,对于每一个新的当前业务要素的每一个存储在数据库中的后续业务要素,根据存储在数据库中的后续业务要素、以及数据库中包含存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。具体扩展方式与步骤4中的详细介绍方式相同,本步骤不再详细赘述。

可选的,若存储在数据库中的后续业务要素是当前业务要素的前序业务要素,则根据存储在数据库中的后续业务要素、存储在数据库中的后续业务要素的循环次数、以及数据库中包含存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

示例性的,参照图2,新的当前业务要素的存储在数据库中的后续业务要素中,存在一种特殊的后续业务要素,例如时序步骤5的后续业务要素时序步骤2,是当前业务要素的前序业务要素,也即构成循环,此时,在扩展分支路径时,可根据预设的时序步骤2的预设的循环次数确定分支路径,例如,当时序步骤2的预设的循环次数为2时,图2中的分支路径共4条,分支路径为4条,分支路径1):时序步骤1--->时序步骤2--->时序步骤3--->时序步骤6;分支路径2):时序步骤1--->时序步骤2--->时序步骤4--->时序步骤7--->时序步骤8;分支路径3):时序步骤1--->时序步骤2--->时序步骤4--->时序步骤7--->时序步骤5--->时序步骤2--->时序步骤3--->时序步骤6;分支路径4):时序步骤1--->时序步骤2--->时序步骤4--->时序步骤7--->时序步骤5--->时序步骤2--->时序步骤4--->时序步骤7--->时序步骤8。

可选的,还可以将各业务要素的前序业务要素和后续业务要素存储在数据库中。

s103、设置各业务要素的数据字典。

其中,业务要素的数据字典包括业务要素的所有取值以及各取值的分离方式;同一测试用例中的各业务要素的取值具有相同的分离方式。

示例性的,业务要素的数据字典可以采用数据字典导入的方式。业务要素的数据字典包括业务要素的所有取值,例如,当业务为转账,业务要素为币种时,业务要素的取值包括人民币、美元等。数据字典还包括业务要素各取值的分离方式。示例性的,一个取值可以支持多个分离方式。

示例性的,测试用例冗余度可通过业务规则设置和分离方式设置大大降低。

s104、根据业务的业务要素的数据字典、分支路径以及业务的业务规则,生成业务的测试用例。

示例性的,在生成测试用例时,对于每一条分支路径,将分支路径上的所有业务要素的所有取值进行排列组合,得到测试用例,为避免可能存在的业务要素取值矛盾,例如,假设在转账业务中存在两个业务要素是否跨省和币种,可能存在某些币种不支持跨省转账的情况,此时,需考虑每个业务要素取值的分离方式,确保具有相同分离方式的取值才可以组合,从而得到合适的测试用例,也即同一测试用例中,各业务要素的取值具有相同的分离方式。

示例性的,业务的业务规则可以采用导入的方式,在生成测试用例时,可根据需求导入一个或多个业务的业务规则。一个可能的业务规则举例如下:对于转账业务,存在业务要素包括:转账金额,和验证方式等,在实际转账过程中,对于转账金额大于预设金额时,验证方式需为证书验证,对于转账金额不大于预设金额时,验证方式可以为短信验证。

示例性的,还可以根据用户输入的业务要素和/或分支路径,生成业务的部分测试用例。

本申请实施例提供的基于用户操作时序图的测试用例生成方法中,获取业务的用户操作时序图,用户操作时序图包括至少一个业务要素和业务要素间时序关系;采用时序遍历算法和逆向分支识别算法,对用户操作时序图进行解析,获取业务的所有业务要素和所有分支路径,任一分支路径中每个业务要素只存在一个后续业务要素;设置各业务要素的数据字典,业务要素的数据字典包括业务要素的所有取值以及各取值的分离方式;同一测试用例中的各业务要素的取值具有相同的分离方式;根据业务的业务要素的数据字典、分支路径以及业务的业务规则,生成业务的测试用例。本申请从用户操作时序图中提取出业务要素和分支路径,并根据补充的业务要素的数据字典以及业务的业务规则,生成测试用例,可精准生成符合客户真实操作顺序的自动化测试用例与手工测试用例,达到对客户使用全场景进行测试覆盖的目的,通过要素-数据字典-分支逻辑三维算法可生成全类型的精准的测试用例,保证测试用例的正确性和全面性,彻底解决了手工编写测试用例的耗时长、不准确、易遗漏的问题;对功能要素的数据字典和分支逻辑进行分离方式设置,可以实现对要素的数据字典进行各类智能组合,对分支逻辑进行遍历算法筛检控制,最终实现自动生成的测试用例无冗余,更准确;通过模拟的用户真实操作时序图,还可对现有软件的测试用例质量进行检核,以验证其正确性和全面性。

示例性的,本申请提供的基于用户操作时序图的测试用例生成方法还可以用于生成接口的测试用例,在具体应用时,用户操作时序图中的业务要素为接口的输入字段或输出字段。

图5为本申请一实施例提供的再一种用户操作时序图的示意图,如图5中接口a存在用户操作时序图,包括连续的3个输入字段和3个输出字段,将接口a的3个输入字段和3个输出字段作为业务要素,进行排序连接,示例性的,输入字段在时序上早于输出字段。

采用上述实施例提供的测试用例生成方法,则可得到一条分支路径,并对各业务要素进行数据字典补充,包括业务要素的所有取值以及各取值的分离方式;再根据该分支路径上的业务要素的数据字典中的不同分离方式,生成接口的测试用例。

用户可以根据获取到的接口的测试用例,采用手工测试的方式对软件接口进行测试,比较在预设输入字段的情况下与输出字段与预设输出字段是否一致。

示例性的,对于多个接口可以串联起来,生成多业务多场景的流程串联测试用例,如图5所示,接口c存在用户操作时序图,包括连续的3个输入字段和3个输出字段。在串联时,应注意在先的接口a中的输出字段的取值应符合预设条件,例如,输出字段2的取值为交易成功时,才可将接口c与接口a关联。

示例性的,本申请提供的测试用例生成方法可以为生成自动化测试用例、手工测试用例以及接口测试用例。

示例性的,在上述的基于用户操作时序图的测试用例生成方法的基础上,还提供一种将多个业务串联处理的方法,具体的,获取业务的用户操作时序图,具体包括:获取至少一个业务的用户操作时序图。对应的,根据业务的业务要素的数据字典、分支路径以及业务的业务规则,生成业务的测试用例,包括:

确定各业务间相同的业务要素,根据相同的业务要素、各业务的业务要素的数据字典、分支路径以及业务规则,生成测试用例。

示例性的,对于不同的业务,在生成测试用例时,可以分开生成,也可以考虑到不同业务间存在的相同业务要素,将不同业务的用户操作时序图同时导入,根据提取出相同的业务要素,和/或相同的分支路径段,来生成串联的测试用例。例如对于转账和查询业务,可以对同一账户先执行转账业务,再执行查询业务,本申请实施例可以将多个业务融合生成测试用例,可提高测试效率。

本申请实施例中要素为输入项,可直接调用输入项测试用例,将输入项测试用例融入至本申请提供的测试用例中。

本申请还提供一种基于用户操作时序图的测试用例生成装置,用于执行上述图3至图4所示的任一实施例中的基于用户操作时序图的测试用例生成方法,具有相同或相似的技术特征和技术效果。

本申请还提供一种基于用户操作时序图的测试用例生成装置,可以使用单机或者b/s或者c/s架构,即可以使用单机模式或者浏览器或者客户端形式。其它的web服务器、数据库服务器、网络部署等可以根据系统交易规模和用户数进行扩展,如增加redis或使用分布式扩展,以满足团队使用的需要,但是应用架构保持不变。

图6为本申请一实施例提供的基于用户操作时序图的测试用例生成装置的结构示意图。如图6所示,基于用户操作时序图的测试用例生成装置包括:

接收模块11,用于获取业务的用户操作时序图,用户操作时序图包括至少一个业务要素和业务要素间时序关系;

解析模块12,用于采用时序遍历算法和逆向分支识别算法,对用户操作时序图进行解析,获取业务的所有业务要素和所有分支路径,任一分支路径中每个业务要素只存在一个后续业务要素;

配置模块13,用于设置各业务要素的数据字典,业务要素的数据字典包括业务要素的所有取值以及各取值的分离方式;同一测试用例中的各业务要素的取值具有相同的分离方式;

生成模块14,用于根据业务的业务要素的数据字典、分支路径以及业务的业务规则,生成业务的测试用例。

可选的,解析模块12,具体用于执行以下步骤:

步骤1、在用户操作时序图的所有业务要素中,确定所有入口要素,入口要素为只有后续业务要素没有前序业务要素的业务要素;

步骤2、对于每一个入口要素,将入口要素存储在数据库中,分别判断入口要素的每一个后续业务要素是否已经存储在数据库中;

步骤3、对于每一个未存储在数据库中的后续业务要素,建立入口要素和未存储在数据库中的后续业务要素的分支路径,将分支路径存储在数据库中;

步骤4、对于每一个未存储在数据库中的后续业务要素,将未存储在数据库中的后续业务要素存储在数据库中,将未存储在数据库中的后续业务要素作为新的当前业务要素,判断新的当前业务要素是否存在后续业务要素;

步骤5、若存在,则对于新的当前业务要素的每一个未存储在数据库中的后续业务要素,根据新的当前业务要素的每一个未存储在数据库中的后续业务要素,扩展存储在数据库中的分支路径;重复执行上述步骤4直至新的当前业务要素不存在后续业务要素。

可选的,解析模块12还用于:

对于每一个当前业务要素的存储在数据库中的后续业务要素,根据存储在数据库中的后续业务要素、以及数据库中包含存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

可选的,解析模块12还用于:

若存储在数据库中的后续业务要素是当前业务要素的前序业务要素,根据存储在数据库中的后续业务要素、存储在数据库中的后续业务要素的循环次数、以及数据库中包含存储在数据库中的后续业务要素的所有分支路径,扩展数据库中的分支路径。

可选的,所述用户操作时序图中的业务要素为接口的输入字段或输出字段。

可选的,接收模块11,具体用于获取至少一个业务的用户操作时序图;

对应的,解析模块12还用于,确定各业务间相同的业务要素,根据相同的业务要素、各业务的业务要素的数据字典、分支路径以及业务规则,生成测试用例。

可选的,所述生成模块14,具体用于根据用户输入的业务要素和/或分支路径,生成所述业务的部分测试用例。

本申请还提供一种电子设备,包括:处理器、存储器和计算机程序;

计算机程序存储在存储器中,处理器运行计算机程序执行如上述图3-4所示的任一实施例中的基于用户操作时序图的测试用例生成方法。

本申请还提供一种计算机存储介质,存储介质包括计算机程序,计算机程序用于实现如上述图3-4所示的任一实施例中的基于用户操作时序图的测试用例生成方法。

本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如上述图3-4所示的任一实施例中的基于用户操作时序图的测试用例生成方法。

本申请还提供一种芯片,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得安装有所述芯片的电子设备执行如上述图3-4所示的任一实施例中的基于用户操作时序图的测试用例生成方法。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

本申请实施例中涉及的处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本申请实施例中涉及的存储器可以是非易失性存储器,比如硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在上述各实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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