测试用例的自动化构建方法、装置、电子设备及存储介质转让专利

申请号 : CN202311550269.2

文献号 : CN117271373B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘志军

申请人 : 太平金融科技服务(上海)有限公司深圳分公司太平养老保险股份有限公司

摘要 :

本发明公开了一种测试用例的自动化构建方法、装置、设备及介质,该方法包括:对自动化测试指令进行自然语言处理,获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;将测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;将测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;将目标数据标签添加至目标自动化测试脚本中,以生成与自动化测试指令匹配的目标自动化测试用例。本发明实施例的技术方案,能够从自动化测试指令中准确的识别出满足测试需求的数据标签和测试脚本,并自动化成生成测试用例,提高了测试用例的生成效率。

权利要求 :

1.一种测试用例的自动化构建方法,其特征在于,包括:对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;

将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;

将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;

其中,所述数据标签和所述脚本标签中均包括多层级标签项;

将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例;

所述将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签,包括:按照从高层级向低层级的顺序,依次获取比对标签层级,并在数据标签集合的各数据标签中,获取与所述比对标签层级匹配的层级标签项,其中,所述数据标签集合初始化为全部测试数据的数据标签;

将所述测试数据描述因子分别与每个所述层级标签项进行匹配;

如果匹配到至少一个目标层级标签项,且所述比对标签层级不为末位层级,则根据所述目标层级标签项所属的数据标签更新所述数据标签集合后,返回执行按照从高层级向低层级的顺序,获取比对标签层级的操作;

如果匹配到至少一个目标层级标签项,且所述比对标签层级为末位层级,则在所述至少一个目标层级标签项所属的数据标签中确定所述目标数据标签;

如果未匹配到任一层级标签项,则在所述数据标签集合中确定所述目标数据标签。

2.根据权利要求1所述的方法,其特征在于,在所述至少一个目标层级标签项所属的数据标签中确定所述目标数据标签,包括:如果目标层级标签项的数量唯一,则将所述目标层级标签项所属的数据标签,确定为目标数据标签;

如果目标层级标签项的数量不唯一,则分别获取各所述目标层级标签项的优先等级;

将优先等级最高的目标层级标签项所属的数据标签,确定为目标数据标签。

3.根据权利要求1所述的方法,其特征在于,在所述数据标签集合中确定所述目标数据标签,包括:在所述数据标签集合的各数据标签中,获取与所述比对标签层级匹配的各层级标签项的优先等级;

将优先等级最高的层级标签项所属的数据标签,确定为目标数据标签。

4.根据权利要求1‑3任一项所述的方法,其特征在于,在将所述目标数据标签添加至所述目标自动化测试脚本中之后,还包括:触发执行所述目标自动化测试用例;

在所述目标自动化测试用例的执行过程中,每当检测到所述目标数据标签时,从所述自动化测试数据集中获取与所述目标数据标签匹配的目标测试数据,并基于所述目标测试数据,继续执行所述目标自动化测试用例;

在所述目标自动化测试用例执行完成后,输出自动化测试结果。

5.根据权利要求4所述的方法,其特征在于,在输出自动化测试结果之后,还包括:获取与所述自动化测试结果匹配的测试效果评分;

根据所述测试效果评分,更新所述目标自动化测试脚本以及所述目标数据标签中设定层级标签项的优先等级。

6.根据权利要求4所述的方法,其特征在于,在输出自动化测试结果之后,还包括:如果在短时间内再次基于至少一个自动化测试调整指令,生成至少一个新的自动化测试用例进行自动化测试,则获取与每个所述自动化测试调整指令分别匹配的调整自动化测试脚本以及调整数据标签;

更新所述目标自动化测试脚本、所述目标数据标签、所述调整自动化测试脚本以及所述调整数据标签中设定层级标签项的优先等级。

7.一种测试用例的自动化构建装置,其特征在于,包括:测试指令处理模块,用于对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;

数据标签获取模块,用于将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;

自动化测试脚本获取模块,用于将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;

其中,所述数据标签和所述脚本标签中均包括多层级标签项;

自动化测试用例生成模块,用将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例;

数据标签获取模块,具体用于:

按照从高层级向低层级的顺序,依次获取比对标签层级,并在数据标签集合的各数据标签中,获取与比对标签层级匹配的层级标签项,其中,数据标签集合初始化为全部测试数据的数据标签;

将测试数据描述因子分别与每个层级标签项进行匹配;

