序列化测试方法和装置与流程

文档序号:16467965发布日期:2019-01-02 22:53阅读:202来源:国知局
序列化测试方法和装置与流程

本发明涉及生产测试领域,尤其涉及一种序列化测试方法和装置。



背景技术:

在生产测试领域中,存在着各种测试任务。其中,有一种测试任务使用的最为频繁,即序列化测试任务。序列化测试任务的内容主要为:预先定义待测试的行为序列,然后根据该行为序列依次运行各个测试项。这些测试项之间可能会在一些依赖关系,即一个测试项的执行与否,取决于其它测试项的执行结果。

目前,现有的生产测试平台的测试引擎,其测试项之间的依赖关系采用的是资源保护对的方式。资源保护对可为:两个具有一对一依赖关系的测试项,即一个测试项的执行与否,取决于另一个测试项是否执行成功,但是基于资源保护对方式进行的测试,这种一对一的测试处理方式不能满足一个测试项同时依赖于多个测试项的测试需求,基于这种依赖关系会导致测试的范围受限。



技术实现要素:

有鉴于此,本发明实施例期望提供一种序列化测试方法和装置,可以解决序列化测试过程中由于测试项之间一对一的依赖关系导致的测试范围受限的问题。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种序列化测试方法,该方法包括:

获取第一测试项的执行结果;

将所述执行结果与期待值进行比较,得到比较结果;

将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系;

根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

上述技术方案中,所述获取第一测试项的执行结果之前,所述方法还包括:

编辑所述执行条件表达式;

检测所述执行条件表达式和所述第一测试项是否正确;

当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式。

上述技术方案中,所述检测所述执行条件表达式和所述第一测试项是否正确,包括:

检测所述执行条件表达式中的操作数和运算符的组合关系是否正确;

检测所述第一操作项的依赖关系是否为所述第一操作项的闭环依赖关系,其中,所述闭环依赖关系为至少两个测试项之间的依赖关系形成了封闭环路。

上述技术方案中,所述方法还包括:

当所述执行条件表达式和所述第一测试项中至少一个不正确时,重新编辑所述执行条件表达式。

上述技术方案中,所述将所述比较结果输入执行条件表达式,包括:

将所述比较结果作为所述执行条件表达式中操作数的实际值,输入所述执行条件表达式。

上述技术方案中,所述根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项之后,还包括:

在所述执行条件表达式的计算结果为真时,执行所述第二测试项的序列化测试;

在所述执行条件表达式的计算结果为假时,不执行所述第二测试项的序列化测试。

本发明实施例还提供了一种序列化测试的装置,所述装置包括:获取模块、比较模块、输入模块和执行模块;其中,

所述获取模块,用于获取第一测试项的执行结果;

所述比较模块,用于将所述执行结果与期待值进行比较,得到比较结果;

所述输入模块,用于将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系;

所述执行模块,用于根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

上述技术方案中,所述装置还包括:编辑模块;

所述编辑模块,用于编辑所述执行条件表达式;检测所述执行条件表达式和所述第一测试项是否正确;当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式。

本发明实施例还提供了一种终端,包括:

通信接口,用于与其他设备进行通信;

存储介质,用于存储有计算机程序;

处理器,分别与所述通信接口及所述存储介质相连,用于通过所述计算机程序至少可执行如下步骤:

获取第一测试项的执行结果;

将所述执行结果与期待值进行比较,得到比较结果;

将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系;

根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

本发明实施例还提供了一种计算机存储介质,所述计算机存储机制存储有计算机程序,所述计算机程序可用于处理器执行上述技术方案中的步骤。

本发明实施例所提供的序列化测试方法和装置,在序列化测试的过程中,改变了现有技术中基于资源保护对的依赖关系,通过执行条件表达式对测试项之间的依赖关系进行设置,将执行条件表达式中涉及的第一测试项的执行结果与期待值进行比较,再将得到的比较结果代入所述执行条件表达式后,判断是否执行与所述第一测试项具有依赖关系的所述第二测试项,所述执行条件表达式设置的依赖关系可以为一对一对应的依赖关系,也可以为多对一的依赖关系,可以根据测试需求进行多样化的设置,从而解决了现有技术中序列化测试测试项之间单一依赖关系导致的测试范围受限或测试效果局限的问题,使得一个测试项是否执行不再仅能取决于另一个测试项的执行成功,通过执行条件表达式对测试项之间的依赖关系进行灵活地配置,能够满足测试项之间的各种依赖关系,可以满足用户对测试的多样化需求,提升用户体验。

