数据测试方法、装置、计算机设备和存储介质与流程

文档序号:22759067发布日期:2020-10-31 09:57阅读:122来源:国知局
数据测试方法、装置、计算机设备和存储介质与流程

本申请涉及测试技术领域,特别是涉及一种数据测试方法、装置、计算机设备和存储介质。



背景技术:

算法是为实现某个计算过程而规定的基本动作的执行序列。在某个算法真正投入到具体的应用场景之前,常常需要确定该算法解决具体问题的准确程度,因此需要对该算法所实现的功能进行测试。传统的对算法进行测试的方式,通常是通过人工或者编写脚本的方式,使用大量的数据对算法所实现的功能进行测试。

然而采用传统的对算法进行测试时,每开发一个新算法,都要重新准备大量的测试数据,并对所有测试数据进行人工测试或者编写新的脚本来进行测试。不管是人工测试还编写新的脚本的测试方式,都要花费很多时间,存在测试效率低的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高测试效率的数据测试方法、装置、计算机设备和存储介质。

新建测试任务,并确定与所述测试任务对应的数据类;所述数据类包括至少一组的测试对象;

通过通用的注解类为所述数据类中各所述测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照所述第一注解信息将所述测试对象传输至与所述测试任务对应的处理类;

通过所述处理类对各所述测试对象进行测试处理,得到处理结果;

根据各所述测试对象分别对应的处理结果和预期结果,确定与所述测试任务对应的测试结果;

通过所述导入导出类输出与所述测试任务对应的测试结果。

一种数据测试装置,所述装置包括:

创建模块,用于新建测试任务,并确定与所述测试任务对应的数据类;所述数据类包括至少一组的测试对象;

输入模块,用于通过通用的注解类为所述数据类中各所述测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照所述第一注解信息将所述测试对象传输至与所述测试任务对应的处理类;

处理模块,用于通过所述处理类对各所述测试对象进行测试处理,得到处理结果;

比对模块,用于根据各所述测试对象分别对应的处理结果和预期结果,确定与所述测试任务对应的测试结果;

输出模块,用于通过所述导入导出类输出与所述测试任务对应的测试结果。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

新建测试任务,并确定与所述测试任务对应的数据类;所述数据类包括至少一组的测试对象;

通过通用的注解类为所述数据类中各所述测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照所述第一注解信息将所述测试对象传输至与所述测试任务对应的处理类;

通过所述处理类对各所述测试对象进行测试处理,得到处理结果;

根据各所述测试对象分别对应的处理结果和预期结果,确定与所述测试任务对应的测试结果;

通过所述导入导出类输出与所述测试任务对应的测试结果。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

新建测试任务,并确定与所述测试任务对应的数据类;所述数据类包括至少一组的测试对象;

通过通用的注解类为所述数据类中各所述测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照所述第一注解信息将所述测试对象传输至与所述测试任务对应的处理类;

通过所述处理类对各所述测试对象进行测试处理,得到处理结果;

根据各所述测试对象分别对应的处理结果和预期结果,确定与所述测试任务对应的测试结果;

通过所述导入导出类输出与所述测试任务对应的测试结果。

上述数据测试方法、装置、计算机设备和存储介质,当执行测试任务时,确定与该测试任务对应的数据类和处理类,通过注解类为数据类中的各测试对象分别添加表示输入的第一注解信息,这样就可直接通过导入导出类自动按照第一注解信息将测试对象传输至处理类中进行处理,得到对应的处理结果。再根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果后,可直接通过导入导出类输出该测试结果。这样,通过数据类、注解类、导入导出类和处理类的自动配合执行,无需人工或单独实现整个自动化脚本的编写,就可以自动化执行测试任务,大大提高了测试效率。并且,由于注解类和导入导出类是通用的,也就是说,不同的测试任务可以使用同一个注解类和导入导出类。因此,当执行新的测试任务时,无需再次实现数据的导入、比较以及导出等逻辑,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务,这不仅节约了大量的时间成本和人力成本,同时,还大大提高了测试效率。

附图说明

图1为一个实施例中数据测试方法的应用环境图;

图2为一个实施例中数据测试方法的流程示意图;

图3为另一个实施例中数据测试方法的流程示意图;

图4为又一个实施例中数据测试方法的流程示意图;

图5为一个实施例中数据测试装置的结构框图;

图6为另一个实施例中数据测试装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据测试方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行通信。终端110和服务器120均可单独用于执行本申请实施例中提供的数据测试方法。终端110和服务器120也可协同用于执行本申请实施例中提供的数据测试方法。其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

