发明内容
有鉴于此,本说明书实施例提供了一种软件测试方法。本说明书同时涉及一种软件测试装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种软件测试方法,包括:
获取当前测试节点的至少两个前置依赖节点的测试结果;
若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
可选地,所述获取当前测试节点的测试结果之后,还包括:
若基于当前测试节点的测试结果确定当前测试节点的测试任务执行成功,确定当前测试节点是否存在后置依赖节点;
在确定当前测试节点存在后置依赖节点的情况下,基于当前测试节点的测试结果生成所述后置依赖节点的测试用例;
执行所述后置依赖节点的测试用例,并获取所述后置依赖节点的测试结果。
可选地,所述至少两个前置依赖节点的测试结果中包括任务状态,基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,包括:
若所述任务状态是成功,确定所述至少两个前置依赖节点的测试任务执行成功。
可选地,所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例,包括:
基于所述至少两个前置依赖节点的业务数据,生成当前测试节点的测试用例。
可选地,获取当前测试节点的至少两个前置依赖节点的测试结果之前,还包括:
获取针对目标软件的目标测试任务;
基于所述目标测试任务,生成多个初始测试用例,其中,所述多个初始测试用例之间存在依赖关系,且所述多个初始测试用例中包括所述至少两个前置依赖节点的初始测试用例;
相应地,获取当前测试节点的至少两个前置依赖节点的测试结果,包括:
执行所述至少两个前置依赖节点的初始测试用例,并确定每个前置依赖节点的测试结果。
可选地,所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例,包括:
基于所述至少两个前置依赖节点的业务数据和当前测试节点的初始测试用例,生成当前测试节点的测试用例。
可选地,获取当前测试节点的至少两个前置依赖节点的测试结果之后,还包括:
在确定当前测试节点在当前测试周期内未执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;
重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;
若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述测试任务执行成功的前置依赖节点的测试结果和所述新的测试结果,生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
可选地,所述获取当前测试节点的至少两个前置依赖节点的测试结果之后,还包括:
在确定当前测试节点在当前测试周期内执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;
重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;
若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述新的测试结果,生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
根据本说明书实施例的第二方面,提供了一种软件测试装置,包括:
第一获取模块,被配置为获取当前测试节点的至少两个前置依赖节点的测试结果;
生成模块,被配置为若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;
第二获取模块,被配置为执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
可选地,所述第二获取模块还被配置为:
若基于当前测试节点的测试结果确定当前测试节点的测试任务执行成功,确定当前测试节点是否存在后置依赖节点;
在确定当前测试节点存在后置依赖节点的情况下,基于当前测试节点的测试结果生成所述后置依赖节点的测试用例;
执行所述后置依赖节点的测试用例,并获取所述后置依赖节点的测试结果。
可选地,所述生成模块被配置为:
所述至少两个前置依赖节点的测试结果中包括任务状态,若所述任务状态是成功,确定所述至少两个前置依赖节点的测试任务执行成功。
可选地,所述生成模块被配置为:
所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的业务数据,生成当前测试节点的测试用例。
可选地,所述第一获取模块还被配置为:
获取针对目标软件的目标测试任务;
基于所述目标测试任务,生成多个初始测试用例,其中,所述多个初始测试用例之间存在依赖关系,且所述多个初始测试用例中包括所述至少两个前置依赖节点的初始测试用例;
执行所述至少两个前置依赖节点的初始测试用例,并确定每个前置依赖节点的测试结果。
可选地,所述生成模块被配置为:
所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的业务数据和当前测试节点的测试用例,生成当前测试节点的初始测试用例。
可选地,所述第一获取模块还被配置为:
在确定当前测试节点在当前测试周期内未执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;
重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;
若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述测试任务执行成功的前置依赖节点的测试结果和所述新的测试结果,生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
可选地,所述第一获取模块还被配置为:
在确定当前测试节点在当前测试周期内执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;
重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;
若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述新的测试结果,生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取当前测试节点的至少两个前置依赖节点的测试结果;
若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述软件测试方法的步骤。
本说明书提供的软件测试方法,获取当前测试节点的至少两个前置依赖节点的测试结果,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;执行当前测试节点的测试用例,并获取当前测试节点的测试结果。上述方法中当前测试节点包括至少两个前置依赖节点,且每个前置依赖节点可以处理一个测试任务,则可以实现多源头依赖任务的处理,即可以并行处理至少两个测试任务,提高了软件测试的效率。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
测试用例:在测试过程中很重要的一类文档,软件测试就是按照测试用例执行测试任务。
测试结果:执行测试用例后得到的结果,包括业务本身的业务数据、执行该测试用例的效率等属性信息、以及测试用例对应的任务当前所处的任务状态。
任务状态:可以包括初始化、等待执行、运行中、成功、失败、杀掉等等,可以用于表示测试用例对应的任务当前所处的阶段,以及确定任务是否执行成功。
前置依赖节点:前置依赖节点是测试结果对当前测试节点的测试结果有影响的测试节点。
后置依赖节点:后置依赖结果是受当前测试节点的测试结果的影响的测试节点。
在本说明书中,提供了一种软件测试方法,本说明书同时涉及一种软件测试装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例提供的一种软件测试方法的流程图,具体可以包括以下步骤:
步骤102:获取当前测试节点的至少两个前置依赖节点的测试结果。
在本申请实施例中,当前测试节点可以是存在至少两个前置依赖节点的任一测试节点。至少两个前置依赖节点是与当前测试节点存在依赖关系,且影响当前测试节点的测试结果的测试节点。作为一种示例,至少两个前置依赖节点的测试结果是执行该至少两个前置依赖节点的测试用例得到的,可以反映该至少两个前置依赖节点的测试任务是否执行成功。
示例性地,若将测试节点之间的依赖关系以图的形式表示,则可以得到图2 所示的依赖关系图,在图2的2A中,测试节点2可以作为当前测试节点,测试节点1和测试节点4均是该测试节点2的前置依赖节点。
需要说明的是,软件测试可以是按照周期执行的,因此,本步骤中获取的测试结果是至少两个前置依赖节点在当前测试周期内执行测试用例后得到的测试结果。
进一步地,获取当前测试节点的至少两个前置依赖节点的测试结果之前,还包括:获取针对目标软件的目标测试任务;基于所述目标测试任务,生成多个初始测试用例,其中,所述多个初始测试用例之间存在依赖关系,且所述多个初始测试用例中包括所述至少两个前置依赖节点的初始测试用例;相应地,获取当前测试节点的至少两个前置依赖节点的测试结果的具体实现可以包括:执行所述至少两个前置依赖节点的初始测试用例,并确定每个前置依赖节点的测试结果。
也就是说,可以先获取到需要测试的目标软件的目标测试任务,基于该目标测试任务生成需要执行的多个初始测试用例,该多个初始测试用例需要多个测试节点执行,且该多个初始测试用例之间存在依赖关系,则该多个初始测试用例中可以包括该至少两个前置依赖节点的初始测试用例。在该种情况下,通过该至少两个前置依赖节点分别执行其对应的初始测试用例,则可以得到每个前置依赖节点的测试结果。
在一些实施例中,若技术人员想要对目标软件的某个功能进行测试,可以通过终端生成目标测试任务发送至服务器,则服务器可以获取到针对目标软件的目标测试任务。通过对该目标测试任务进行需求分析,可以确定多个测试节点,且为每个测试节点生成初始测试用例,该多个初始测试用例之间存在依赖关系,则可以认为该多个测试节点之间存在依赖关系。
作为一种示例,初始测试用例可以包括用例编号、用例名称、测试环境、输入数据、测试步骤、预期结果等,本申请实施例对此不作限定。
示例性地,参见图2,测试节点3的测试依赖于测试节点2,测试节点2依赖于测试节点1和测试节点4,测试节点1依赖于测试节点6,则测试节点2的测试结果影响测试节点3的测试结果,测试节点1和测试节点4的测试结果均影响测试节点2的测试结果,测试节点6的测试结果影响测试节点1的测试结果。
在一些实施例中,可以并行执行至少两个前置依赖节点的初始测试用例,得到每个前置依赖节点的测试结果。或者,可以在依赖关系的基础上设置同级的多个初始测试用例的优先级,则可以根据优先级执行至少两个前置依赖节点的初始测试用例。或者,可以在生成初始测试用例时确定每个初始测试用例的执行时间,按照执行时间从前到后的顺序执行该至少两个前置依赖节点的初始测试用例。
在本申请一种可能的实现方式中,可以在获取到针对目标软件的目标测试任务时,基于该目标测试任务生成多个初始测试用例,每个初始测试用例由不同的测试节点指令执行,且该多个初始测试用例之间存在依赖关系,则多个测试节点执行初始测试用例时存在依赖关系。并且,至少两个前置依赖节点可以是该目标测试任务的两个头节点,则由该两个前置依赖节点执行其对应的初始测试用例,可以得到每个前置依赖节点的测试结果。
在本申请另一种可能的实现方式中,参见图3,可以在获取到针对目标软件的目标测试任务时,基于该目标测试任务确定多个测试节点以及多个测试节点之间的依赖关系并生成依赖实例。对于依赖源头个数大于1的节点,如图2中的测试节点10,若在该节点的测试周期内,以测试周期是每天为例,若当天该节点的任务的实例个数为1并且当前的实例状态为初始状态,说明还未执行测试任务,则可以开始执行测试任务。在检测到该节点的一个前置依赖已经生成完,即该节点依赖的两个或者更多的前置依赖节点中的某一个的测试用例已经执行完成,仍然以图2的测试节点10为例,例如测试节点7的测试用例已经完成,为了避免该测试节点在其他前置依赖节点的测试用例未生成的情况下提前启动测试用例的执行,如在测试节点8和测试节点9还未完成测试用例,可以生成虚拟依赖用来控制多依赖节点,如测试节点10的测试用例的执行进度。在依赖源头个数大于1的节点检测到其依赖的其他前置依赖节点的测试用例均执行成功后,可以将创建的虚拟依赖删除,此时可以继续执行本节点的测试用例,如测试节点10检测到测试节点7、8和9的测试用例均执行完成,则可以删除虚拟依赖,并执行测试节点10的测试用例。
进一步地,获取当前测试节点的至少两个前置依赖节点的测试结果之后,还包括:在确定当前测试节点在当前测试周期内未执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述测试任务执行成功的前置依赖节点的测试结果和所述新的测试结果,生成当前测试节点的测试用例;执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
也就是说,获取当前测试节点的至少两个前置依赖节点的测试结果之后,可以基于至少两个前置依赖节点的测试结果确定测试任务是否执行成功,若至少两个前置依赖节点中存在测试任务执行失败的测试节点,且当前测试节点在当前测试周期内未执行过测试用例,由于当前测试节点的测试用例需要用到其前置依赖节点的测试结果,因此,为了便于描述,可以将测试任务执行失败的前置依赖节点称为参考前置依赖节点,并重新执行该参考前置依赖节点的测试用例,得到新的测试结果,若根据该新的测试结果确定参考前置依赖节点的测试任务执行成功,可以基于该新的测试结果和测试任务执行成功的前置依赖节点的测试结果,生成当前测试节点的测试用例并执行,可以得到当前测试节点的测试结果。
在本申请实施例中,由于至少两个前置依赖节点的测试结果对当前测试节点的测试结果有影响,若当前测试节点在当前测试周期内还未执行过测试用例,则在至少两个前置依赖节点的测试结果失败的情况下,其后续的步骤,即当前测试节点执行的测试用例的测试结果也会被影响,因此,若当前测试节点是第一词在当前测试周期内执行测试用例,必须在该至少两个前置依赖节点的测试任务均执行成功之后,才能生成并执行其测试用例。若至少两个前置依赖节点中存在测试任务执行失败的参考前置依赖节点,则可以重新执行该参考前置依赖节点的测试用例得到新的测试结果,且在根据新的测试结果确定参考前置依赖节点的测试任务执行成功的情况下,认为当前测试节点可以执行测试用例。
进一步地,获取当前测试节点的至少两个前置依赖节点的测试结果之后,还包括:在确定当前测试节点在当前测试周期内执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述新的测试结果,生成当前测试节点的测试用例;执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
也就是说,获取当前测试节点的至少两个前置依赖节点的测试结果之后,可以基于至少两个前置依赖节点的测试结果确定测试任务是否执行成功,若至少两个前置依赖节点中存在测试任务执行失败的前置依赖节点,且当前测试节点在当前测试周期内执行过测试用例,说明该至少两个前置依赖节点是在重新执行其对应的测试用例。在该种情况下,为了便于描述,可以将测试任务执行失败的前置依赖节点称为参考前置依赖节点,并重新执行该参考前置依赖节点的测试用例,得到新的测试结果,若根据该新的测试结果确定参考前置依赖节点的测试任务执行成功,可以基于该新的测试结果生成当前测试节点的测试用例并执行,可以得到当前测试节点的测试结果。
在本申请实施例中,由于至少两个前置依赖节点的测试结果对当前测试节点的测试结果有影响,若当前测试节点在当前测试周期内已经执行过测试用例,则在至少两个前置依赖节点中存在测试结果失败的前置依赖节点的情况下,其后续的步骤,即当前测试节点执行的测试用例的测试结果也会被影响,因此,若当前测试节点不是第一次在当前测试周期内执行测试用例,可以重新执行测试任务执行失败的参考前置依赖节点的测试用例得到新的测试结果,且在根据新的测试结果确定参考前置依赖节点的测试任务执行成功的情况下,认为当前测试节点可以执行测试用例。
需要说明的是,在本申请实施例中,接收到针对目标软件的目标测试任务后,生成每个测试节点的测试用例以及执行每个测试节点的测试用例的实现过程可以包括上述两种可能的实现方式。
步骤104:若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例。
在实施中,由于当前测试节点依赖于至少两个前置依赖节点,因此,在当前测试节点为在当前测试周期若根据至少两个前置依赖节点的测试结果确定至少两个前置依赖节点的测试任务执行成功,则认为可以执行当前测试节点的测试用例,因此可以基于至少两个前置依赖节点的测试结果生成当前测试节点的测试用例。
在一些实施例中,所述至少两个前置依赖节点的测试结果中包括任务状态,基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功的具体实现可以包括:若所述任务状态是成功,确定所述至少两个前置依赖节点的测试任务执行成功。
其中,任务状态可以用于指示测试任务当前所处的状态。例如,任务状态可以是初始化、执行中、成功、失败等等。
具体实现中,若至少两个前置依赖节点的测试结果中任务状态均是成功,则说明至少两个前置依赖节点的测试任务均执行成功。
在一些实施例中,所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例的具体实现可以包括:基于所述至少两个前置依赖节点的业务数据,生成当前测试节点的测试用例。
作为一种示例,业务数据是测试任务在执行的过程中会生成的数据。测试用例可以认为是将业务模拟运行一次,因此,可以根据业务数据生成当前测试节点的测试用例。
在另一些实施例中,所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例的具体实现可以包括:基于所述至少两个前置依赖节点的业务数据和当前测试节点的初始测试用例,生成当前测试节点的测试用例。
作为一种示例,获取到目标测试任务后,可以生成多个初始测试用例,且每个初始测试用例由一个测试节点执行,由于初始测试用例是将业务模拟运行一次,因此,可以根据至少两个前置依赖节点的业务数据对当前测试节点的初始测试用例进行更新,可以得到当前测试节点的测试用例。
本申请实施例中,生成当前测试节点的测试用例时,可以包括两种实现方式。一种是根据其前置依赖节点的测试结果生成当前测试节点的测试用例,另一种是根据其前置依赖节点的测试结果和预先生成的当前测试节点的初始测试用例生成当前测试节点的测试用例。
步骤106:执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
作为一种示例,可以执行当前测试节点的测试用例,得到当前测试节点的测试结果,可以用于判断当前测试节点的测试任务是否执行成功。
在一些实施例中,获取当前测试节点的测试结果之后,还包括:若基于当前测试节点的测试结果确定当前测试节点的测试任务执行成功,确定当前测试节点是否存在后置依赖节点;在确定当前测试节点存在后置依赖节点的情况下,基于当前测试节点的测试结果生成所述后置依赖节点的测试用例;执行所述后置依赖节点的测试用例,并获取所述后置依赖节点的测试结果。
也就是说,若当前测试节点存在后置依赖节点,且当前测试节点的测试任务执行成功,可以获取当前测试节点的测试结果,基于当前测试节点的测试结果生成后置依赖节点的测试用例并执行,可以得到后置依赖节点的测试用例。
作为一种示例,可以将当前测试节点的测试结果与预设条件进行比对,若该测试结果满足预设条件,可以认为该当前测试节点的测试任务执行成功。
在另一些实施例中,获取目标测试任务后,可以生成多个测试用例,每个测试用例与一个测试节点对应。若基于当前测试节点的测试结果确定当前测试节点的测试任务执行成功,可以获取当前测试节点的测试结果;在确定当前测试节点存在后置依赖节点的情况下,可以基于当前测试节点的测试结果和该后置依赖节点的初始测试用例,生成所述后置依赖节点的测试用例;执行所述后置依赖节点的测试用例,并获取所述后置依赖节点的测试结果。
也就是说,若当前测试节点存在后置依赖节点,且当前测试节点的测试任务执行成功,可以获取当前测试节点的测试结果,基于当前测试节点的测试结果对后置依赖节点的初始测试用例进行更新,生成后置依赖节点的测试用例并执行,可以得到后置依赖节点的测试用例。
本说明书提供的软件测试方法,获取当前测试节点的至少两个前置依赖节点的测试结果,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,获取所述至少两个前置依赖节点的测试结果;基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;执行当前测试节点的测试用例,并获取当前测试节点的测试结果。上述方法中当前测试节点包括至少两个前置依赖节点,则可以实现多源头依赖任务的处理,即可以并行处理至少两个测试任务,提高了软件测试的效率。
下述结合附图4,以本说明书提供的软件测试方法在购票软件的应用为例,对所述软件测试方法进行进一步说明。其中,图4示出了本说明书一实施例提供的一种应用于购票软件的软件测试方法的处理流程图,具体包括以下步骤:
步骤402:获取针对购票软件的目标测试任务。
例如,假设目标测试任务是测试购票软件的购票成功率,若购票成功率较低,可以对软件的程序进行优化,以提高购票成功率。
步骤404:基于所述目标测试任务,生成多个初始测试用例,其中,所述多个初始测试用例之间存在依赖关系,且所述多个初始测试用例中包括所述至少两个前置依赖节点的初始测试用例。
继续上述举例,假设按照早高峰、晚高峰和平时时间段对一天的时间进行划分,获取每个时间段的购票成功率,且可以根据三个时间段的购票成功率确定当前的购票成功率。因此,可以生成四个初始测试用例,且该四个初始测试用例中在早高峰时间段执行的第一初始测试用例、在晚高峰时间段执行的第二初始测试用例和在平时时间段执行的第三初始测试用例均对第四初始测试用例存在影响。参见图2中的2B,测试节点7在早高峰时间段执行第一初始测试用例,测试节点8在晚高峰时间段执行第二初始测试用例、测试节点9在平时时间段执行第三初始测试用例,在第一初始测试用例、第二初始测试用例和第三初始测试用例均执行成功后,则测试节点10执行第四初始测试用例。将依赖关系表示在测试节点之间,则测试节点7、测试节点8和测试节点9的测试结果均影响测试节点10的测试结果。
步骤406:执行所述至少两个前置依赖节点的初始测试用例,并确定每个前置依赖节点的测试结果。
继续上述举例,以测试节点10为当前测试节点,可以在早高峰时间段如7 点-10点执行测试节点7的第一初始测试用例,得到第一测试结果为购票成功率和任务成功,在晚高峰时间段如17点-20点执行测试节点8的第二初始测试用例,得到第二测试结果为购票成功率和任务成功,在0点-7点、10点-17点以及20点-24点执行测试节点9的第三初始测试用例,得到第三测试结果为购票成功率和任务成功。
需要说明的是,步骤402-步骤406是对步骤102的下位描述,其具体实现可以参见步骤102的相关描述,本实施例在此不再赘述。
步骤408:基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务是否执行成功。
其中,至少两个前置依赖节点的测试结果包括业务数据。
继续上述举例,测试节点7、8、9的个测试结果中的业务状态均是任务成功,则可以认为该三个前置依赖节点的测试任务执行成功。
步骤410:若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的业务数据和当前测试节点的初始测试用例,生成当前测试节点的测试用例。
需要说明的是,步骤408-步骤410是对步骤104的下位描述,其具体实现可以参见步骤104的相关描述,本实施例在此不再赘述。
步骤412:执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
本说明书提供的软件测试方法,获取当前测试节点的至少两个前置依赖节点的测试结果,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;执行当前测试节点的测试用例,并获取当前测试节点的测试结果。上述方法中当前测试节点包括至少两个前置依赖节点,且每个前置依赖节点可以处理一个测试任务,则可以实现多源头依赖任务的处理,即可以并行处理至少两个测试任务,提高了软件测试的效率。
与上述方法实施例相对应,本说明书还提供了软件测试装置实施例,图5 示出了本说明书一实施例提供的一种软件测试装置的结构示意图。如图5所示,该装置包括:
第一获取模块502,被配置为获取当前测试节点的至少两个前置依赖节点的测试结果;
生成模块504,被配置为若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;
第二获取模块506,被配置为执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
可选地,所述第二获取模块506还被配置为:
若基于当前测试节点的测试结果确定当前测试节点的测试任务执行成功,确定当前测试节点是否存在后置依赖节点;
在确定当前测试节点存在后置依赖节点的情况下,基于当前测试节点的测试结果生成所述后置依赖节点的测试用例;
执行所述后置依赖节点的测试用例,并获取所述后置依赖节点的测试结果。
可选地,所述生成模块504被配置为:
所述至少两个前置依赖节点的测试结果中包括任务状态,若所述任务状态是成功,确定所述至少两个前置依赖节点的测试任务执行成功。
可选地,所述生成模块504被配置为:
所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的业务数据,生成当前测试节点的测试用例。
可选地,所述第一获取模块502还被配置为:
获取针对目标软件的目标测试任务;
基于所述目标测试任务,生成多个初始测试用例,其中,所述多个初始测试用例之间存在依赖关系,且所述多个初始测试用例中包括所述至少两个前置依赖节点的初始测试用例;
执行所述至少两个前置依赖节点的初始测试用例,并确定每个前置依赖节点的测试结果。
可选地,所述生成模块504被配置为:
所述至少两个前置依赖节点的测试结果包括业务数据,基于所述至少两个前置依赖节点的业务数据和当前测试节点的测试用例,生成当前测试节点的初始测试用例。
可选地,所述第一获取模块502还被配置为:
在确定当前测试节点在当前测试周期内未执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;
重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;
若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述测试任务执行成功的前置依赖节点的测试结果和所述新的测试结果,生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
可选地,所述第一获取模块502还被配置为:
在确定当前测试节点在当前测试周期内执行过测试用例的情况下,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点中存在至少一个前置依赖节点的测试任务执行失败,将测试任务执行失败的前置依赖节点确定为参考前置依赖节点;
重新执行所述参考前置依赖节点的测试用例,并获取所述参考前置依赖节点的新的测试结果;
若基于所述参考前置依赖节点的新的测试结果确定所述参考前置依赖节点的测试任务执行成功,基于所述新的测试结果,生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
本说明书提供的软件测试方法,获取当前测试节点的至少两个前置依赖节点的测试结果,若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;执行当前测试节点的测试用例,并获取当前测试节点的测试结果。上述方法中当前测试节点包括至少两个前置依赖节点,且每个前置依赖节点可以处理一个测试任务,则可以实现多源头依赖任务的处理,即可以并行处理至少两个测试任务,提高了软件测试的效率。
上述为本实施例的一种软件测试装置的示意性方案。需要说明的是,该软件测试装置的技术方案与上述的软件测试方法的技术方案属于同一构思,软件测试装置的技术方案未详细描述的细节内容,均可以参见上述软件测试方法的技术方案的描述。
图6示出了根据本说明书一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN) 无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令:
获取当前测试节点的至少两个前置依赖节点的测试结果;
若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的软件测试方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述软件测试方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
获取当前测试节点的至少两个前置依赖节点的测试结果;
若基于所述至少两个前置依赖节点的测试结果确定所述至少两个前置依赖节点的测试任务执行成功,基于所述至少两个前置依赖节点的测试结果生成当前测试节点的测试用例;
执行当前测试节点的测试用例,并获取当前测试节点的测试结果。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的软件测试方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述软件测试方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。