附图说明

图1为本发明实施例序列化测试方法的实现流程示意图;

图2为本发明实施中闭环依赖关系的示意图;

图3为本发明实施例序列化测试方法的具体实现流程示意图;

图4为本发明实施例序列化测试装置的组成结果示意图;

图5为本发明实施例终端的组成结构示意图。

具体实施方式

本发明实施例中,通过执行条件表达式对测试项之间的依赖关系进行设置,当第二测试项中存在执行条件表达式时,将所述执行条件表达式中涉及的第一测试项的执行结果与预先设置的期待值进行比较,再将比较后的比较结果输入所述执行条件表达式中,根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

如果所述执行条件表达式的计算结果为真,则执行所述第二测试项的序列化测试;如果所述执行条件表达式的计算结果为假,则不执行所述第二测试项的序列化测试。所述第二测试项的执行与否取决于所述执行条件表达式的计算结果,所述执行条件表达式可以对测试项之间的依赖关系进行多样化的设置。

其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系。

为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述。

图1为本发明实施例提供的序列化测试方法的实现流程图,如图1所示,所述方法主要包括以下步骤:

步骤101:获取第一测试项的执行结果。

步骤102:将所述执行结果与期待值进行比较,得到比较结果。

步骤103:将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系;

步骤104:根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

本发明实施例提供的序列化测试方法实施时,在所述步骤101之前,还包括:编辑所述执行条件表达式;检测所述执行条件表达式和所述第一测试项是否正确;当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式。

其中,所述编辑所述执行条件表达式可以为:对所述执行条件表达式中的多个操作数和多个运算符进行组合,形成一个完整的逻辑关系运算式;将选择的所述第一测试项代入所述执行条件表达式中的操作数中,完成对所述第二测试项与所述第一测试项之间的依赖关系的设置。所述执行条件表达式类似于程序语言中的条件表达式或者数学运算式,执行条件表达式的运算结果为布尔类型的变量。所述执行条件表达式由操作数和运算符组成;其中,所述操作数对应序列化测试中的测试项。具体地,在编辑所述执行条件表达式时,需要将选择的测试项输入所述执行条件表达式中的操作数中,所述选择的测试项为第一测试项,所述第一测试项中可以为多个测试项,这些测试项以标识(id)作为唯一标识。所述操作数还包含了代入的测试项期待执行结果,所述期待执行结果即为期待值。其中,所述运算符为与、或、非、括号等逻辑运算符。所述执行条件表达式是由多个操作数及多个运算符组成。

在所述执行条件表达式编辑结束后,会检测所述执行条件表达式和所述第一测试项是否正确,具体为:检测所述执行条件表达式中的操作数和运算符的组合关系是否正确,以及检测所述第一操作项的依赖关系是否为所述第一操作项的闭环依赖关系。其中,所述闭环依赖关系为至少两个测试项之间的依赖关系形成了封闭环路,所述闭环依赖关系如图2所示,测试项a依赖于测试项b,测试项b依赖于测试项c,测试项c依赖于测试项a,也就是测试项a最终依赖于测试项a。如果测试项之间的依赖关系形成了封闭的环路,一个测试项的执行依赖于自身的执行结果,这是不符合逻辑的。

当所述执行条件表达式和所述第一测试项中至少一个不正确时,即所述执行条件表达式中操作数的逻辑关系表达式存在问题,或者所述第一测试项中存在闭环依赖关系的测试项时,重新编辑所述执行条件表达式。

当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式;其中,所述保存所述执行条件表达式,可以将所述执行条件表达式保存在所述第二测试项中,每当执行所述第二测试项时,就可以直接调用所述执行条件表达式;或者将每个测试项的执行条件表达式统一保存在一个区域,当执行一个测试项时,通过测试项和对应的执行条件表达式的标识符号,找到与测试项对应的执行条件表达式;或者可以将所述执行条件表达式进行编号,这时,所述执行条件表达式不再对应于一个测试项,当执行一个测试项时,会指定测试项一个执行条件表达式的编号,以此来调用需要执行的执行条件表达式。