可以理解,图1中的终端和服务器均可称作计算机设备,以本申请由计算机设备执行为例进行说明:计算机设备新建测试任务,并确定与测试任务对应的数据类,该数据类包括至少一组的测试对象。计算机设备通过通用的注解类为数据类中各测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照第一注解信息将测试对象传输至与测试任务对应的处理类。计算机设备通过处理类对各测试对象进行测试处理,得到处理结果,并且,计算机设备根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果。计算机设备通过导入导出类输出与测试任务对应的测试结果。

在一个实施例中,如图2所示,提供了一种数据测试方法,以该方法应用于计算机设备(该计算机设备具体可以是图1中的终端110或服务器120)为例进行说明,该数据测试方法包括以下步骤:

s202,新建测试任务,并确定与测试任务对应的数据类;数据类包括至少一组的测试对象。

其中,测试任务也可称作算法任务,是用于对算法的准确性进行测试的任务。类是一个模板,可以理解成一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。数据类是用于存放测试对象的类。测试对象是由测试数据经过格式转换后所生成的对象,比如,将测试数据转换成对象格式后即可形成测试对象。其中,测试数据是用于执行待测试的算法的数据,也就是用于执行算法计算的初始数据。

具体地,计算机设备可获取待测试的算法,并为每一个待测试的目标算法新建一个对应的测试任务。计算机设备可确定与该测试任务对应的数据类,该数据类中包括有多组的测试对象,这些测试对象用于对目标算法进行测试。其中,目标算法表示与该测试任务对应的待测试的算法。

在一个实施例中,与测试任务对应的数据类可以是在新建测试任务时同步创建的,也可以是预先创建的,本申请实施例对此不做限定。比如,当测试人员需要对目标算法进行测试时,测试人员可准备对应的测试文件并上传至计算机设备。进而,计算机设备把测试文件中的测试数据转换成对象格式后存入数据类中,以创建与该测试任务对应的数据类。还比如,不同的测试任务可使用相同的测试对象,也就是说,与该测试任务对应的数据类可以是在创建其他的测试任务时创建的。

在一个实施例中,步骤s202,也就是新建测试任务,并确定与测试任务对应的数据类;数据类包括至少一组的测试对象步骤之前,该数据测试方法还包括预先创建各个类的步骤,该预先创建各个类的步骤包括:接收测试文件,从测试文件中获取对应的测试对象,并将测试对象存储至数据类中;基于待测试的算法的执行逻辑创建对应的处理类;创建用于添加注解信息的注解类、以及用于传输测试对象和/或测试结果的导入导出类。

具体地,计算机设备在进行数据测试之前,会预先根据测试任务创建对应的数据类、注解类、导入导出类以及处理类等准备工作。

在一个实施例中,当计算机设备获取到测试人员上传的测试文件后,计算机设备可自动解析该测试文件,并从该测试文件中获取对应的测试数据并转换成测试对象。计算机设备可将各测试对象存储于数据类中,以便于后续调用。其中,测试文件可以是excel、csv或者txt等不同格式的文件,本申请实施例对此不做限定。

在一个实施例中,当测试文件中的测试数据为json(javascriptobjectnotation,javascript对象表示法)字符串时,终端将该测试数据自动转换为java对象,并将这些java对象作为测试对象。其中,测试对象是一个无序的数值或字符串集合。对于不同的编程语言有不同解析json字符串的方法,比如javascript中的解析方法主要有三种:①使用eval()函数;②使用json.parse()函数;③使用第三方库,例如jquery等,本申请实施例对此不做限定。

在一个实施例中,计算机设备可创建实现目标算法的执行逻辑的处理类。其中,目标算法的执行逻辑主要包括组装测试任务的输入、输入后执行测试任务、处理测试任务的输出、以及判断处理结果是否满足预期以及组装输出的执行结果等。

在一个实施例中,计算机设备可基于每一个待测试的算法的执行逻辑创建对应的处理类,也就是说,一个处理类实现一个算法的执行逻辑。当有不同的待测试的算法时,计算机设备可根据不同算法的执行逻辑创建不同的处理类。

在一个实施例中,计算机设备可创建用于添加注解信息的注解类,该注解类是通用的注解类,也就是说,该注解类对所有待测试的算法都是适用的。比如,在该注解类中,用import代表输入,用export代表输出,无注解表示输入和输出都包含该对象,本申请实施例对此不做限定。当不同的数据对象添加注解信息后,可区分该数据对象是输入对象还是输出对象。

在一个实施例中,计算机设备可创建用于传输测试对象和/或测试结果的导入导出类。比如计算机设备通过导入导出类将数据类中的测试对象导入处理类中进行处理操作,或者,计算机设备通过导入导出类从处理类中导出经过处理操作后的测试对象和测试结果。

