掌桥专利:专业的专利平台
掌桥专利
首页

一种数据测试方法及其装置

文献发布时间:2023-06-19 12:19:35


一种数据测试方法及其装置

技术领域

本申请涉及计算机技术领域,尤其涉及一种数据测试方法及其装置。

背景技术

在现有的测试方法中,通常在修改了旧实例后,需要对新实例进行重新测试以确认修改没有引入新的错误或导致其它程序代码产生错误。为了能够更好地发现程序代码的漏洞,通常会基于现有的测试用例生成异常用例。这需要技术人员花费大量的精力来设计各种异常用例,例如,通过将现有的测试数据的范围修改成系统不可处理的范围,但随着程序代码越来越复杂,测试维度越来越多,仅通过测试人员设定的方式生成大量的异常用例是非常困难的。

发明内容

本申请实施例提供一种数据测试方法及其装置,至少解决了以上的技术问题。

本申请实施例还提供一种数据测试方法,所述方法包括:将与被测系统对应的初始测试用例集合输入到训练完成的测试用例生成模型中,获取测试用例集合,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合;利用测试用例集合对所述被测系统执行回归测试,确定回归测试结果。

本申请实施例还提供一种数据测试方法,所述方法包括:生成对被测系统执行测试的测试用例集合作为初始用例集,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合;将所述初始用例集中的每个用例集,输入到所述被测系统,确定测试结果;将根据测试结果确定的异常用例作为种子用例集执行遗传操作,生成另一测试用例集合。

本申请实施例还提供一种测试用例生成方法,所述方法包括:获取与被测系统对应的初始测试用例集合;将所述初始测试用例集合输入到训练完成的测试用例生成模型中,获取测试用例集合,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合。

本申请实施例还提供一种测试用例生成模型的训练方法,所述方法包括:获取与被测系统对应的测试用例集作为训练测试用例集;构建所述测试用例生成模型,设置有训练参数;利用每个训练测试用例对所述测试用例生成模型进行训练,调整所述训练参数,直到所述测试用例生成模型满足预设要求。

本申请实施例还提供一种数据测试装置,所述装置包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以上方法。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,其中,所述指令被执行时实现以上方法。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

根据本申请的示例性实施例的数据测试装置可通过测试用例生成模型生成与被测系统对应的包括异常用例的测试用例集合,能够自动生成大量异常用例集合,不仅解放了测试人员的部分工作,并且异常测试覆盖更全面。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请的示例性实施例的回归测试的应用场景;

图2是根据本申请的示例性实施例的数据测试方法的流程图;

图3是根据本申请的示例性实施例的数据测试方法的示图;

图4是根据本申请的示例性实施例的数据测试装置的框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1示出了根据本申请的示例性实施例的回归测试的应用场景。如图1所示,在日常生活中,用户可在电子终端上安装各种应用,并利用这些应用程序满足用户的各种需求,例如,可利用购物类应用在线购买商品,或者可利用支付类应用对各种商品进行支付。在图1中,当用户启动电子终端上的应用时,该应用可通过网络连接将数据请求发送到计算机系统10,其中,所述计算机系统10是指至少一个计算机按照预设方式(例如,分布式)构成整体并提供各种计算服务的系统,随后,利用计算机系统10上与该应用对应的服务系统对所述请求进行响应,随后,将响应数据发送到所述电子终端。

为了保证在计算机系统10上运行的服务系统,通常采用与计算机系统10分离的计算机系统20对所述服务系统进行测试,例如,在服务系统提供新服务之前,可利用计算机系统20上加载的测试系统对服务系统进行测试,测试通过后可计算机系统10可向用户提供新服务。

在本申请实施例中,可利用计算机系统20对服务系统执行测试,也就是说,在服务系统执行服务修改后再次执行测试。此时,如图1所示,可利用已有的测试用例经由测试用例生成模型生成大量新的测试用例,然后利用这些测试用例对修改后的服务系统进行测试,并在通过测试后的服务系统推送给用户。在此过程中,在利用已有的测试用例生成新的测试用例的同时,需要生成异常用例来测试新服务系统,仅依靠人为修改现有的测试用例的方式不仅需要大量的人力,而且会生成很多无效用例。为此可采用根据本申请的示例性实施例的数据测试方法生成包括异常用例的测试数据。

以下将参照图2为了更好地描述计算机系统20执行的数据测试方法,图2示出了根据本申请的示例性实施例的数据测试方法的流程图。

在步骤S210,将与被测系统对应的初始测试用例集合输入到训练完成的测试用例生成模型中,获取测试用例集合,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合,也就是说,该测试用例集合中可包括使被测系统正常运转的多个测试用例以及使被测系统非正常运转的多个异常用例。