具体地,可以设置一个执行条件表达式编辑器,对所述执行条件表达式进行编辑。所述执行条件表达式编辑器可以包含三个区域:操作数区域、运算符区域、执行条件表达式显示区域。其中,所述操作数区域可以显示一颗含有序列化测试所要进行的所有测试项的树,树中存在测试项之间连接的节点,显示了所要进行的测试项执行的先后顺序,即树中根节点所在的测试项执行先于子节点所在的测试项,父节点对应的测试项的执行是先于子节点对应的测试项的执行,但是值得注意的是:树中节点对应的测试项是否执行取决于与其具有依赖关系的其他测试项的执行结果及执行条件表示式的计算结果。其中,所有的测试项可以作为所述执行条件表达式中的操作数使用;其中,运算符区域可以包含一些逻辑符号按钮,比如“与”、“或”、“非”等逻辑符号按钮,还可以包括左括号、右括号、清空、删除、确定、取消等按钮;其中,所述执行条件表达式显示区域可以实时显示编辑的表达式。

在输入操作数时,可以将操作数区域的测试项输入至执行条件表达式显示区域,并设置该测试项的期待的运行结果,包括执行成功、执行失败等任何结果。在输入运算符时,可以直接将操作符区域逻辑符号输入运算符。当执行条件表达式设置完成时,可以根据读取的确定信息,检查编辑的执行条件表达式是否正确以及涉及的测试项是否有闭环依赖关系,当检测成功后,将编辑的执行条件表达式进行保存。

在步骤101中,获取第一测试项的执行结果,包括:获取所述第一测试项中的每一个测试项的执行结果。其中,所述第一测试项为所述执行条件表达式中涉及的测试项,所述第一测试项为至少一个测试项。其中,所述执行结果可以为所述第一测试项的执行成功、执行失败或者正在执行过程中等执行结果。

在步骤102中,将所述执行结果与期待值进行比较,得到比较结果,包括:将所述第一测试项中的每一个测试项的执行结果与预先设置的每一个测试项的期待值进行比较。其中,所述期待值为执行条件表达式在编辑的过程中对输入的测试项设置的期待值,可以为期待所述第一测试项执行成功或者期待所述第一测试项执行失败等期待的执行结果。

具体地,将步骤101中得到的所述第一测试项的执行结果和所述期待值进行比较,如果所述执行结果和所述期待值相同,则将比较结果设置为1;如果所述执行结果和所述期待值相同,则将比较结果设置为0。当然,所述比较结果可以根据需求进行具体设定,这里只是为了方便理解,将所述比较结果进行上述设置。

在步骤103中,将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系,包括:将所述比较结果作为所述执行条件表达式中操作数的实际值,输入所述执行条件表达式,所述执行条件表达式表征了一个或多个所述第一测试项与第二测试项之间的依赖关系。

具体地,将所述第一测试项中每一个操作项的比较结果代入每一个测试项对应的操作数中,由所述执行条件表达式对输入了具体逻辑值的操作数进行逻辑关系运算,得到所述第二测试项对应的所述执行条件表达式的计算结果。

在步骤104中,根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项,包括:根据所述执行条件表达式的计算结果,在所述执行条件表达式的计算结果为真时,执行所述第二测试项的序列化测试;在所述执行条件表达式的计算结果为假时,不执行所述第二测试项的序列化测试。

其中,所述执行条件表达式的计算结果决定所述第二测试项是否执行,所述执行条件表达式中为所述第一测试项的逻辑关系运算式,也就是所述第二测试项是否执行依赖于所述第一测试项,所述执行条件表达式可以根据读取的操作信息对所述第一测试项和所述第二测试项之间的依赖关系进行设置,使得测试项之间的依赖关系更加多样化。

图3为本发明实施例提供的序列化测试方法的具体实现流程示意图,如图3所述,序列化测试方法的具体实现流程包括以下步骤:

步骤301,当序列化测试运行到第二测试项时,获取第二测试项的执行条件表达式;

当序列化测试运行到所述第二测试项时,首先获取所述第二测试项的执行条件表达式。

步骤302,判断第二测试项的执行条件表达式是否为空;

所述判断所述第二测试项的执行条件表达式是否为空即为:所述第二测试项是否存在对应的执行条件表达式;如果所述第二测试项中存在对应的执行条件表达式,则执行步骤303;否则,执行所述第二测试项,即执行步骤307。

步骤303,根据执行条件表达式,获取第一测试项的执行结果;

