一种基于数据集的测试案例生成方法及其装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于数据集的测试案例生成方法及其装置。
背景技术
数据安全对于金融业至关重要,新业务的上线必须对金融接口可能出现的各种案例进行调试确保万无一失,防止出现重大资金问题。而金融接口的测试案例是以交易为基础的,交易有很多的场景,需通过不同的参数来构造不同的场景,即需要生成不同的案例进行测试。
在测试系统中,惯常的做法是为每个案例都配置专属于自己的一个数据集,所述数据集是用于保存数据内容的数据框架,在测试人员输入了用于生成测试案例的数据内容后,所述数据内容会被存储至数据集中。如为冻结卡支付案例专设一个数据集,该数据集可以包含数据内容:正确的证件号码,手机号码,冻结卡号、冻结卡户名等,如此,该冻结卡支付案例专属的数据集就不能再用于其他交易案例,因为其他交易案例不需要冻结卡号等数据内容。这种将一个测试案例所需的数据内容保存至一个数据集,并设置该数据集专属于该测试案例的方式虽然能满足银行联调的需求,但是每个案例拥有独立的数据集,一些均需被各测试案例用到的基础数据内容也必须为每个测试案例重复配置一次。且在输入测试案例的数据内容时,每个测试案例均需输入全部数据内容,造成测试效率低下。
以上测试案例的生成存在以下问题:数据集专属于特定测试案例而不可复用造成数据集数量繁多、复杂、数据紊乱、测试效率低下。
发明内容
本申请实施例提供一种基于数据集的测试案例生成方法,用以解决现有技术中数据集专属于特定测试案例而不可复用造成数据集数量繁多、复杂、数据紊乱、测试效率低下的问题。
本申请实施例提供一种基于数据集的测试案例生成装置,用以解决现有技术中数据集专属于特定测试案例而不可复用造成数据集数量繁多、复杂、数据紊乱、测试效率低下的问题。
本申请实施例采用下述技术方案:
一种基于数据集的测试案例生成方法,包括:
获取至少两个数据集中的数据内容;
依据特定合并方式合并各数据集内的数据内容并生成测试案例;
其中,所述特定合并方式包括:当不同数据集内存在同种类的数据内容时,第一优先级的数据集内的数据内容覆盖第二优先级的数据集内的同种类的数据内容,然后将覆盖后的数据内容、及各数据集中未被覆盖的数据内容合并。
一种基于数据集的测试案例生成装置,包括:
获取单元,用于获取至少两个数据集中的数据内容;
合并单元,用于依据特定合并方式合并各数据集内的数据内容并生成测试案例,其中,所述特定合并方式包括:当不同数据集内存在同种类的数据内容时,第一优先级的数据集内的数据内容覆盖第二优先级的数据集内的同种类的数据内容,然后将覆盖后的数据内容、及各数据集中未被覆盖的数据内容合并。
本申请实施例提供的上述至少一个方案可以达到下述技术效果:
由于采用为测试案例绑定不同数据集,再以数据集相同种类数据内容覆盖的方式来生成具体测试案例参数集,改变了现有技术中需要为每个测试案例建立专属数据集而使数据集不可复用导致数据集数量繁多、复杂、数据紊乱、测试效率低下的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请提供的基于数据集的测试案例生成方法流程;
图2为本申请提供的基于数据集的测试案例生成装置示意图;
图3为本申请提供的冻结卡支付测试案例的生成示例图;
图4为本申请提供的卡号错误支付测试案例的生成示例图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例1
图1为本申请实施例一提供的基于数据集的测试案例生成方法流程,主要是指采用数据集的方式为测试案例配置测试参数集,无需为每个测试案例创建专属数据集,包括如下步骤:
S101:接收绑定指令,并绑定至少两个数据集ID和待生成的测试案例的特征。
本步骤主要是指依据测试案例所需要生成的目标测试数据内容特征绑定对应的至少两个数据集,本步骤中所述数据集均为未填充数据内容的空数据集,所述空数据集是用于填充数据内容的虚拟单元,所述空数据集接收数据内容后成为若干数据内容项构成的集合。所述数据集包括数据内容、数据集名称及数据集ID。
具体实施步骤为:接收数据集绑定指令,所述数据集绑定指令包含至少两个数据集ID;所述数据集ID是依据待生成的所述测试案例的特征选定的;而后绑定所述数据集ID和待生成的所述测试案例的特征。所述特征是指需要生成的测试案例数据内容与相关数据集的数据内容特征。
所述数据集是系统建立的数据集合,所述数据集依据测试案例需要的数据内容建立,可最大程度地在所述测试案例之间实现共用。所述数据集依据测试案例的需求可以设置若干个,也可以在变化的测试环境中在后台进行修改、新增。
如下表1所示的数据集列表,所述数据集包括数据集名称、数据集ID、及数据内容。所述数据集ID是该数据集的唯一标识,所述测试案例通过关联或绑定所述数据集ID确定使用该数据集。所述数据内容包括纳入本数据集内的所有数据内容,每个测试案例均需绑定一个基础数据集,所述基础数据集表示测试账户正确的身份信息,包括证件号码、证件类型、户名、卡号、预留手机号等内容。
表1所示数据集列表,仅表示了部分数据集,所述数据集可以依据测试业务的不同需求增减数据集。
表1
S102:接收优先级设定规则,并为所述绑定的数据集设定优先级别。
本步骤中所述的数据集均为未填充内容的空数据集。
依据测试案例需生成的目标数据内容特征绑定好所需的数据集后,每一个测试案例可能只需要一个数据集、也可能需要多个数据集,在多个数据集的情况下,需要为所述多个数据集设定优先级。
所述优先级别的设定包括:接收优先级设定规则;依据所述优先级设定规则,为待生成的所述测试案例绑定的各数据集分别设定优先级。
其中,所述优先级别设定规则包括:基础数据集的优先级别与异常类数据集的优先级别不同。
如表2所示的测试案例表,所述数据集ID来自所述表1的数据集列表。所述测试案例中分别属于签约交易、支付交易等不同的交易类型,每个测试案例至少对应一个数据集,即数据集ID编号为01的基础数据集被每一个测试案例所适用。也有部分测试案例需要用到多个数据集的集合,如户名错误的签约案例需要用到基础数据集(ID01)、错误户名数据集(ID05);支付金额超限的测试案例则需要用到基础数据集(ID01)、正常金额数据集(ID06)、超限金额数据集(ID07)。
表2
S103:获取至少两个数据集中的数据内容。
本步骤所述数据集是通过对所述空数据集填充数据内容得到的,首先系统向测试人员推送特定测试案例输入页面;所述特定测试案例输入页面包括所述至少两个数据集的数据内容输入框,所述不同数据集的数据内容输入框相互独立;然后接收测试人员输入的数据内容,所述测试人员通过在所述特定页面的数据内容输入框中输入、或选择、或修改数据内容。
所述至少两个数据集中存在至少一个基础数据集,所述基础数据集的数据内容包括:分别生成不同的测试案例所需要的相同的数据内容。当所述至少两个数据集中存在至少一个基础数据集时,获取至少两个数据集中的数据内容,包括:
获取所述基础数据集的数据内容输入框自动调用的上一次测试案例输入的基础数据集的数据内容;或
获取测试人员对所述自动调用的上一次测试案例输入的基础数据集的数据内容进行修改得到的数据内容。
所述系统具体可以是服务器、个人计算机(Personal Computer,PC)等载体及运行其上的相关的软件平台。
S104:依据特定合并方式合并各数据集内的数据内容并生成测试案例。
所述特定合并方式包括:当各数据集内不存在同种类的数据内容时,直接合并各数据集内的数据内容;当不同数据集内存在同种类的数据内容时,第一优先级的数据集内的数据内容覆盖第二优先级的数据集内的同种类的数据内容,然后将覆盖后的数据内容、及各数据集中未被覆盖的数据内容合并。
最后所述覆盖合并后的数据内容形成一个符合所述测试案例目标的数据内容集合。
如图3所示的冻结卡支付测试案例的生成示例,该测试案例绑定基础数据集01、冻结卡数据集02、正常金额数据集06。所述基础数据集01的数据内容包括卡类型、证件类型、户名、卡号、证件号;所述冻结卡数据集02的数据内容包括户名、卡号、证件号;所述正常金额数据集06的数据内容包括支付金额。上述三个数据集的数据内容均由测试人员在推送的特定页面下输入数据内容,所述基础数据集01接收的数据内容可以进行保存,在下次输入时,直接采用保存的数据内容由测试人员确认即可,避免了测试输入的麻烦,提高了效率。
在冻结卡支付测试案例中,所述冻结卡数据集02的优先级别最高且与所述基础数据集01存在种类相同的数据内容,即户名、卡号、证件号数据内容,如基础数据集01的户名、卡号、证件号分别是张三、11、aa,而冻结卡数据集的户名、卡号、证件号分别为李四、22、bb,则李四、22、bb覆盖张三、11、aa。由此,所述冻结卡数据集02的数据内容覆盖基础数据集01的同种类的部分数据内容,将覆盖后的数据内容、及各数据集未被覆盖的数据内容合并生成测试案例所需的数据内容集合。
同理,如图4所示的卡号错误支付案例,数据集内数据内容的覆盖同图3所示的冻结卡支付案例,只是卡号错误支付案例绑定的错误卡号数据集中只有错误卡号一个数据内容,在覆盖时,仅需将错误卡号覆盖基础数据集内的卡号即可。
生成的测试案例即测试案例所需的数据内容集合被发送到测试系统进行案例测试。通过将具体测试案例与数据集进行解耦,使数据集独立于测试案例而可被不同的测试案例所复用,减轻了测试案例配置数据内容的复杂性,提高了开发效率。还可对测试人员输入的数据集,特别是基础数据集的数据内容进行保存,可为不同的测试案例所用,避免了现有技术中需要为每个测试案例输入全部测试的数据内容所造成效率低下、容易出错的问题。
且一旦需要配置新的测试案例,只需要直接绑定现有的数据集或在后台增加供其使用的集成少数数据内容的数据集即可,大大降低了开发、测试的人力成本。
实施例2
以上为本申请提供的基于数据集的测试案例生成方法,基于同样的思路,本申请实施例二还提供相应的基于数据集的测试案例生成装置,如图2所示。
具体的上述如图2所示的装置一般运行于服务器、或PC上。
图2为本申请实施例二提供的基于数据集的测试案例生成装置的结构示意图,具体包括:
绑定单元201,用于接收绑定指令,并绑定至少两个数据集ID和待生成的测试案例的特征;
设定单元202,用于接收优先级设定指令,并为所述绑定的数据集设定优先级别;
获取单元203,用于获取至少两个数据集中的数据内容;
合并单元204,用于依据特定合并方式合并各数据集内的数据内容并生成测试案例。
所述绑定单元201主要是指依据测试案例所需要生成的目标测试数据内容特征绑定对应的至少两个数据集,在所述绑定单元201、设定单元202中执行过程中涉及的有关数据集均为未填充数据内容的空数据集,所述空数据集是用于填充数据内容的虚拟单元,所述空数据集接收数据内容后成为若干数据内容项构成的集合。所述数据集包括数据内容、数据集名称及数据集ID。
所述绑定单元201操作规则如下:接收数据集绑定指令,所述数据集绑定指令包含至少两个数据集ID;所述数据集ID是依据待生成的所述测试案例的特征选定的;而后绑定所述数据集ID和待生成的所述测试案例的特征。所述特征是指需要生成的测试案例数据内容与相关数据集的数据内容特征。
所述数据集是系统建立的数据集合,所述数据集依据测试案例需要的数据内容建立,可最大程度地在所述测试案例之间实现共用。所述数据集依据测试案例的需求可以设置若干个,也可以在变化的测试环境中在后台进行修改、新增。
如实施例一中表1所示的数据集列表,所述数据集包括数据集名称、数据集ID、及数据内容。所述数据集ID是该数据集的唯一标识,所述测试案例通过关联或绑定所述数据集ID确定使用该数据集。所述数据内容包括纳入本数据集内的所有数据内容,每个测试案例均需绑定一个基础数据集,所述基础数据集表示测试账户正确的身份信息,包括证件号码、证件类型、户名、卡号、预留手机号等内容。表1所示数据集列表,仅表示了部分数据集,所述数据集可以依据测试业务的不同需求增减数据集。
在所述绑定单元201依据测试案例需生成的目标数据内容特征绑定好所需的数据集后,每一个测试案例可能只需要一个数据集、也可能需要多个数据集,在多个数据集的情况下,所述设定单元202需要为所述多个数据集设定优先级。
所述设定单元202执行过程包括:接收优先级设定规则;依据所述优先级设定规则,为待生成的所述测试案例绑定的各数据集分别设定优先级。
其中,所述优先级别设定规则包括:基础数据集的优先级别与异常类数据集的优先级别不同。
如实施例一中表2所示的测试案例表,所述数据集ID来自所述表1的数据集列表。所述测试案例中分别属于签约交易、支付交易等不同的交易类型,每个测试案例至少对应一个数据集,即数据集ID编号为01的基础数据集被每一个测试案例所适用。也有部分测试案例需要用到多个数据集的集合,如户名错误的签约案例需要用到基础数据集(ID01)、错误户名数据集(ID05);支付金额超限的测试案例则需要用到基础数据集(ID01)、正常金额数据集(ID06)、超限金额数据集(ID07)。
所述获取单元203获取数据内容填充对应的空数据集并得到的填充有数据内容数据集,首先所述获取单元203向测试人员推送特定测试案例输入页面;所述特定测试案例输入页面包括所述至少两个数据集的数据内容输入框,所述不同数据集的数据内容输入框相互独立;然后接收测试人员输入的数据内容,所述测试人员通过在所述特定页面的数据内容输入框中输入、或选择、或修改数据内容。
所述至少两个数据集中存在至少一个基础数据集,所述基础数据集的数据内容包括:分别生成不同的测试案例所需要的相同的数据内容。当所述至少两个数据集中存在至少一个基础数据集时,获取至少两个数据集中的数据内容,包括:
获取所述基础数据集的数据内容输入框自动调用的上一次测试案例输入的基础数据集的数据内容;或获取测试人员对所述自动调用的上一次测试案例输入的基础数据集的数据内容进行修改得到的数据内容。
所述合并单元204采用特定合并方式合并各数据集内的数据内容,所述特定合并方式包括:当各数据集内不存在同种类的数据内容时,直接合并各数据集内的数据内容;当不同数据集内存在同种类的数据内容时,第一优先级的数据集内的数据内容覆盖第二优先级的数据集内的同种类的数据内容,然后将覆盖后的数据内容、及各数据集中未被覆盖的数据内容合并。
最后所述覆盖合并后的数据内容形成一个符合所述测试案例目标的数据内容集合。
如图3所示的冻结卡支付测试案例的生成示例,该测试案例绑定基础数据集01、冻结卡数据集02、正常金额数据集06。所述基础数据集01的数据内容包括卡类型、证件类型、户名、卡号、证件号;所述冻结卡数据集02的数据内容包括户名、卡号、证件号;所述正常金额数据集06的数据内容包括支付金额。上述三个数据集的数据内容均由测试人员在推送的特定页面下输入数据内容,所述基础数据集01接收的数据内容可以进行保存,在下次输入时,直接采用保存的数据内容由测试人员确认即可,避免了测试输入的麻烦,提高了效率。
在冻结卡支付测试案例中,所述冻结卡数据集02的优先级别最高且与所述基础数据集01存在种类相同的数据内容,即户名、卡号、证件号数据内容,如基础数据集01的户名、卡号、证件号分别是张三、11、aa,而冻结卡数据集的户名、卡号、证件号分别为李四、22、bb,则李四、22、bb覆盖张三、11、aa。由此,所述冻结卡数据集02的数据内容覆盖基础数据集01的同种类的部分数据内容,将覆盖后的数据内容、及各数据集未被覆盖的数据内容合并生成测试案例所需的数据内容集合。
同理,如图4所示的卡号错误支付案例,数据集内数据内容的覆盖同图3所示的冻结卡支付案例,只是卡号错误支付案例绑定的错误卡号数据集中只有错误卡号一个数据内容,在覆盖时,仅需将错误卡号覆盖基础数据集内的卡号即可。
生成的测试案例即测试案例所需的数据内容集合被发送到测试系统进行案例测试。通过将具体测试案例与数据集进行解耦,使数据集独立于测试案例而可被不同的测试案例所复用,减轻了测试案例配置数据内容的复杂性,提高了开发效率。还可对测试人员输入的数据集,特别是基础数据集的数据内容进行保存,可为不同的测试案例所用,避免了现有技术中需要为每个测试案例输入全部测试的数据内容所造成效率低下、容易出错的问题。
且一旦需要配置新的测试案例,只需要直接绑定现有的数据集或在后台增加供其使用的集成少数数据内容的数据集即可,大大降低了开发、测试的人力成本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。