测试执行顺序控制方法、装置、设备及存储介质与流程

摘要: 本技术涉及软件测试自动化领域,尤其涉及一种测试执行顺序控制方法、装置、设备及存储介质。背景技术:1、在软件测试自动化领域,现有技术通常采用基于标记、注解或框架插...
测试执行顺序控制方法、装置、设备及存储介质与流程

本技术涉及软件测试自动化领域,尤其涉及一种测试执行顺序控制方法、装置、设备及存储介质。

背景技术:

1、在软件测试自动化领域,现有技术通常采用基于标记、注解或框架插件的方式管理测试用例之间的依赖关系,并据此控制执行顺序。

2、然而,该类方案在面对大规模测试场景下多层级、多关系的依赖拓扑时,易出现依赖配置复杂、复用扩展困难的问题;同时,由于缺乏对测试用例的分组抽象与层级化依赖拓扑管理,对复杂依赖场景下的执行顺序优化适应能力有限,导致测试执行效率低下。

3、因此,如何在复杂测试依赖场景下兼顾依赖管理效率与执行顺序优化,成为需要解决的技术问题。

技术实现思路

1、本技术实施例提供一种测试执行顺序控制方法、装置、设备及存储介质,以解决上述技术问题。该方案面向复杂测试依赖场景,对测试对象进行层次化组织与统一依赖建模,并在此基础上对测试执行过程进行顺序控制与调度管理,从而在保证依赖约束得到满足的前提下,兼顾大规模测试任务中的管理效率、执行效率以及执行稳定性。

2、第一方面,本技术实施例提供一种测试执行顺序控制方法,包括:

3、获取测试用例集合;

4、将测试用例集合按功能逻辑组织为多级嵌套的测试分组,多级嵌套的测试分组包括根分组、父分组、子分组及包含实际测试用例的叶子分组;

5、根据测试分组之间的有向依赖关系,构建分组依赖关系网络;

6、基于分组依赖关系网络,计算各测试分组的目标执行顺序;

7、根据目标执行顺序及分组依赖关系,对各测试分组执行串行并行混合调度,以执行叶子分组中的实际测试用例并输出测试结果。

8、在一个可能的实施例中,将测试用例集合按功能逻辑组织为多级嵌套的测试分组,包括:

9、按照功能逻辑将测试用例集合划分至不同的叶子分组;

10、基于各叶子分组的业务归属关系,将各叶子分组逐级聚合为子分组、父分组及根分组,形成多级嵌套的测试分组。

11、在一个可能的实施例中,根据测试分组之间的有向依赖关系,构建分组依赖关系网络,包括:

12、根据测试分组的业务逻辑关系,确定测试分组中的目标分组所依赖的前置分组,以得到测试分组之间的有向依赖关系;

13、基于有向依赖关系,构建分组依赖关系网络。

14、在一个可能的实施例中,基于分组依赖关系网络,计算各测试分组的目标执行顺序,包括:

15、基于分组依赖关系网络中各测试分组之间的有向依赖关系,对各测试分组进行排序,得到满足所有有向依赖关系的目标执行顺序。

16、在一个可能的实施例中,根据目标执行顺序及分组依赖关系,对各测试分组执行串行并行混合调度,包括:

17、基于目标执行顺序和分组依赖关系,确定每个测试分组的执行模式;

18、基于预设的状态聚合策略,确定每个测试分组的执行条件;

19、根据各测试分组的历史测试数据,确定优化调度策略;

20、基于目标执行顺序、各测试分组的执行模式、执行条件以及优化调度策略,生成测试执行计划;测试执行计划包括存在前置依赖且被后续测试分组依赖的串行测试分组集合,以及与同级测试分组之间不存在依赖关系的并行测试分组集合;

21、按照测试执行计划,对串行测试分组集合中的测试分组执行串行调度,对并行测试分组集合中的测试分组执行并行调度。

22、在一个可能的实施例中,基于预设的状态聚合策略,确定每个测试分组的执行条件,包括:

23、获取测试分组的前置依赖分组的执行状态;

24、基于状态聚合策略对前置依赖分组的执行状态,计算得到每个测试分组的执行条件。

25、在一个可能的实施例中,基于状态聚合策略对前置依赖分组的执行状态,计算得到每个测试分组的执行条件,包括:

26、在状态聚合策略为严格模式时,测试分组的全部前置依赖分组执行成功时,确定执行条件为满足;

27、在状态聚合策略为宽松模式时,测试分组的任一前置依赖分组执行成功时,确定执行条件为满足;

28、在状态聚合策略为多数表决模式时,测试分组的预设数量个前置依赖分组执行成功时,确定执行条件为满足;

29、在状态聚合策略为用户自定义模式时,基于用户预设规则,确定前置依赖分组的执行状态是否满足执行条件;