如果所述第二测试项中存在对应的执行条件表达式,根据所述执行条件表达式中操作数对应的所述第一测试项,获取所述第一测试项的执行结果;其中,所述第一测试项为在编辑所述执行条件表达式时输入操作数的测试项,所述测试项可以以id作为标识,也可以对所述测试项进行命名,具体实现方式可以根据需求以及实际操作而定。

步骤304,将第一测试项的执行结果与预先设定的期待值进行比较,得到比较结果;

将步骤303中获取的所述第一测试项中每一个测试项的执行结果与预先设定的期待值进行比较,所述期待值是在编辑执行条件表达式时,对输入操作数的测试项设置的期待执行结果,所述执行结果为每个测试项对应的实际执行结果,将所述第一测试项的执行结果和期待值进行比较之后,得到比较结果,所述比较结果可以为逻辑运算关系的真值。

步骤305,将比较结果输入执行条件表达式进行计算;

将步骤304中得到的第一测试项的比较结果代入执行条件表达式,经过所述执行条件表达式的运算后,得到计算结果,所述计算结果为逻辑运算关系的真值。

步骤306,执行条件表达式的计算结果是否为真;

当步骤305中得到的计算结果为真时,执行第二测试项,即进行步骤307;

当步骤305中得到的计算结果为假时,不执行第二测试项,即进行步骤308;

其中,所述执行条件表达式规定了第一测试项和第二测试项之间的依赖关系,即所述第二测试项依赖于所述第一测试项,执行条件表达式对所述第一测试项进行逻辑运算得到计算结果,所述结果决定是否执行所述第一测试项。

当所述第一测试项的执行结果与预先设定的期待值相同或相等,得到的比较结果输入到所述执行条件表达式之后,所述执行条件表示式的计算结果,将触发所述第二测试项的执行。

步骤307,执行第二测试项。

步骤308,结束当前流程。

如果步骤305中得到的计算结果为假,或者执行步骤307之后,则结束当前执行第二测试项的流程。

本发明实施例还提供了一种序列化测试的装置,所述装置的组成结构如图4所示,包括:获取模块401、比较模块402、输入模块403和执行模块404,其中,

所述获取模块401,用于获取第一测试项的执行结果;所述第一测试项为读取的与第二测试项具有依赖关系的测试项,获取模块401根据第一测试项的id或者编号获取所述第一测试项的结果,所述执行结果可以为执行成功、执行失败或者执行进行中等。

所述比较模块402,用于将所述执行结果与期待值进行比较,得到比较结果;其中,所述期待值为对所述第一测试项期待的执行结果,即希望所述第一测试项执行成功或者执行失败等;所述比较模块402将获取模块401获取的第一测试项的执行结果与预先设置的期待值进行比较,得到比较结果。

所述输入模块403,用于将所述比较结果输入执行条件表达式;其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系,所述执行条件表达式中存在操作数和逻辑运算符,是由编辑模块405根据读取的操作信息进行编辑的。

所述输入模块403,具体用于:将所述比较结果作为所述执行条件表达式中操作数的实际值,输入所述执行条件表达式。所述输入模块403从比较模块402中获得的比较结果,将比较结果输入到执行条件表达式对应的操作数中进行逻辑关系的运算。

所述执行模块404,用于根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

所述执行模块404,具体用于:在所述执行条件表达式的计算结果为真时,执行所述第二测试项的序列化测试;在所述执行条件表达式的计算结果为假时,不执行所述第二测试项的序列化测试。

进一步地,所述装置还包括:编辑模块405,用于编辑所述执行条件表达式;检测所述执行条件表达式和所述第一测试项是否正确;当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式。

所述编辑模块405需要检测所述执行条件表达式中的操作数和运算符的组合关系是否正确,以及检测所述第一操作项的依赖关系是否为所述第一测试项的闭环依赖关系;其中,所述闭环依赖关系为至少两个测试项之间的依赖关系形成了封闭环路;当所述执行条件表达式和所述第一测试项中至少一个不正确时,重新编辑所述执行条件表达式。

具体地,编辑模块405根据读取的操作信息对执行条件表达式中的操作数和逻辑关系运算符进行组合,将选择的测试项代入执行条件表达式,其中,代入执行条件表达式的测试项为至少一个测试项;编辑模块405在完成执行条件表达之后,对所述执行条件表达式进行测试,测试执行条件表达式中涉及的逻辑运算关系是否正确,同时,对执行条件表达式代入的测试项进行检测,检测执行条件表达式中代入的测试项中是否存在闭环依赖关系;当执行条件表达式和测试项均正确时,编辑模块405保存编辑的执行条件表达式。