在本申请实施例中,可将进行测试的服务系统称作被测系统,测试用例是指为了测试某个特定目标而编写的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。作为示例,本申请中的被测系统可被执行回归测试,在此情况下,在对被测系统执行回归测试前存在初始测试用例集合,其中,所述初始测试用例集合包括至少一个测试用例。

随后,可将这些测试用例输入到训练完成的测试用例生成模型中,该测试用例生成模型可针对每个测试用例生成大量的测试用例集合。测试人员为了检测被测系统的容错性,期望测试用例集合中的异常用例越多越好,其中,所述异常用例是指能够使被测系统非正常运转的测试用例,这里所提到的非正常运转包括但不限于被测系统终止运行或在预定时间段内无响应等。

由以上描述可知,所述方法可通过测试用例生成模型生成与被测系统对应的包括异常用例的测试用例集合,能够自动生成大量异常用例集合,不仅解放了测试人员的部分工作,并且异常测试覆盖更全面。

根据本申请的示例性实施例,所述方法可对所述测试用例生成模型进行训练。首先,可获取对测试用例生成模型进行训练的训练数据集,其中,所述训练数据集包括与所述被测系统对应的训练测试用例集合。

其次,构建所述测试用例生成模型,设置有训练参数,在本申请实施例中,所述测试用例生成模型可以是将每个测试用例作为个体的遗传算法模型。遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索解的方法。

综上可述,所述测试用例生成模型是利用训练数据集对遗传算法训练后生成的模型,从而能够生成大量异常用例,满足测试人员的需求。更进一步地,所述方法可利用测试用例的特征值生成大量的测试用例集合,从而能够满足测试人员对于测试用例数量的需求。

在本申请实施例中,可将用于衡量被测系统的性能的各种指标设置为遗传算法中的适应度,例如,可将被测系统的容错率作为该遗传算法的适应度,在此基础上设置测试用例生成模型中的训练参数。

随后,利用每个训练测试用例对所述测试用例生成模型进行训练,调整所述训练参数,直到所述测试用例生成模型满足预设要求。具体执行步骤如下:

首先应确定初始化种族,也就是当前种族,在实施中,所述初始化种族可指示用于训练的初始化用例集。以回归测试为例,所述初始化种族可以是针对被测系统已有的测试用例集。

在实施中,可确定用于描述所述训练测试用例的用例特征以及与各个用例特征分别对应的约束条件。此处的约束条件是指各个用例特征对应的取值范围,比如针对数值型的用例特征,用户难以枚举出所有的整型数值,而是给用例特征赋值以代表性的值域,诸如,负数,0等。

具体来说,可通过用于描述测试用例的文件中提取出所述训练测试用例的用例特征,所述文件可包括且不限于特征描述文件和应用配置文件。作为示例,用例特征可以以键值对(key,value)的形式存储在特征描述文件中,其中,key可用于指示用例特征,key则表示该用例特征对应的特征值,举例来说,可从特征描述文件中提取出某一用例特征key1且该特征key1对应的特征值为value1。

随后,可从这些文件中确定这些用例特征的约束条件,例如,从相关联的特征描述文件中确定这些用例特征的取值范围,比如,key1是数值型参数,而key2是布尔型参数。这些特征描述文件可利用结构化数据存储方式进行存储,例如,可被存储为proto文件,从proto文件中能够获取到各个用例特征的数据类型。

举例来说,可通过proto文件中确定key1的取值为正整数。此外,技术人员还可根据用例特征的现有取值对其进行适应性的调整,例如,在确定某一用例特征key1的value1为5的情况下,可将key1的取值扩大到3至8之间,这需要技术人员结合自身需求对这些用例特征进行预先设定。

在实施中,可引入将技术人员设置的特定测试场景对应的特定特征与约束条件,也就是说,可根据自身需要执行人工标注,简言之,在无法获取某一用例特征的数据类型或者无法定义该用例特征的取值,又或者针对某一特定测试场景需要对该用例特征引入非常规取值的情况下,可通过技术人员手工设置特定特征以及对应的约束条件,例如,在被测系统是购物应用的情况下,针对促销可对用例特征值进行手工设置,例如,可设置购买时间为23点,购买数量为1000个,参加促销活动。

随后,利用所述约束条件对各个用例特征进行组合交叉,生成训练测试用例集合作为初始化用例集。在实施中,可根据所述约束条件对对应的用例特征的限定(例如,数值范围)对这些用例特征进行笛卡尔积操作,从而得到大量的测试用例集合。两个集合X和Y的笛卡尔积又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员,也就是来自第一集合的第一对象与来自第二集合中的第二对象的所有组合方式。