在一个实施例中,计算机设备所创建的注解类和导入导出类可以是通用的,也就是说,不同的测试任务可以使用同一个注解类和导入导出类。因此,当需要对大量的算法进行测试时,计算机设备只需创建一次注解类和导入导出类,并重复使用。而对于不同的待测试算法,只需要额外创建与相应测试任务对应的数据类和处理类即可,大大减少了开发人力和成本,提高了测试效率。

上述实施例中,计算机设备预先完成创建数据类、注解类、导入导出类以及处理类等准备工作,以便于后续的数据测试任务。通过这样的方式,将各个数据的导入、比较以及导出等逻辑区分开来,当执行新的测试任务时,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务,这不仅节约了大量的时间成本和人力成本,还大大提高了测试效率。

s204,通过通用的注解类为数据类中各测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照第一注解信息将测试对象传输至与测试任务对应的处理类。

具体地,计算机设备可调用通用的注解类对数据类中的测试对象进行注解处理,也就是添加对应的第一注解信息。进而再通过通用的导入导出类按照第一注解信息将作为输入对象的测试对象传输至与测试任务对应的处理类。

在一个实施例中,当测试对象作为测试任务的输入对象时,计算机设备可通过注解类为该测试对象添加表示输入的第一注解信息。因而计算机设备可得到注解后的测试对象。其中,第一注解信息表示输入,可以用import或者input等注解信息表示,本申请实施例对此不做限定。

s206,通过处理类对各测试对象进行测试处理,得到处理结果。

其中,处理结果是通过处理类执行目标算法对测试对象进行相应处理后所得到的结果。

在一个实施例中,在计算机设备中的处理类接收到通用的导入导出类传输的测试对象后,处理类会对这些测试对象进行处理。具体地,处理类轮询所有的测试对象,调用处理类中包含的算法分别对每一个测试对象进行测试,从而得到对应的处理结果。

举例说明,当待测试的目标算法为进行文本类别判断的算法时,相应的测试对象具体可以是一个句子。通过处理类对该句子的内容和结构进行分析后,得到对应的处理结果。该处理结果具体可以是该句子所属的类别,比如疑问句、感叹句或陈述句等。

下面以两个具体的应用场景来进行说明:当待测试的目标算法为进行句子类别判断的算法时,此时的测试任务可记为分类任务,对应的处理类可以用于对句子类别进行分类,句子类别比如疑问句或陈述句等类别。具体地,当测试对象是各个待分类的句子时,处理类对这些待分类的句子进行测试处理,分别得到各自对应的处理结果。其中,处理结果是该测试对象所对应的句子类别。当测试对象是陈述句时,处理结果可用数字“0”表示;当测试对象是疑问句时,处理结果可用数字“1”表示。当然,上述处理结果仅用于示意性说明,不用于限定本申请。处理结果也可以用字母或者其他形式来表示,比如字母“a”表示测试对象是陈述句,字母“b”表示测试对象是疑问句等也可,本申请实施例对此不做限定。

在另一个实施例中,当待测试的目标算法为进行句子结构分析的算法时,此时的测试任务可记为结构分析任务,对应的处理类还可以用于对句子结构进行分析,句子结构比如主谓结构(主语+谓语)、主谓宾结构(主语+谓语+宾语)和主系表(主语+系动词+表语)结构等。具体地,当测试对象是各个待分析结构的句子时,处理类对这些待分析结构的句子进行测试处理,分别得到各自对应的处理结果。其中,处理结果是该测试对象所对应的句子结构。当测试对象是主谓结构时,处理结果用数字“0”表示;当测试对象是主谓宾结构时,处理结果用数字“1”表示;当测试对象是主系表结构时,处理结果用数字“2”表示。同样,可以理解,上述处理结果仅用于示意性说明,不用于限定本申请。上述处理结果也可以用字母或者其他形式来表示,本申请实施例对此不做限定。

s208,根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果。

其中,预期结果是与测试对象对应的参考结果。比如,当测试任务是分类任务时,该参考结果是测试对象实际所属的类别;当测试任务是结构分析任务时,该参考结果是测试对象实际对应的结构。

在一个实施例中,测试结果包括比对结果和测试准确率,步骤s208,也就是根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果的步骤,具体包括:当与测试对象对应的处理结果与预期结果的差异小于等于第一预设阈值时,确定与测试对象对应的比对结果为处理结果符合预期;当与测试对象对应的处理结果与预期结果的差异大于第一预设阈值时,确定与测试对象对应的比对结果为处理结果不符合预期;确定处理结果符合预期的目标数量以及处理结果的总数量;基于目标数量和总数量,计算得到与测试任务对应的测试准确率。

