时序测试用例生成方法、装置、设备、存储介质与流程

    技术2025-11-07  3


    本技术涉及计算机,特别是涉及一种时序测试用例生成方法、装置、计算机设备、存储介质和计算机程序产品。


    背景技术:

    1、分布式共识程序是由一组通过网络进行通信、为了完成共同的任务而协调工作的分布式计算机节点执行的共识程序。分布式共识程序具有异步、并发的特性,分布式共识程序的时序测试,对于检测分布式共识程序的并发性能有非常重要的意义。

    2、随着分布式节点数量的增长,时序测试用例数量往往呈现爆炸性增长,这样的执行时序测试起来耗时大,成本高,目前,对于时序测试用例的筛选,往往依赖测试或者开发人员的经验,没有明确的方向性,只是随机抽取时序测试用例,不具科学性和可复制性,致使时序测试的完备性较差,无法保证对分布式共识程序进行时序测试的测试效果。


    技术实现思路

    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、上述时序测试用例生成方法、装置、计算机设备、存储介质和计算机程序产品,通过提取分布式共识程序的时序图,能够明确且直观反映出各执行事件的事件发生的时序以及各分布式节点间的消息交互情况,根据时序图中各所执行事件的时间先后顺序,确定各所执行事件的向量时钟,有利于后续根据各所执行事件的向量时钟,实时识别出任意两个事件是否存在先后顺序。根据各所执行事件的向量时钟,能够从各节点间事件中准确确定分布式节点间的并发事件。这样,根据分布式节点间的并发事件,首先生成关于分布式共识程序的初始时序测试用例,初始时序测试用例中并发事件具有初始时间先后顺序。然后,通过调整初始时序测试用例中并发事件的时间先后顺序,能够实时得到关于分布式共识程序的变更时序测试用例;其中,每次调整使并发事件中多组事件的时间先后顺序发生改变;初始时序测试用例和各变更时序测试用例,用于对分布式共识程序中的并发事件进行时序测试。这样,在每次调整过程中,通过同时翻转多组事件的时间先后顺序来生成该次调整对应的变更时序测试用例,不仅有效优化了该变更时序测试用例内各事件的执行次序,还提升了时序测试用例覆盖各种场景的完备性,确保了后续时序测试过程中能够及时发现分布式共识程序的问题,提升了测试效果。


    技术特征:

    1.一种时序测试用例生成方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述提取分布式共识程序的时序图,包括:

    3.根据权利要求1所述的方法,其特征在于,所述根据所述时序图中各所述所执行事件的时间先后顺序,确定各所述所执行事件的向量时钟,包括:

    4.根据权利要求3所述的方法,其特征在于,所述在通过一个分布式节点处理到一个所执行事件时,根据所述一个所执行事件的处理顺序,生成所述一个所执行事件的向量时钟之前,所述方法还包括:

    5.根据权利要求4所述的方法,其特征在于,所述根据所述一个所执行事件的处理顺序,更新所述初始向量时钟,得到所述一个所执行事件的向量时钟,包括:

    6.根据权利要求5所述的方法,其特征在于,所述根据所述节点内处理顺序与节点间处理顺序,更新所述初始向量时钟,得到所述一个所执行事件的向量时钟,包括:

    7.根据权利要求1所述的方法,其特征在于,所述根据各所述所执行事件的向量时钟,从各所述节点间事件中确定所述分布式节点间的并发事件,包括:

    8.根据权利要求7所述的方法,其特征在于,所述将每两个所执行事件各自对应的向量时钟进行比较,根据比较结果确定所述分布式节点间的并发事件,包括:

    9.根据权利要求1所述的方法,其特征在于,所述根据所述分布式节点间的并发事件,生成关于所述分布式共识程序的初始时序测试用例,包括:

    10.根据权利要求1所述的方法,其特征在于,所述调整所述初始时序测试用例中所述并发事件的时间先后顺序,得到关于所述分布式共识程序的变更时序测试用例,包括:

    11.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    12.一种时序测试用例生成装置,其特征在于,所述装置包括:

    13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。

    14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。

    15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。


    技术总结
    本申请涉及一种时序测试用例生成方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:提取分布式共识程序的时序图;根据时序图中各所执行事件的时间先后顺序,确定各所执行事件的向量时钟,根据各所执行事件的向量时钟,从各节点间事件中确定分布式节点间的并发事件;根据分布式节点间的并发事件,生成关于分布式共识程序的初始时序测试用例;调整初始时序测试用例中并发事件的时间先后顺序,得到关于分布式共识程序的变更时序测试用例;其中,每次调整使并发事件中多组事件的时间先后顺序发生改变;初始时序测试用例和各变更时序测试用例,用于对分布式共识程序中的并发事件进行时序测试,提高了时序测试效果。

    技术研发人员:陈金龙
    受保护的技术使用者:腾讯科技(深圳)有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-36319.html

    最新回复(0)