其次,可将每个训练测试用例输入到所述被测系统,确定训练异常用例并在将所述训练异常用例集合作为所述种族的优秀个体的情况下,根据选择函数将所述异常用例优选选择,其中,所指的优秀个体是指可作为成功且有效的异常用例并将该异常用例作为重点培育的对象。随后,按照预定方式删除当前种族中的部分个体,其中,所述预定方式可包括按照等价类的方式,例如,针对特征A对应的两个整型数值的用例都造成了异常,其中,这两个整型数值分别是11和22,则可保留其中一个作为优秀个体,并同时删除另一个。

最后,按照遗传算法,对所述当前种群执行选择操作和交叉操作,产生下一代群体作为当前群体。按照如上步骤不断调整所述训练参数,直到满足预设要求,比如,适应度达到80%以上。

在对所述测试用例生成模型完成以上训练后,可通过所述测试用例生成模型获取测试用例集合,随后,执行步骤S220,利用测试用例集合对所述被测系统执行回归测试,确定回归测试结果。也就是说,将测试用例集合中的每个测试用例输入到所述被测系统,确定所述被测系统是否出现异常,如果发现异常,可利用快照记录等方式确定造成异常的回归测试用例。

由以上描述可知,所述测试用例生成模型可根据测试结果实时调整模型参数,从而更准确地生成对测试系统有冲击的测试用例,更好地对被测系统执行测试。

在实施中,可利用测试用例集合中的每个测试用例对所述被测系统执行高并发回归测试,在测试过程中,可利用诸如核心转储(coredump)、错误日志等文件确定被测系统是否发生异常,其中,coredump是被测应用的相关程序崩溃时的内存快照,当被测系统在程序发生异常而该异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在coredump中。

在实施中,所述方法还可根据所述回归测试结果,从测试用例集合提取出异常用例,随后,将所述异常用例作为优秀个体,对所述测试用例生成模型中执行更新处理。由此,所述测试用例生成模型可根据测试结果实时调整模型参数,从而更准确地生成对测试系统有冲击的测试用例,更好地对被测系统执行测试

为了更好地描述本申请的示例性实施例,以下将参照图3从整体上进行描述,图3示出了根据本申请的示例性实施例的数据测试方法的示图。

如图3所示,测试人员可将获取的批量测试用例输入到测试用例生成模型中,获取测试用例集合,为了能够对被测系统执行模糊测试,其中,模糊测试(Fuzzing)是指通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。在本申请的示例性实施例中,可通过从这些测试用例中提取出用例特征并对这些用例特征对应的特征值进行赋值来衍生出更多的测试用例。

在本申请实施例中,获取的测试用例集合中可包括有可能会使被测系统异常运行的异常用例集合,这些异常用例集合中的异常用例可在后续地操作中确定是否为真正的异常用例。

随后,可将测试用例集合输入到被测系统,监测被测系统是否出现异常,若出现异常,可将引发异常的测试用例输入到所述测试用例生成模型中,对所述测试用例生成模型执行更新。此外,所述测试用例生成模型以按照上述训练方式完成训练。

所述被测系统可以是提供具体服务的线程集合也可以是集成了各种功能的计算机系统,例如,所述被测系统可指示购物类应用,也可以指示购物类应用中提供支付功能的实例。在实施中,可预先针对被测系统设置相关的监视指标,并对多种事件部署许多诊断规则,以监视被测系统的异常情况。因此,当被测系统发生异常时,基于预定义的规则,将自动生成大量的诊断结果,这些诊断结果可存储在以上提到的日志文件中。

根据本申请的示例性实施例,还可提供一种数据测试方法,所述方法包括生成对被测系统执行测试的测试用例集合作为初始种群,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合;将所述测试用例集合中的每个测试用例作为所述初始种族中的每个个体,输入到所述被测系统,确定测试结果;将根据测试结果确定的异常用例作为优秀个体执行遗传操作,生成另一测试用例集合。

可选地,生成对被测系统执行测试的测试用例集合作为初始种群包括:确定测试用例的用例特征以及与各个用例特征分别对应的约束条件;利用所述约束条件对各个用例特征进行组合交叉,生成测试用例集合作为初始种群。

为了更清楚地明白本申请的示例性实施例的发明构思,以下将参照图4描述本申请的示例性实施例的数据测试装置的框图。本领域普通技术人员将理解:图4中的装置仅示出了与本示例性实施例相关的组件,所述装置中还包括除了图4中示出的组件之外的通用组件。