其中,测试结果是与测试任务对应的结果,包括比对结果和测试准确率。比对结果是将处理结果与预期结果进行比对后所产生的结果,用于表示处理结果是否满足预期。第一预设阈值是根据实际需求预设的具体数值,比如1%或者0等,本申请实施例对此不做限定。

具体地,计算机设备比较与测试对象对应的处理结果与预期结果之间的差异,并且,计算机设备基于该差异来判断与测试对象对应的比对结果为处理结果是否符合预期。比如,当与测试对象对应的处理结果与预期结果的差异小于等于第一预设阈值时,计算机设备确定该比对结果为处理结果符合预期;当与测试对象对应的处理结果与预期结果的差异大于第一预设阈值时,计算机设备确定该比对结果为处理结果不符合预期。

在一个实施例中,当与测试对象对应的处理结果和预期结果都用数值表示时,也就是说,一个数值表示一种结果时,计算机设备比较与测试对象对应的处理结果与预期结果是否相同。比如,计算机设备将处理结果“0”与预期结果“1”进行比较,因为处理结果与预期结果不相同,因而计算机设备得到的与测试对象对应的比对结果是该测试对象的处理结果不符合预期;还比如,计算机设备将处理结果“1”与预期结果“1”进行比较,因为处理结果与预期结果相同,也就是说处理结果与预期结果之间不存在差异,此时,计算机设备得到的与测试对象对应的比对结果是该测试对象的处理结果符合预期。

在一个实施例中,当处理结果和预期结果都用字符串表示时,也就是说,计算机设备可比较处理结果与预期结果中的各字符的差异程度。其中,字符串可以是由数字、字母以及下划线组成的一串字符。当处理结果中的字符与预期结果中的字符的差异小于等于第一预设阈值时,确定与测试对象对应的比对结果为处理结果符合预期;当处理结果与预期结果的差异大于第一预设阈值时,确定与测试对象对应的比对结果为处理结果不符合预期。

举例说明,当处理类是对句子类别进行分类时,得到的处理结果是该测试对象99%的概率是陈述句,以“0.99_a”表示,此时的预期结果是该测试对象是陈述句,也就是说,100%的概率是陈述句,以“1_a”表示。此时,计算处理结果与预期结果的差异为1%。当第一预设阈值为1%时,确定与测试对象对应的比对结果为处理结果符合预期;当第一预设阈值为0%时,确定与测试对象对应的比对结果为处理结果不符合预期。

在一个实施例中,计算机设备可根据对每个测试对象进行测试的处理结果与预期结果的差异,分别得到与测试对象对应的比对结果。计算机设备可根据各测试对象对应的比对结果计算对应的测试准确率。其中,当处理结果满足预期时,表示测试准确,当处理结果不满足预期时,则表示测试不准确。这样,计算机设备可根据多个测试对象对应的比对结果计算该目标算法对应的测试准确率。

在一个实施例中,计算机设备根据与测试对象对应的各比对结果计算对应的测试准确率的步骤如下:计算机设备确定处理结果符合预期的目标数量以及处理结果的总数量,基于目标数量和总数量,计算得到与测试任务对应的测试准确率。比如,计算机设备将目标数量与总数量的商作为与测试任务对应的测试准确率。

上述实施例中,计算机设备根据与测试对象对应的处理结果与预期结果的差异,确定与测试对象对应的处理结果是否符合预期,并根据处理结果符合预期的目标数量以及处理结果的总数量,计算得到与测试任务对应的测试准确率。通过这样的方式,计算机设备可自动化得到与测试任务对应的测试准确率,并通过该测试准确率确定与该测试任务对应的算法的性能。

在一个实施例中,当处理类每处理完一个测试对象后,释放该测试对象,也就是说,计算机设备将完成测试处理的测试对象暂存于数据库中,以保证处理类有足够的计算资源来处理待测试的测试对象,从而保证了测试效率。

s210,通过导入导出类输出与测试任务对应的测试结果。

在一个实施例中,步骤s210,也就是通过导入导出类输出与测试任务对应的测试结果的步骤,具体包括:通过注解类为与测试任务对应的各测试对象、处理结果以及测试结果分别添加表示输出的第二注解信息;通过导入导出类按照第二注解信息将各测试对象、处理结果以及测试结果关联存储至区块链中。

其中,区块链是指分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。具体地,区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

在一个实施例中,当处理类处理完所有的测试对象后,计算机设备可选择要输出的对象,比如计算机设备从数据库中读取已完成测试处理的各测试对象,将各测试对象、与各测试对象对应的处理结果和测试结果作为输出对象。