如果匹配到至少一个目标层级标签项,且比对标签层级不为末位层级,则根据目标层级标签项所属的数据标签更新数据标签集合后,返回执行按照从高层级向低层级的顺序,获取比对标签层级的操作;

如果匹配到至少一个目标层级标签项,且比对标签层级为末位层级,则在至少一个目标层级标签项所属的数据标签中确定目标数据标签;

如果未匹配到任一层级标签项,则在数据标签集合中确定目标数据标签。

8.一种电子设备,其特征在于,所述电子设备包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑6中任一项所述的测试用例的自动化构建方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1‑6中任一项所述的测试用例的自动化构建方法。

说明书 :

测试用例的自动化构建方法、装置、电子设备及存储介质

技术领域

[0001] 本发明涉及软件测试技术领域,尤其涉及一种测试用例的自动化构建方法、装置、电子设备及存储介质。

背景技术

[0002] 在软件正式投入使用之前,需要在规定的条件下对软件进行测试,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估。
[0003] 相关技术中,是通过Selenium、Jmeter等软件测试工具对软件进行测试。发明人在实现本发明的过程中,发现现有方法存在如下缺陷:测试工具的测试方法较为机械,缺乏测试用例的智能分析和优化能力,扩展性较差;同时,测试用例需要人工编写,编写质量受到人员水平影响参差不齐,人力成本投入大。

发明内容

[0004] 本发明提供了一种测试用例的自动化构建方法、装置、电子设备及存储介质,以提供一种高效、准确的构建测试用例的新技术,有效节约人力成本的投入。
[0005] 根据本发明实施例的一方面,提供了一种测试用例的自动化构建方法,包括:
[0006] 对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;
[0007] 将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;
[0008] 将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;
[0009] 其中,所述数据标签和所述脚本标签中均包括多层级标签项;
[0010] 将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例。
[0011] 根据本发明实施例的另一方面,提供了一种测试用例的自动化构建装置,包括:
[0012] 测试指令处理模块,用于对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;
[0013] 数据标签获取模块,用于将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;
[0014] 自动化测试脚本获取模块,用于将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;
[0015] 其中,所述数据标签和所述脚本标签中均包括多层级标签项;
[0016] 自动化测试用例生成模块,用将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例。
[0017] 根据本发明实施例的另一方面,提供了一种电子设备,所述电子设备包括:
[0018] 至少一个处理器;以及
[0019] 与所述至少一个处理器通信连接的存储器;其中,
[0020] 所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的测试用例的自动化构建方法。
[0021] 根据本发明实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的测试用例的自动化构建方法。
[0022] 本发明实施例的技术方案,通过对自动化测试指令进行自然语言处理,获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;将测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;将测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;其将目标数据标签添加至目标自动化测试脚本中,以生成与自动化测试指令匹配的目标自动化测试用例的技术手段,能够从自动化测试指令中准确的识别出满足测试需求的数据标签和测试脚本,并自动化成生成测试用例,在提高了测试用例的生成效率和准确性的同时,最大程度的节约了人力成本。
[0023] 应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0024] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025] 图1是根据本发明实施例一提供的一种测试用例的自动化构建方法的流程图;
[0026] 图2是根据本发明实施例二提供的另一种测试用例的自动化构建方法的流程图;
[0027] 图3是根据本发明实施例三提供的一种测试用例的自动化构建装置的结构示意图;
[0028] 图4是实现本发明实施例的测试用例的自动化构建方法的电子设备的结构示意图。

具体实施方式