图4示出本申请的示例性实施例的数据测试装置的框图。所述时间提醒装置是指可执行根据本申请的示例性实施例的时间提醒方法的装置。参考图4,在硬件层面,该装置包括处理器、内部总线和计算机可读存储介质,其中,所述计算机可读存储介质包括易失性存储器和非易失性存储器。处理器从非易失性存储器中读取对应的计算机程序然后运行。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

具体来说,所述处理器执行以下操作:将与被测系统对应的初始测试用例集合输入到训练完成的测试用例生成模型中,获取测试用例集合,其中,所述测试用例集合至少包括使所述被测系统非正常运转的异常用例集合;利用所述测试用例集合对所述被测系统执行回归测试,确定回归测试结果。

可选地,所述处理器可按照如下方式对所述测试用例生成模型完成训练:获取用于对测试用例生成模型进行训练的训练数据集,其中,所述训练数据集包括与所述被测系统对应的训练测试用例以及每个训练回归测试对应的训练异常用例集合;构建所述测试用例生成模型,设置有训练参数;利用每个训练测试用例与训练异常用例集合之间的对应关系对所述测试用例生成模型进行训练,调整所述训练参数,直到所述测试用例生成模型满足预设要求。

可选地,所述测试用例生成模型是将每个测试用例作为个体的遗传算法模型。

可选地,所述处理器实现步骤利用所述训练测试用例与训练异常用例之间的对应关系对所述测试用例生成模型进行训练,调整所述训练参数,直到所述测试用例生成模型满足预设要求包括:利用所述训练测试用例,生成训练测试用例集合作为初始化用例集;在将所述训练异常用例集合作为所述初始化用例集的种子用例情况下,对所述测试用例生成模型进行训练,调整所述训练参数,直到所述测试用例生成模型满足预设要求。

可选地,所述处理器实现步骤利用所述训练测试用例生成训练测试用例集合作为所述初始化用例集包括:确定用于描述所述训练测试用例的用例特征以及与各个用例特征分别对应的约束条件;利用所述约束条件对各个用例特征进行组合交叉,生成训练测试用例集合作为初始化用例集。

可选地,所述处理器在实现步骤在确定回归测试结果后还包括:根据所述回归测试结果,从测试用例集合提取出异常用例;将所述异常用例作为种子用例,对所述测试用例生成模型执行更新处理。

此外,所述处理器还可执行以下步骤:生成对被测系统执行测试的测试用例集合作为初始用例集,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合;将所述初始用例集中的每个用例集,输入到所述被测系统,确定测试结果;将根据测试结果确定的异常用例作为所述初始用例集中的种子用例执行遗传算法,生成另一测试用例集合。

可选地,所述处理器在实现步骤利用所述训练测试用例生成训练测试用例集合作为所述初始化用例集包括:确定测试用例的用例特征以及与各个用例特征分别对应的约束条件;利用所述约束条件对各个用例特征进行组合交叉,生成训练测试用例集合作为初始化用例集。

根据本申请的示例性实施例,所述处理器可执行以下步骤:获取与被测系统对应的初始测试用例集合;将所述初始测试用例集合输入到训练完成的测试用例生成模型中,获取测试用例集合,其中,所述测试用例集合至少包括能够使被测系统非正常运转的异常用例集合。

根据本申请的示例性实施例,所述处理器可执行以下步骤:获取与被测系统对应的测试用例集作为训练测试用例集;构建所述测试用例生成模型,设置有训练参数;利用每个训练测试用例对所述测试用例生成模型进行训练,调整所述训练参数,直到所述测试用例生成模型满足预设要求。

综上可述,根据本申请的示例性实施例的数据测试方法可通过测试用例生成模型生成与被测系统对应的包括异常用例的测试用例集合,能够自动生成大量异常用例集合,不仅解放了测试人员的部分工作,并且异常测试覆盖更全面。更进一步地,所述测试用例生成模型是利用训练数据集对遗传算法训练后生成的模型,从而能够生成大量异常用例,满足测试人员的需求。更进一步地,所述方法可利用测试用例的参数生成大量的测试用例集合,从而能够满足测试人员对于测试用例数量的需求。更近一步地,所述测试用例生成模型可根据测试结果实时调整模型参数,从而更准确地生成对测试系统有冲击的测试用例,更好地对被测系统执行测试。

需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤21和步骤22的执行主体可以为设备1,步骤23的执行主体可以为设备2;又比如,步骤21的执行主体可以为设备1,步骤22和步骤23的执行主体可以为设备2;等等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 通过合成原始数据和标记数据来生成已标记数据的数据嵌入网络的学习方法和测试方法以及用其的学习装置和测试装置
  • 一种车载导航数据的数据转换正确性测试方法及装置
技术分类

06120113255939