进一步地,计算机设备通过通用的注解类对输出对象进行注解处理,也就是添加对应的第二注解信息。具体地,计算机设备可通过注解类为该输出对象添加表示输出的第二注解信息。因而计算机设备可得到注解后的输出对象。其中,第二注解信息表示输出,可以用export或者output等注解信息表示,本申请实施例对此不做限定。

在一个实施例中,计算机设备通过通用的导入导出类将带有第二注解信息的输出对象进行关联处理后,可将关联后的输出对象上传并存储于区块链的节点中,以保证数据的私密性和安全性。

在一个实施例中,计算机设备可将关联后的输出对象以文件的形式存储至数据库中。或者,计算机设备可基于关联后的输出对象生成对应的测试报告,并保存至数据库中。其中,测试报告具体可以是excel、csv或者txt等格式的文件,本申请实施例对此不做限定。

上述实施例中,计算机设备将注解后的各测试对象、处理结果以及测试结果关联存储至区块链中。通过这样的方式,可以保障存储至区块链节点中数据对象的私密性,可以提升数据对象的安全性。并且,计算机设备在自动化执行测试任务后,可将测试结果进行存储,从而自动化结束整个测试任务,这无需人工的干预,大大提高了测试效率。

上述数据测试方法,当执行测试任务时,确定与该测试任务对应的数据类和处理类,通过注解类为数据类中的各测试对象分别添加表示输入的第一注解信息,这样就可直接通过导入导出类自动按照第一注解信息将测试对象传输至处理类中进行处理,得到对应的处理结果。再根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果后,可直接通过导入导出类输出该测试结果。这样,通过数据类、注解类、导入导出类和处理类的自动配合执行,无需人工或单独实现整个自动化脚本的编写,就可以自动化执行测试任务,大大提高了测试效率。并且,由于注解类和导入导出类是通用的,也就是说,不同的测试任务可以使用同一个注解类和导入导出类。因此,当执行新的测试任务时,无需再次实现数据的导入、比较以及导出等逻辑,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务,这不仅节约了大量的时间成本和人力成本,同时,还大大提高了测试效率。

在一个实施例中,该数据测试的方法还包括性能分析的步骤,该性能分析的步骤具体包括:当测试准确率低于第二预设阈值时,调整与测试任务对应的处理类,得到调整后的处理类;将调整后的处理类作为下一次测试时与测试任务对应的处理类,返回通过导入导出类按照注解信息将测试对象传输至与测试任务对应的处理类的步骤并继续执行,直至满足停止条件时停止;根据多于一个的处理类各自对应的测试准确率,对不同处理类进行性能分析,得到分析结果。

其中,第二预设阈值具体可以是依据实际业务需求预设的具体数值。

具体地,当测试准确率低于第二预设阈值时,计算机设备可调整与测试任务对应的处理类,以重新进行测试,从而可根据多于一个的处理类各自对应的测试准确率,对不同处理类进行性能分析,得到分析结果。

在一个实施例中,当测试准确率低于第二预设阈值时,计算机设备可对与该测试任务对应的目标算法进行调整,具体地,计算机设备调整处理类中的目标算法的执行逻辑,并得到调整后的处理类。其中,执行逻辑也称作执行逻辑结构,比如顺序结构、选择结构以及循环结构等逻辑结构,本申请实施例对此不做限定。

在一个实施例中,当测试人员通过计算机设备调整处理类的执行逻辑后,将调整后的处理类作为下一次测试的处理类,计算机设备重新执行该测试任务并进行测试,直至满足停止条件时停止,从而得到新的处理结果以及对应的测试结果。其中,停止条件是停止测试的条件,具体可以是测试准确率达到第二预设阈值,或者达到预设的执行次数等,本申请实施例对此不做限定。

在一个实施例中,计算机设备可实时展示调整前后的各处理类的测试准确率,根据对比多于一个的处理类的测试结果,得到对应的分析结果。比如,当达到停止条件时,该测试任务一共经过三个不同的处理类进行处理,因而计算机设备可得到各自对应的三个测试准确率。此时,计算机设备可展示、以及比较这三个处理类所对应的测试准确率的高低,并对不同处理类进行性能分析,得到分析结果。比如,计算机设备将最高测试准确率所对应的处理类作为高等级别处理类,将最低测试准确率所对应的处理类作为低等级别处理类,将剩下的测试准确率所对应的处理类作为中等处理类。

在一个实施例中,当停止条件是测试准确率达到第二预设阈值时,计算机设备可将测试准确率达到第二预设阈值时所对应的处理类作为与该测试任务对应的最优的处理类,也就是说,从多于一个的处理类中筛选得到测试准确率符合预期标准的处理类,并将该处理类作为与测试任务对应的最终处理类,也可称作最佳处理类。