30、在执行条件不满足的情况下,跳过测试分组的执行。

31、在一个可能的实施例中,在基于依赖关系构建分组依赖关系网络之后,方法还包括:

32、对分组依赖关系网络进行全流程循环依赖检测;其中,全流程循环依赖检测至少包括配置阶段检测、解析阶段检测、收集阶段检测和执行阶段检测。

33、第二方面,本技术实施例提供一种测试执行顺序控制装置,装置包括:

34、获取模块,用于获取测试用例集合;

35、分组模块,用于将测试用例集合按功能逻辑组织为多级嵌套的测试分组,多级嵌套的测试分组包括根分组、父分组、子分组及包含实际测试用例的叶子分组;

36、构建模块,用于根据测试分组之间的有向依赖关系,构建分组依赖关系网络;

37、排序模块,用于基于分组依赖关系网络,计算各测试分组的目标执行顺序;

38、调度模块,用于根据目标执行顺序及分组依赖关系,对各测试分组执行串行并行混合调度,以执行叶子分组中的实际测试用例并输出测试结果。

39、在一种可能的实施方式中,分组模块具体用于:

40、按照功能逻辑将测试用例集合划分至不同的叶子分组;

41、基于各叶子分组的业务归属关系,将各叶子分组逐级聚合为子分组、父分组及根分组,形成多级嵌套的测试分组。

42、在一种可能的实施方式中,构建模块具体用于:

43、根据测试分组的业务逻辑关系,确定测试分组中的目标分组所依赖的前置分组,以得到测试分组之间的有向依赖关系;

44、基于有向依赖关系,构建分组依赖关系网络。

45、在一种可能的实施方式中,排序模块具体用于:

46、基于分组依赖关系网络中各测试分组之间的有向依赖关系,对各测试分组进行排序,得到满足所有有向依赖关系的目标执行顺序。

47、在一种可能的实施方式中,调度模块具体用于:

48、基于目标执行顺序和分组依赖关系,确定每个测试分组的执行模式;

49、基于预设的状态聚合策略,确定每个测试分组的执行条件;

50、根据各测试分组的历史测试数据,确定优化调度策略;

51、基于目标执行顺序、各测试分组的执行模式、执行条件以及优化调度策略,生成测试执行计划;该测试执行计划包括存在前置依赖且被后续测试分组依赖的串行测试分组集合,以及与同级测试分组之间不存在依赖关系的并行测试分组集合;

52、按照测试执行计划,对串行测试分组集合中的测试分组执行串行调度,对并行测试分组集合中的测试分组执行并行调度。

53、在一种可能的实施方式中,调度模块具体用于:

54、获取测试分组的前置依赖分组的执行状态;

55、基于状态聚合策略对前置依赖分组的执行状态,计算得到每个测试分组的执行条件。

56、在一种可能的实施方式中,调度模块具体用于:

57、在状态聚合策略为严格模式时,测试分组的全部前置依赖分组执行成功时,确定执行条件为满足;

58、在状态聚合策略为宽松模式时,测试分组的任一前置依赖分组执行成功时,确定执行条件为满足;

59、在状态聚合策略为多数表决模式时,测试分组的预设数量个前置依赖分组执行成功时,确定执行条件为满足;

60、在状态聚合策略为用户自定义模式时,基于用户预设规则,确定前置依赖分组的执行状态是否满足执行条件;

61、在执行条件不满足的情况下,跳过测试分组的执行。

62、在一种可能的实施方式中,装置还包括:

63、检测模块,用于在构建模块构建分组依赖关系网络之后,对分组依赖关系网络进行全流程循环依赖检测;其中,全流程循环依赖检测至少包括配置阶段检测、解析阶段检测、收集阶段检测和执行阶段检测。

64、第三方面,本技术实施例提供一种电子设备,包括:存储器,处理器;

65、存储器存储计算机执行指令;

66、处理器执行存储器存储的计算机执行指令,使得处理器执行如第一方面和/或第一方面各种可能的实施方式。

67、第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面和/或第一方面各种可能的实施方式的方法。

68、本技术实施例提供的测试执行顺序控制方法、装置、设备及存储介质,通过获取测试用例集合,并将测试用例集合按功能逻辑组织为多级嵌套的测试分组,结合测试分组之间的有向依赖关系构建分组依赖关系网络,能够以分组层级对复杂测试依赖进行统一表达和管理,降低依赖配置复杂度;通过基于分组依赖关系网络计算各测试分组的目标执行顺序,并根据目标执行顺序及分组依赖关系对各测试分组执行串行并行混合调度,能够在满足依赖约束的同时提升测试执行的有序性与资源利用效率,进而提高大规模测试场景下的执行效率、结果稳定性以及扩展复用能力。