当序列化测试执行到第二测试项时,如果第二测试项中存在执行条件表达式,获取模块401获取执行条件表达式以及获取执行条件表达式中涉及的第一测试项,并根据第一测试项的id或者编号获取第一测试项的执行结果。

比较模块402从获取模块401中得到第一测试项的执行结果,将执行结果与第一测试项预先设施的期待值进行比较,得到比较结果,所述比较结果可以是逻辑关系的真值,或者根据不同的比较结果,设置不同的数值。比较模块402得到比较结果后,将比较结果传递给输入模块403。

输入模块403将从比较模块402得到的比较结果输入到执行条件表达式中,执行条件表达式对输入的数值进行运算。

执行模块404根据执行条件表达式的计算结果,判断是否执行第二测试项,当执行条件表达式的计算结果为真时,执行模块404执行第二测试项;当执行条件表达式的计算结果为假时,执行模块404不执行第二测试项。

以上所述获取模块401、比较模块402、输入模块403、执行模块404、编辑模块405可由位于终端中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)、或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

本发明实施例中还提供了一种终端,所述系统的组成结构如图5所示,包括:通信接口501、存储介质502和处理器503;其中,

所述通信接口501,用于与其他设备进行通信;所述通信接口可以分为串行接口和并行接口,常用的通信接口为标准通信接口rs-232、rs-485、rs-422等。

所述存储介质502,用于存储有计算机程序;所述存储介质可以分为随机存储介质和只读存储介质,存储介质可以是紧凑式闪存(compactflash,cf)卡、安全数字记忆(securedigitalmemory,sd)卡,智能媒体(smartmedia,sm)卡、记忆棒等具有存储数据功能的应用实体。

所述处理器503,分别与所述通信接口及所述存储介质相连,用于通过所述计算机程序至少可执行如下步骤:

获取第一测试项的执行结果;

将所述执行结果与期待值进行比较,得到比较结果;

将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系;

根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

进一步地,所述处理器503,还可以执行以下步骤:

编辑所述执行条件表达式;检测所述执行条件表达式和所述第一测试项是否正确;当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式。

检测所述执行条件表达式中的操作数和运算符的组合关系是否正确;所述第一操作项的依赖关系是否为所述第一操作项的闭环依赖关系,其中,所述闭环依赖关系为至少两个测试项之间的依赖关系形成了封闭环路于。

当所述执行条件表达式和所述第一测试项中至少一个不正确时,重新编辑所述执行条件表达式。

将所述比较结果作为所述执行条件表达式中操作数的实际值,输入所述执行条件表达式。

在所述执行条件表达式的计算结果为真时,执行所述第二测试项的序列化测试;在所述执行条件表达式的计算结果为假时,不执行所述第二测试项的序列化测试。

需要说明的是,所述通信接口501、存储介质502和处理器503均具有很多应用实体,以上仅进行举例说明,并不限定本发明的保护范围。

本发明实施例还提供了一种计算机存储介质,所述计算机存储机制存储有计算机程序,所述计算机程序可用于处理器执行如下所述的方法:

获取第一测试项的执行结果;将所述执行结果与期待值进行比较,得到比较结果;将所述比较结果输入执行条件表达式,其中,所述执行条件表达式表征的是一个或多个所述第一测试项与第二测试项之间的依赖关系;根据所述执行条件表达式的计算结果,判断是否执行所述第二测试项。

编辑所述执行条件表达式;检测所述执行条件表达式和所述第一测试项是否正确;当所述执行条件表达式和所述第一测试项均正确时,保存所述执行条件表达式。

检测所述执行条件表达式中的操作数和运算符的组合关系是否正确;所述第一操作项的依赖关系是否为所述第一操作项的闭环依赖关系,其中,所述闭环依赖关系为至少两个测试项之间的依赖关系形成了封闭环路于。

当所述执行条件表达式和所述第一测试项中至少一个不正确时,重新编辑所述执行条件表达式。

将所述比较结果作为所述执行条件表达式中操作数的实际值,输入所述执行条件表达式。

在所述执行条件表达式的计算结果为真时,执行所述第二测试项的序列化测试;在所述执行条件表达式的计算结果为假时,不执行所述第二测试项的序列化测试。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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