在一个实施例中,在对处理类进行调整时,计算机设备可对处理类中不同的执行逻辑部分分别进行调整,比如分别调整该处理类中的顺序结构、选择结构以及循环结构等逻辑结构。也就是说,每次改进该处理类中的一个执行逻辑部分。计算机设备根据每次改进后得到的测试准确率的升高与降低,来定位影响处理类的测试效果的异常执行逻辑部分,从而可有针对性的对异常执行逻辑部分进行优化。

在一个实施例中,计算机设备可根据多于一个的处理类各自对应的测试准确率,对不同处理类进行性能分析,比如计算机设备将测试准确率大于等于90%时所对应的处理类的性能标记为高等级别;计算机设备将测试准确率大于等于60%且小于90%时所对应的处理类的性能标记为中等级别;计算机设备将测试准确率小于60%时所对应的处理类的性能标记为低等级别。可以理解,上述的级别范围仅为示意性的说明,不用于限定本申请。

上述实施例中,计算机设备通过比较不同的处理类的测试准确率,可对不同处理类进行性能分析。通过这样的方式,当目标算法有了调整后,只需调整对应的处理类,并根据调整后的处理类再次执行对应的测试任务,即可实时对比调整前后测试准确率的不同,也就是比较各处理类的性能。这不仅节约了时间和人力成本,还大大提高了数据测试的效率。

在一个实施例中,该数据测试的方法还包括展示执行信息的步骤,该展示执行信息的步骤具体包括:展示与测试任务对应的执行信息;执行信息包括各测试对象的测试状态、处理结果以及测试结果中的至少一种;当执行信息表示发生异常时,调整对应的数据类和处理类;当测试任务结束时,输出与测试任务对应的执行信息。

在一个实施例中,计算机设备在新建测试任务后,即可实时展示该测试任务的执行信息。比如展示各测试对象的测试状态、处理结果以及测试结果。其中,测试状态包括该测试对象是否进行测试、何时进行测试、以及使用何种算法进行测试等信息。从而测试人员可通过计算机设备实时对比和观察同一任务的执行情况。

在一个实施例中,计算机设备可将同一测试对象的测试状态、处理结果以及测试结果展示在同一条目中;或者,当测试对象的数量超过预设数量时,预设数量比如10条时,计算机设备可将与各测试对象对应的测试状态、处理结果以及测试结果进行滚动显示或叠加显示等,本申请实施例对此不做限定。

在一个实施例中,当测试人员查看到计算机设备所展示的执行信息表示发生异常时,比如某一条测试对象对应的处理结果出现异常时,计算机设备可追溯对应的数据类中的测试对象,或者对应的处理类的执行逻辑,通过实时调整对应的数据类和处理类,以保证整个测试任务的正常运行。

在一个实施例中,当测试任务结束时,也就是计算机设备得到与该测试任务对应的测试准确率时,计算机设备可对此次测试任务的执行信息进行备份保存,便于测试人员进行下载。

上述实施例中,计算机设备可展示并输出与该测试任务对应的执行信息,以便于追溯对应的数据类和处理类。通过这样的方式,计算机设备可实时对比和展示同一任务的执行情况。当执行信息表示发生异常时,可及时发现异常并进行对应的调整,保证了测试的效率。

在一个实施例中,该数据测试的方法还包括执行不同测试任务的步骤,该执行不同测试任务的步骤具体包括:获取新的测试任务,并根据新的测试任务调整数据类和处理类,并保持注解类和导入导出类不变;根据调整后的数据类和处理类、以及保持的注解类和导入导出类,执行新的测试任务得到对应的测试结果。

具体地,当计算机设备执行新的测试任务时,可在新的测试任务下添加与新的算法对应的数据类和处理类,并保持注解类和导入导出类,计算机设备可根据调整后的数据类和处理类、以及保持的注解类和导入导出类,执行新的测试任务,并得到与新的测试任务对应的测试结果。也就是说,当执行新的测试任务时,无需再次实现数据的导入、比较以及导出等逻辑,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务。

在一个实施例中,当计算机设备同时执行多于一个的测试任务时,可实时展示不同测试任务中各自对应的执行信息,从而实现在同一计算机设备上快速执行不同的算法任务,并对各算法的测试进度以及测试结果进行统计和对比。

上述实施例中,计算机设备根据新的测试任务调整数据类和处理类,并和保持不变的注解类和导入导出类一起执行新的测试任务得到对应的测试结果。这样,由于注解类和导入导出类是通用的,也就是说,不同的测试任务可以使用同一个注解类和导入导出类。当执行新的测试任务时,无需再次实现数据的导入、比较以及导出等逻辑,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务,这不仅节约了大量的时间成本和人力成本,还大大提高了测试效率。