[0029] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0030] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0031] 实施例一
[0032] 图1为本发明实施例一提供的一种测试用例的自动化构建方法的流程图,本实施例可适用于生成自动化测试用例的情况,该方法可以由测试用例的自动化构建装置来执行,该测试用例的自动化构建装置可以采用硬件和/或软件的形式实现,该测试用例的自动化构建装置可配置于电子设备中。如图1所示,该方法包括:
[0033] S110、对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子。
[0034] 其中,自动化测试指令可以为用户通过自然语言输入的方式,输入到自动化测试程序当中的测试指令,用于指示自动化测试软件根据用户输入的自动化测试指令生成对应的测试用例。例如,自动化测试指令可以是:我想对50‑60岁的男性职工进行支付类的测试。通过对用户输入的自动化测试指令进行自然语言处理,能够从自动化测试指令当中解析出用户想要表达的测试需求信息。可以理解的是,自动化测试用例一般包括两项关键信息,一项是测试脚本另一项是测试数据,通过将测试数据注入至匹配的测试脚本中,可以构建对设定场景进行测试的测试用例。一般来说,不同测试脚本对应不同的测试类型,例如,在金融场景中,测试类型可以包括投保类、理赔类或者支付类等。
[0035] 其中,测试数据描述因子可以为自动化测试指令当中所包含的对测试用例中的测试数据的描述信息,用于描述测试数据的一些关键因素和指标,通过测试数据描述因子能够获取到此次自动化测试所需使用的采样数据。测试数据描述因子能够帮助自动化测试程序更好的理解和选择测试数据,以确保测试的准确性和完整性,简化测试数据的分析和解释,提高测试的可重复性和可维护性。
[0036] 其中,测试类型描述因子可以为自动化测试指令当中所包含的对测试用例中的测试脚本的测试类型的描述信息,用于描述测试类型的关键因素和指标。通过测试类型描述因子可以使自动化测试程序更好地确定此次测试对应的测试类型。通过对测试类型的描述和规定,可以提高测试的准确性和完整性。
[0037] 具体的,对自动化测试指令进行自然语言处理,获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子,可以是用户在有生成自动化测试用例的需求时,向自动化测试程序输入语音或者文字形式的自动测试指令,自动化测试程序在接收到用户所发出的自动化测试指令之后,利用词法分析、语法分析、语义分析等自然语言处理技术对用户输入的自动化测试指令进行处理,进而获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子。本发明对自然语言处理技术不作具体限定,用户可以根据自己的需求自行设定和选取。
[0038] 通过对用户输入的自动化测试指令进行解析和处理,能够匹配到与用户输入的自动化测试指令相匹配的测试数据描述因子和测试类型描述因子,能够获取到用户输入的自动化指令当中所包含的信息,从而根据用户的输入的自动化测试指令精准的定位用户的测试需求。
[0039] S120、将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签。
[0040] 其中,自动化测试数据集可以为用于自动化测试的一组测试数据集合,可以涵盖不同的输入参数、输入边界值或等价分类值、预期结果和其他相关信息。在自动化测试系统当中,使用测试数据集可以提高测试的效率和准确性。
[0041] 其中,测试数据的数据标签可以是一种对测试数据进行标识或分类的方式,用于方便管理和使用测试数据。数据标签通常与测试数据描述因子进行匹配,以提供关于测试数据的更多信息。在自动化测试中,可以创建和使用不同的数据标签来标识和管理测试数据。通过将测试数据分类、分组和标识,可以更好地分析和解释测试结果,发现和解决潜在的缺陷和问题。例如,测试数据的数据标签体系包括:人员信息、证件信息等基础信息和系统生成的数据信息,以及这些数据的数据特征,是属于边界值标签还是等价分类值标签等。
[0042] 其中,目标数据标签可以是测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配之后,得到的优先级最高的数据标签。
[0043] 具体的,将测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签,包括:
[0044] 按照从高层级向低层级的顺序,依次获取比对标签层级,并在数据标签集合的各数据标签中,获取与比对标签层级匹配的层级标签项,其中,数据标签集合初始化为全部测试数据的数据标签;
[0045] 将测试数据描述因子分别与每个层级标签项进行匹配;
[0046] 如果匹配到至少一个目标层级标签项,且比对标签层级不为末位层级,则根据目标层级标签项所属的数据标签更新数据标签集合后,返回执行按照从高层级向低层级的顺序,获取比对标签层级的操作;
[0047] 如果匹配到至少一个目标层级标签项,且比对标签层级为末位层级,则在至少一个目标层级标签项所属的数据标签中确定目标数据标签;
[0048] 如果未匹配到任一层级标签项,则在数据标签集合中确定目标数据标签。
[0049] 具体的,按照从高层级向低层级的顺序,依次获取比对标签层级,并在数据标签集合的各数据标签中,获取与比对标签层级匹配的层级标签项,可以是获取比对标签的最高层级,然后从在数据标签集合中,筛选出与最高层级的比对标签匹配的标签项。标签项可以包括多个标签,因为在一个数据标签集合中可能会有多个标签与最高层级的比对标签匹配,其中,数据标签集合初始化为全部测试数据的数据标签。重复上述步骤,按照层级的高低顺序完成比对标签的匹配,直到获取到比对标签的最低层级。
[0050] 将测试数据描述因子分别与每个层级标签项进行匹配,具体的匹配方法可以根据实际情况而定,例如可以通过数据筛选、数据转换、数据匹配等技术手段来实现。对于无法匹配的描述因子或层级标签项,可以进行特殊处理,例如标记为无效或错误。本发明对于具体的匹配方法不作限定,用户可以根据自己的需求自行设定和选取。
[0051] 具体的,如果匹配到至少一个目标层级标签项,且比对标签层级不为末位层级,则根据目标层级标签项所属的数据标签更新数据标签集合后,返回执行按照从高层级向低层级的顺序,获取比对标签层级的操作,可以为在确定了测试数据描述因子之后,将测试数据描述因子分别与每个层级标签项进行匹配,如果匹配到了至少一个目标层级标签项,则对该目标层级标签项进行判断,如果匹配到的至少一个目标层级标签项不为末位层级,即在该层级标签之下,还有更低级的层级标签,则返回执行按照从高层级向低层级的顺序,继续获取其它的比对层级标签,直至获取到比对标签层级为末位层级。
[0052] 具体的,如果匹配到至少一个目标层级标签项,且比对标签层级为末位层级,则在至少一个目标层级标签项所属的数据标签中确定目标数据标签,可以为在确定了测试数据描述因子之后,将测试数据描述因子分别与每个层级标签项进行匹配,如果匹配到了至少一个目标层级标签项,则对该目标层级标签项进行判断,如果匹配到的至少一个目标层级标签项为末位层级,即在该层级标签之下,没有更低级的层级标签,则在至少一个目标层级标签项所属的数据标签中确定目标数据标签。
[0053] 具体的,如果未匹配到任一层级标签项,则在数据标签集合中确定目标数据标签,可以为在确定了测试数据描述因子之后,将测试数据描述因子分别与每个层级标签项进行匹配,如果将所有层级标签项都进行了匹配之后,未匹配到任一层级标签项,则在数据标签集合中确定目标数据标签。
[0054] 具体的,在至少一个目标层级标签项所属的数据标签中确定目标数据标签,包括:
[0055] 如果目标层级标签项的数量唯一,则将目标层级标签项所属的数据标签,确定为目标数据标签;
[0056] 如果目标层级标签项的数量不唯一,则分别获取各目标层级标签项的优先等级;
[0057] 将优先等级最高的目标层级标签项所属的数据标签,确定为目标数据标签。
[0058] 具体的,如果目标层级标签项的数量唯一,则将目标层级标签项所属的数据标签,确定为目标数据标签,可以是在将测试数据描述因子分别与每个层级标签项进行匹配,匹配到至少一个目标层级标签项,并确定了目标层级标签项之后,对数据标签集合当中所包含的目标层级标签项数量进行检测,如果检测到数据标签集合当中所包含的目标层级标签项数量唯一,则直接将目标层级标签项所属的数据标签,确定为目标数据标签。
[0059] 具体的,如果目标层级标签项的数量不唯一,则分别获取各目标层级标签项的优先等级,将优先等级最高的目标层级标签项所属的数据标签,确定为目标数据标签,可以是在将测试数据描述因子分别与每个层级标签项进行匹配,匹配到至少一个目标层级标签项,并确定了目标层级标签项之后,对数据标签集合当中所包含的目标层级标签项数量进行检测,如果检测到数据标签集合当中所包含的目标层级标签项数量有多个,则获取每个目标层级标签项的优先等级,并将优先等级最高的目标层级标签项所属的数据标签,确定为目标数据标签,其中,各目标层级标签项优先等级可以是预先设置的。
[0060] 具体的,在数据标签集合中确定目标数据标签,包括:
[0061] 在数据标签集合的各数据标签中,获取与比对标签层级匹配的各层级标签项的优先等级;
[0062] 将优先等级最高的层级标签项所属的数据标签,确定为目标数据标签。
[0063] 具体的,在数据标签集合的各数据标签中,获取与比对标签层级匹配的各层级标签项的优先等级,将优先等级最高的层级标签项所属的数据标签,确定为目标数据标签,可以是在将测试数据描述因子分别与每个层级标签项进行匹配,未匹配到任一层级标签项时,则在获取与比对标签层级匹配的各层级标签项的优先等级,并将优先等级最高的层级标签项所属的数据标签,确定为目标数据标签。
[0064] 在一个具体的例子中,自动化测试数据集中各测试数据共包括5个数据标签,分别为:数据标签1:“男性‑>30‑50‑>在职‑>私企”、数据标签2:“女性‑>30‑50‑>在职‑>国企”、数据标签3:“男性‑>50‑60‑>退休‑>私企”、数据标签4“女性‑>30‑50‑>自由职业”以及数据标签5:“男性‑>50‑60‑>退休‑>国企”。
[0065] 如果测试数据描述因子包括:“50‑60,男性、退休职工”,则获取目标数据标签的方式可以为:
[0066] 首先将数据标签1‑5均加入至数据标签集合后,获取数据标签集合各数据标签中的最高层级作为比对标签层级,并在各数据标签中,获取与所述比对标签层级匹配的层级标签项,也即,从数据标签1、3、5中分别提取“男性”,从数据标签2、4中分别提取:“女性”后,将“50‑60,男性、退休职工”分别与上述各层级标签项进行匹配。
[0067] 显然,可以匹配到数据标签1、3、5,进而,可以将数据标签集合中的内容更新为数据标签1、3、5。显然,当前比对标签层级不为末位层级,进而,可以将数据标签集合中各数据标签的第二层级作为比对标签层级后,继续在各数据标签中,获取与所述比对标签层级匹配的层级标签项,也即,从数据标签1中提取“30‑50”,从数据标签3、5中分别提取“50‑60”后,将“50‑60,男性、退休职工”分别与上述各层级标签项进行匹配。
[0068] 显然,可以匹配到数据标签3和5,进而,可以将数据标签集合中的内容更新为数据标签3、5。显然,当前比对标签层级不为末位层级,进而,可以将数据标签集合中各数据标签的第三层级作为比对标签层级后,继续在各数据标签中,获取与所述比对标签层级匹配的层级标签项,也即,从数据标签3中提取“退休”,从数据标签5中提取“退休”后,将“50‑60,男性、退休职工”分别与上述各层级标签项进行匹配。
[0069] 显然,可以匹配到数据标签3和5,进而,可以将数据标签集合中的内容更新为数据标签3、5。显然,当前比对标签层级不为末位层级,进而,可以将数据标签集合中各数据标签的第四层级作为比对标签层级后,继续在各数据标签中,获取与所述比对标签层级匹配的层级标签项,也即,从数据标签3中提取“私企”,从数据标签5中提取“国企”后,将“50‑60,男性、退休职工”分别与上述各层级标签项进行匹配。
[0070] 显然,未匹配到任一层级标签项,此时,可以在当前更新的数据标签集合的各数据标签,也即,数据标签3和5中,获取与所述比对标签层级(也即第四层级)匹配的各层级标签项的优先等级;将优先等级最高的层级标签项所属的数据标签,确定为目标数据标签。
[0071] 在本实施例中,可以为每个数据标签的每个标签层级的层级标签项分别设置匹配的优先等级,进而,可以根据优先等级的取值,确定出目标数据标签。
[0072] 进一步的,假设数据标签3为:“男性(优先等级0.5)‑>50‑60(优先等级0.3)‑>退休(优先等级0.4)‑>私企(优先等级0.7)”,数据标签5为:男性(优先等级0.5)‑>50‑60(优先等级0.3)‑>退休(优先等级0.6)‑>国企(优先等级0.2)”,显然,数据标签3在第四层级的层级标签项的优先等级高于数据标签5,进而,“50‑60,男性、退休职工”这一测试数据描述因子最终匹配到的目标数据标签为数据标签3。
[0073] S130、将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本。
[0074] 其中,自动化测试脚本集可以为一组或多组自动化测试脚本的集合,这些脚本使用不同的编程语言和测试框架来自动化执行测试用例。自动化测试脚本是一组编写成程序的指令,用于自动化执行测试用例。它通常是以代码形式存在,包含了一系列的指令和动作,可以模拟人工测试过程,对软件进行自动化测试,通常由专门的测试人员或开发人员编写和维护,以确保测试的准确性和完整性。
[0075] 其中,测试脚本的脚本标签是用于对测试脚本进行标识或分类的一种标签,以便快速查找和区分不同的测试脚本。自动化程序可以根据测试人员自定义的脚本标签来实现快速查找脚本。
[0076] 其中,目标自动化测试脚本可以是测试类型描述因子与自动化测试数据集中各测试脚本的脚本标签进行匹配之后,得到的优先级最高的自动化测试脚本。
[0077] 具体的,将测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本,包括:
[0078] 按照从高层级向低层级的顺序,依次获取比对标签层级,并在脚本标签集合的各脚本标签中,获取与比对标签层级匹配的层级标签项,其中,脚本标签集合初始化为全部测试数据的脚本标签;
[0079] 将测试类型描述因子分别与每个层级标签项进行匹配;
[0080] 如果匹配到至少一个目标层级标签项,且比对标签层级不为末位层级,则根据目标层级标签项所属的脚本标签更新脚本标签集合后,返回执行按照从高层级向低层级的顺序,获取比对标签层级的操作;
[0081] 如果匹配到至少一个目标层级标签项,且比对标签层级为末位层级,则在至少一个目标层级标签项所属的脚本标签中确定目标脚本标签;
[0082] 如果未匹配到任一层级标签项,则在脚本标签集合中确定目标脚本标签。
[0083] 具体的,在至少一个目标层级标签项所属的脚本标签中确定目标脚本标签,包括:
[0084] 如果目标层级标签项的数量唯一,则将目标层级标签项所属的脚本标签,确定为目标脚本标签;
[0085] 如果目标层级标签项的数量不唯一,则分别获取各目标层级标签项的优先等级;
[0086] 将优先等级最高的目标层级标签项所属的脚本标签,确定为目标脚本标签。
[0087] 具体的,在脚本标签集合中确定目标脚本标签,包括:
[0088] 在脚本标签集合的各脚本标签中,获取与比对标签层级匹配的各层级标签项的优先等级;
[0089] 将优先等级最高的层级标签项所属的脚本标签,确定为目标脚本标签。
[0090] 在本实施例中,可以采用与确定测试数据描述因子匹配的目标数据标签相类似的方式,获取与测试类型描述因子匹配的目标自动化测试脚本,这里不再进行赘述。
[0091] S140、将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例。
[0092] 具体的,将目标数据标签添加至目标自动化测试脚本中,以生成与自动化测试指令匹配的目标自动化测试用例,可以是在根据测试数据描述因子以及测试类型描述因子确定了对应的目标数据标签以及目标自动化测试脚本之后,将确定的目标数据标签添加至自动化测试脚本的代码当中,将自动化测试脚本当中的数据标签修改为目标数据标签,进而生成与自动化测试指令匹配的目标自动化测试用例。
[0093] 本发明实施例的技术方案,通过对自动化测试指令进行自然语言处理,获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子,将测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签。将测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本,将目标数据标签添加至目标自动化测试脚本中,以生成与自动化测试指令匹配的目标自动化测试用例的技术手段,能够从自动化测试指令当中准确的识别出满足测试需求的数据标签和测试脚本,并自动化成生成测试用例,能够将测试场景进行更全面覆盖,减少由于人员经验不足导致场景缺失的情况,提高了测试用例的生成效率的同时也保证了测试结果的准确性。
[0094] 实施例二
[0095] 图2为本发明实施例二提供的一种测试用例的自动化构建方法的流程图,本发明实施例以上述实施例为基础具体限定了对目标自动化测试脚本以及目标数据标签中设定层级标签项的优化,未在本发明实施例中详尽描述的方案见上述实施例。如图2所示,该方法包括:
[0096] S210、对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子。
[0097] S220、将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签。
[0098] S230、将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本。
[0099] 其中,所述数据标签和所述脚本标签中均包括多层级标签项。
[0100] S240、将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例。
[0101] S250、触发执行所述目标自动化测试用例。
[0102] 具体的,触发执行目标自动化测试用例,可以是在生成与自动化测试指令匹配的目标自动化测试用例之后,测试人员可以触发执行目标自动化测试用例,进而利用自动化测试程序对目标自动化测试用例进行自动化测试,得到对应的自动化测试结果,并根据自动化测试结果,对目标自动化测试脚本以及目标数据标签中设定层级标签项的优化。
[0103] S260、在所述目标自动化测试用例的执行过程中,每当检测到所述目标数据标签时,从所述自动化测试数据集中获取与所述目标数据标签匹配的所述目标测试数据,并基于所述目标测试数据,继续执行所述目标自动化测试用例。
[0104] 具体的,在目标自动化测试用例的执行过程中,每当检测到目标数据标签时,从自动化测试数据集中获取与目标数据标签匹配的目标测试数据,并基于目标测试数据,继续执行目标自动化测试用例,可以是在测试人员可以触发执行目标自动化测试用例之后,利用测试程序执行对目标自动化测试用例的测试,在测试的过程中,如果检测到添加到脚本数据当中的目标数据标签,则从自动化测试数据集中获取与目标数据标签匹配的目标测试数据,并基于匹配到的目标测试数据,继续执行目标自动化测试用例,直至目标自动化测试用例执行完成。
[0105] S270、在所述目标自动化测试用例执行完成后,输出自动化测试结果。
[0106] 具体的,在目标自动化测试用例执行完成后,输出自动化测试结果,可以是在代码中预先添加相应的输出语句或调用相关的测试报告生成工具,进而在目标自动化测试用例执行完成后,输出自动化测试结果。
[0107] 进一步的,在输出自动化测试结果之后,还包括:
[0108] 获取与自动化测试结果匹配的测试效果评分;
[0109] 根据测试效果评分,更新目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级。
[0110] 具体的,获取与自动化测试结果匹配的测试效果评分,可以是在目标自动化测试用例执行完成,获取到输出自动化测试结果之后,将自动化测试结果与预先设定的测试结果进行匹配,然后根据匹配的相似度对目标自动化测试用例的测试效果进行评分,分数越高,则说明自动化测试用例对应的目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级越高。
[0111] 具体的,根据测试效果评分,更新目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级,可以是在获取到目标自动化测试用例的效果评分之后,根据目标自动化测试用例效果评分的分数高低,对目标自动化测试用例对应的目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级进行调整。如果分数较高,则目标自动化测试用例对应的目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级保持不变;如果分数较低,则将目标自动化测试用例对应的目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级调低。
[0112] 进一步的,在输出自动化测试结果之后,还包括:
[0113] 如果在短时间内再次基于至少一个自动化测试调整指令,生成至少一个新的自动化测试用例进行自动化测试,则获取与每个自动化测试调整指令分别匹配的调整自动化测试脚本以及调整数据标签;
[0114] 更新目标自动化测试脚本、目标数据标签、调整自动化测试脚本以及调整数据标签中设定层级标签项的优先等级。
[0115] 具体的,如果在短时间内再次基于至少一个自动化测试调整指令,生成至少一个新的自动化测试用例进行自动化测试,则获取与每个自动化测试调整指令分别匹配的调整自动化测试脚本以及调整数据标签,可以是在根据自动化测试指令生成对应的目标自动化测试用例,并对目标自动化测试用例进行执行之后,如果测试人员在短时间内发起了对前一次的自动化测试指令的调整指令,则根据测试人员调整后的自动化测试指令为其匹配对应的自动化测试用例。并获取每个自动化测试调整指令分别匹配的调整自动化测试脚本以及调整数据标签。
[0116] 具体的,更新目标自动化测试脚本、目标数据标签、调整自动化测试脚本以及调整数据标签中设定层级标签项的优先等级,可以是在获取到测试人员每个自动化测试调整指令分别匹配的调整自动化测试脚本以及调整数据标签之后,将目标自动化测试脚本、目标数据标签更新为调整后的自动化测试指令所匹配到的自动化测试脚本、目标数据标签。并将自动化测试脚本以及调整数据标签中设定层级标签项的优先等级调至最高,进而在测试人员在下次发起类似的自动化测试指令时,为用户匹配优先等级最高的目标测试用例。
[0117] 本发明实施例的技术方案,在将目标数据标签添加至目标自动化测试脚本中,生成与自动化测试指令匹配的目标自动化测试用例之后,通过执行目标自动化测试用例,能够对目标自动化测试用例的测试结果进行检测,并根据测试结果的测试效果评分,对目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级进行更新和调整,测试数据和测试脚本可延展性高,支持标签配置和完善,能够有效的减少维护的成本。
[0118] 实施例三
[0119] 图3为本发明实施例三提供的一种测试用例的自动化构建装置的结构示意图。如图3所示,该装置包括:测试指令处理模块31、数据标签获取模块32、自动化测试脚本获取模块33、自动化测试用例生成模块34。
[0120] 测试指令处理模块31,用于对自动化测试指令进行自然语言处理,获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;
[0121] 数据标签获取模块32,用于将测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;
[0122] 自动化测试脚本获取模块33,用于将测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;
[0123] 其中,数据标签和脚本标签中均包括多层级标签项;
[0124] 自动化测试用例生成模块34,用将目标数据标签添加至目标自动化测试脚本中,以生成与自动化测试指令匹配的目标自动化测试用例。
[0125] 本发明实施例的技术方案,通过对自动化测试指令进行自然语言处理,获取与自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;将测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;将测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;其将目标数据标签添加至目标自动化测试脚本中,以生成与自动化测试指令匹配的目标自动化测试用例的技术手段,能够从自动化测试指令中准确的识别出满足测试需求的数据标签和测试脚本,并自动化成生成测试用例,在提高了测试用例的生成效率和准确性的同时,最大程度的节约了人力成本。
[0126] 进一步的,数据标签获取模块32,具体用于:
[0127] 按照从高层级向低层级的顺序,依次获取比对标签层级,并在数据标签集合的各数据标签中,获取与比对标签层级匹配的层级标签项,其中,数据标签集合初始化为全部测试数据的数据标签;
[0128] 将测试数据描述因子分别与每个层级标签项进行匹配;
[0129] 如果匹配到至少一个目标层级标签项,且比对标签层级不为末位层级,则根据目标层级标签项所属的数据标签更新数据标签集合后,返回执行按照从高层级向低层级的顺序,获取比对标签层级的操作;
[0130] 如果匹配到至少一个目标层级标签项,且比对标签层级为末位层级,则在至少一个目标层级标签项所属的数据标签中确定目标数据标签;
[0131] 如果未匹配到任一层级标签项,则在数据标签集合中确定目标数据标签。
[0132] 进一步的,数据标签获取模块32,具体还用于:
[0133] 如果目标层级标签项的数量唯一,则将目标层级标签项所属的数据标签,确定为目标数据标签;
[0134] 如果目标层级标签项的数量不唯一,则分别获取各目标层级标签项的优先等级;
[0135] 将优先等级最高的目标层级标签项所属的数据标签,确定为目标数据标签。
[0136] 进一步的,数据标签获取模块32,具体还用于:
[0137] 在数据标签集合的各数据标签中,获取与比对标签层级匹配的各层级标签项的优先等级;
[0138] 将优先等级最高的层级标签项所属的数据标签,确定为目标数据标签。
[0139] 进一步的,测试用例的自动化构建装置,还包括:
[0140] 测试用例执行模块,用于在将目标数据标签添加至目标自动化测试脚本中之后,触发执行目标自动化测试用例;
[0141] 在目标自动化测试用例的执行过程中,每当检测到目标数据标签时,从自动化测试数据集中获取与目标数据标签匹配的目标测试数据,并基于目标测试数据,继续执行目标自动化测试用例;
[0142] 在目标自动化测试用例执行完成后,输出自动化测试结果。
[0143] 进一步的,测试用例的自动化构建装置,还包括:
[0144] 第一等级更新模块,用于在输出自动化测试结果之后,获取与自动化测试结果匹配的测试效果评分;
[0145] 根据测试效果评分,更新目标自动化测试脚本以及目标数据标签中设定层级标签项的优先等级。
[0146] 进一步的,测试用例的自动化构建装置,还包括:
[0147] 第二等级更新模块,用于在输出自动化测试结果之后,如果在短时间内再次基于至少一个自动化测试调整指令,生成至少一个新的自动化测试用例进行自动化测试,则获取与每个自动化测试调整指令分别匹配的调整自动化测试脚本以及调整数据标签;
[0148] 更新目标自动化测试脚本、目标数据标签、调整自动化测试脚本以及调整数据标签中设定层级标签项的优先等级。
[0149] 本发明实施例所提供的测试用例的自动化构建装置可执行本发明任意实施例所提供的测试用例的自动化构建方法,具备执行方法相应的功能模块和有益效果。
[0150] 实施例四
[0151] 图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0152] 如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
[0153] 电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0154] 处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如测试用例的自动化构建方法。
[0155] 也即:对自动化测试指令进行自然语言处理,获取与所述自动化测试指令匹配的至少一项测试数据描述因子以及至少一项测试类型描述因子;
[0156] 将所述测试数据描述因子与自动化测试数据集中各测试数据的数据标签进行匹配,获取目标数据标签;
[0157] 将所述测试类型描述因子与自动化测试脚本集中各测试脚本的脚本标签进行匹配,获取目标自动化测试脚本;
[0158] 其中,所述数据标签和所述脚本标签中均包括多层级标签项;
[0159] 将所述目标数据标签添加至所述目标自动化测试脚本中,以生成与所述自动化测试指令匹配的目标自动化测试用例。
[0160] 在一些实施例中,测试用例的自动化构建方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的测试用例的自动化构建方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试用例的自动化构建方法。
[0161] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0162] 用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0163] 在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0164] 为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0165] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
[0166] 计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0167] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0168] 上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。