在一个实施例中,参考图3,该数据测试的方法从分层式结构上可以按照以下方式进行理解:比如,从下至上分别为数据访问层(也就是图3中的数据处理层)、业务逻辑层(也可称作领域层)、表示层(也就是图3中的应用层)。其中,数据访问层(即数据处理层),是数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层,具体为业务逻辑层或表示层提供数据服务;业务逻辑层主要是针对具体的问题的操作,实现一个完整的数据业务逻辑处理,在接收到表现层的用户指令后,会连接数据访问层,实现三层之间的数据连接和指令传达;表示层(即应用层),与用户接触,可以理解为测试人员可以操作的界面,主要实现数据的传入与输出。

在一个实施例中,数据处理层主要包括:“测试数据”、“执行详情”(也就是上述执行信息)以及“导出数据”等功能模块。业务逻辑层主要包括:“开始执行”、“导入数据处理”、“获取处理类,执行测试任务”、以及“获取导入导出类,处理输出数据,可导出自定义的数据”等功能模块。应用层主要包括“算法”、“算法任务”、“任务列表”以及“执行情况”等功能模块。其中,“算法”功能模块包括定义算法名称、算法地址、处理类、以及导入导出类等步骤;“算法任务”功能模块包括新建算法任务、选择要测试的算法、上传测试数据、以及测试任务可被执行等步骤;“任务列表”功能模块包括查看测试任务的执行情况,比如测试任务中总的测试对象的执行数量(也就是上述总数量)、通过数(也就是上述目标数量)、失败数以及通过比例(也就是测试准确率),下载对应的测试任务的执行信息等步骤;“执行情况”功能模块包括可查看测试任务的执行信息,包括输入参数(也就是测试对象)以及输出结果(处理结果以及测试结果)等步骤。

在一个具体的实施例中,参考图4,该数据测试的方法具体包括以下步骤:

s402,接收测试文件,从测试文件中获取对应的测试对象,并将测试对象存储至数据类中。

s404,基于待测试的算法的执行逻辑创建对应的处理类。

s406,创建用于添加注解信息的注解类、以及用于传输测试对象和/或测试结果的导入导出类。

s408,新建测试任务,并确定与测试任务对应的数据类。

s410,通过通用的注解类为数据类中各测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照第一注解信息将测试对象传输至与测试任务对应的处理类。

s412,通过处理类对各测试对象进行测试处理,得到处理结果。

s414,当与测试对象对应的处理结果与预期结果的差异小于等于第一预设阈值时,确定与测试对象对应的比对结果为处理结果符合预期。

s416,当与测试对象对应的处理结果与预期结果的差异大于第一预设阈值时,确定与测试对象对应的比对结果为处理结果不符合预期。

s418,确定处理结果符合预期的目标数量以及处理结果的总数量。

s420,基于目标数量和总数量,计算得到与测试任务对应的测试准确率。

s422,通过注解类为与测试任务对应的各测试对象、处理结果以及测试结果分别添加表示输出的第二注解信息。

s424,通过导入导出类按照第二注解信息将各测试对象、处理结果以及测试结果关联存储至区块链中。

s426,当测试结果中的测试准确率低于第二预设阈值时,调整与测试任务对应的处理类,得到调整后的处理类。

s428,将调整后的处理类作为下一次测试时与测试任务对应的处理类,返回通过导入导出类按照注解信息将测试对象传输至与测试任务对应的处理类的步骤并继续执行,直至满足停止条件时停止。

s430,根据多于一个的处理类各自对应的测试准确率,对不同处理类进行性能分析,得到分析结果。

s432,展示与测试任务对应的执行信息。

s434,当执行信息表示发生异常时,调整对应的数据类和处理类。

s436,当测试任务结束时,输出与测试任务对应的执行信息。

s438,获取新的测试任务,并根据新的测试任务调整数据类和处理类,并保持注解类和导入导出类不变。

s440,根据调整后的数据类和处理类、以及保持的注解类和导入导出类,执行新的测试任务得到对应的测试结果。

上述数据测试方法,当执行测试任务时,确定与该测试任务对应的数据类和处理类,通过注解类为数据类中的各测试对象分别添加表示输入的第一注解信息,这样就可直接通过导入导出类自动按照第一注解信息将测试对象传输至处理类中进行处理,得到对应的处理结果。再根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果后,可直接通过导入导出类输出该测试结果。这样,通过数据类、注解类、导入导出类和处理类的自动配合执行,无需人工或单独实现整个自动化脚本的编写,就可以自动化执行测试任务,大大提高了测试效率。并且,由于注解类和导入导出类是通用的,也就是说,不同的测试任务可以使用同一个注解类和导入导出类。因此,当执行新的测试任务时,无需再次实现数据的导入、比较以及导出等逻辑,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务,这不仅节约了大量的时间成本和人力成本,同时,还大大提高了测试效率。

应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种数据测试装置500,包括:创建模块501、输入模块502、处理模块503、比对模块504和输出模块505,其中:

创建模块501,用于新建测试任务,并确定与测试任务对应的数据类;数据类包括至少一组的测试对象;

输入模块502,用于通过通用的注解类为数据类中各测试对象分别添加表示输入的第一注解信息,并通过通用的导入导出类按照第一注解信息将测试对象传输至与测试任务对应的处理类;

处理模块503,用于通过处理类对各测试对象进行测试处理,得到处理结果;

比对模块504,用于根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果;

输出模块505,用于通过导入导出类输出与测试任务对应的测试结果。

在一个实施例中,创建模块501还用于接收测试文件,从测试文件中获取对应的测试对象,并将测试对象存储至数据类中;基于待测试的算法的执行逻辑创建对应的处理类;创建用于添加注解信息的注解类、以及用于传输测试对象和/或测试结果的导入导出类。

在一个实施例中,比对模块504还用于当与测试对象对应的处理结果与预期结果的差异小于等于第一预设阈值时,确定与测试对象对应的比对结果为处理结果符合预期;当与测试对象对应的处理结果与预期结果的差异大于第一预设阈值时,确定与测试对象对应的比对结果为处理结果不符合预期;确定处理结果符合预期的目标数量以及处理结果的总数量;基于目标数量和总数量,计算得到与测试任务对应的测试准确率。

在一个实施例中,参考图6,该数据测试装置500还包括调整模块506,用于当测试准确率低于第二预设阈值时,调整与测试任务对应的处理类,得到调整后的处理类;将调整后的处理类作为下一次测试时与测试任务对应的处理类,返回通过导入导出类按照注解信息将测试对象传输至与测试任务对应的处理类的步骤并继续执行,直至满足停止条件时停止;根据多于一个的处理类各自对应的测试准确率,对不同处理类进行性能分析,得到分析结果。

在一个实施例中,输出模块505还用于通过注解类为与测试任务对应的各测试对象、处理结果以及测试结果分别添加表示输出的第二注解信息;通过导入导出类按照第二注解信息将各测试对象、处理结果以及测试结果关联存储至区块链中。

在一个实施例中,该数据测试装置500还包括展示模块507,用于展示与测试任务对应的执行信息;执行信息包括各测试对象的测试状态、处理结果以及测试结果中的至少一种;当执行信息表示发生异常时,调整对应的数据类和处理类;当测试任务结束时,输出与测试任务对应的执行信息。

在一个实施例中,调整模块506还用于获取新的测试任务,并根据新的测试任务调整数据类和处理类,并保持注解类和导入导出类不变;根据调整后的数据类和处理类、以及保持的注解类和导入导出类,执行新的测试任务得到对应的测试结果。

上述数据测试装置,当执行测试任务时,确定与该测试任务对应的数据类和处理类,通过注解类为数据类中的各测试对象分别添加表示输入的第一注解信息,这样就可直接通过导入导出类自动按照第一注解信息将测试对象传输至处理类中进行处理,得到对应的处理结果。再根据各测试对象分别对应的处理结果和预期结果,确定与测试任务对应的测试结果后,可直接通过导入导出类输出该测试结果。这样,通过数据类、注解类、导入导出类和处理类的自动配合执行,无需人工或单独实现整个自动化脚本的编写,就可以自动化执行测试任务,大大提高了测试效率。并且,由于注解类和导入导出类是通用的,也就是说,不同的测试任务可以使用同一个注解类和导入导出类。因此,当执行新的测试任务时,无需再次实现数据的导入、比较以及导出等逻辑,只需添加与新的测试任务对应的处理类和数据类,即可实现自动化执行测试任务,这不仅节约了大量的时间成本和人力成本,同时,还大大提高了测试效率。

关于数据测试装置的具体限定可以参见上文中对于数据测试方法的限定,在此不再赘述。上述数据测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备具体可以是终端或服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和通信接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi(wirelessfidelity,无线局域网)、运营商网络、nfc(nearfieldcommunication,近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据测试方法。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据测试方法的步骤。此处数据测试方法的步骤可以是上述各个实施例的数据测试方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据测试方法的步骤。此处数据测试方法的步骤可以是上述各个实施例的数据测试方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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