CN116932374A - 分布式系统的时序用例收敛方法、装置、设备及存储介质 - Google Patents
分布式系统的时序用例收敛方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116932374A CN116932374A CN202210365163.4A CN202210365163A CN116932374A CN 116932374 A CN116932374 A CN 116932374A CN 202210365163 A CN202210365163 A CN 202210365163A CN 116932374 A CN116932374 A CN 116932374A
- Authority
- CN
- China
- Prior art keywords
- event
- time sequence
- case
- convergence
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 145
- 238000004891 communication Methods 0.000 claims abstract description 192
- 230000005540 biological transmission Effects 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000013138 pruning Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 abstract description 33
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000004904 shortening Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 57
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 244000141353 Prunus domestica Species 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种分布式系统的时序用例收敛方法、装置、设备及存储介质,属于互联网与计算机领域。所述方法包括:获取分布式系统的全量时序用例集;其中,全量时序用例集包括多个时序用例,时序用例用于模拟分布式系统中不同节点执行的事件之间的发生顺序;对于全量时序用例集中的目标时序用例,根据目标时序用例的方向信息,确定目标时序用例的收敛类型;其中,目标时序用例的方向信息用于指示目标时序用例中的至少一个事件分别对应的通信方向;根据目标时序用例的收敛类型,对全量时序用例集中的时序用例进行删减,得到收敛时序用例集。通过上述方法,得到的收敛时序用例集具有可重现性,同时有助于缩短对分布式系统进行测试的耗时。
Description
技术领域
本申请涉及互联网和计算机技术领域,特别涉及一种分布式系统的时序用例收敛方法、装置、设备及存储介质。
背景技术
在分布式系统投入使用之前,需要通过全量时序用例集对分布式系统进行测试,在全量时序用例集中存在较多时序用例的情况下,需要对全量时序用例集进行收敛,以便提高测试速度。
相关技术中,在生成全量时序用例集之后,需要通过测试人员根据经验,对全量时序用例集中删除掉部分时序用例,得到收敛时序用例集。在分布式系统的测试过程中,使用收敛时序用例集进行时序测试。
然而,通过这种方法对全量时序用例集进行收敛,得到的收敛时序用例集的重现性较差。
发明内容
本申请提供了一种分布式系统的时序用例收敛方法、装置、设备及存储介质。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种分布式系统的时序用例收敛方法,所述方法包括:
获取所述分布式系统的全量时序用例集;其中,所述全量时序用例集包括多个时序用例,所述时序用例用于模拟所述分布式系统中不同节点执行的事件之间的发生顺序;
对于所述全量时序用例集中的目标时序用例,根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型;其中,所述目标时序用例的方向信息用于指示所述目标时序用例中的至少一个事件分别对应的通信方向;
根据所述目标时序用例的收敛类型,对所述全量时序用例集中的时序用例进行删减,得到收敛时序用例集。
根据本申请实施例的一个方面,提供了一种分布式系统的时序用例收敛装置,所述装置包括:
用例获取模块,用于获取所述分布式系统的全量时序用例集;其中,所述全量时序用例集包括多个时序用例,所述时序用例用于模拟所述分布式系统中不同节点执行的事件之间的发生顺序;
类型确定模块,用于对于所述全量时序用例集中的目标时序用例,根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型;其中,所述目标时序用例的方向信息用于指示所述目标时序用例中的至少一个事件分别对应的通信方向;
用例删减模块,用于根据所述目标时序用例的收敛类型,对所述全量时序用例集中的时序用例进行删减,得到收敛时序用例集。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述分布式系统的时序用例收敛方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述分布式系统的时序用例收敛方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令以实现上述分布式系统的时序用例收敛方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
根据目标时序用例的方向信息对全量时序用例集进行收敛,使得得到的收敛时序用例集具有可重现性,也即在时序用例的方向信息不变的情况下,通过方向信息对全量时序用例集进行多次收敛后,得到的收敛时序用例集相同。在无需存储收敛时序用例集的情况下,能够使用相同的收敛时序用例集对分布式系统进行多次测试,有助于在对分布式系统进行测试的过程中控制单一变量,以便找出分布式系统的问题来源。
其次,由于目标时序用例的方向信息至少与目标时序中的发送事件与接收事件有关,因此通过目标时序用例的方向信息对全量时序用例集中的时序用例进行收敛,能够有效减少冗余的时序用例的数量,避免因为全量时序用例集中时序用例数量较多导致用例膨胀,从而减慢对分布式系统的测试速度。同时,对于本方法中被删减的时序用例,在收敛时序用例集中能够找到与其相似的时序用例,因此,使用方向信息对全量时序用例集进行删减,不会对收敛时序用例的完备性产生影响。
附图说明
图1是本申请一个示例性实施例提供的分布式系统的构建过程的示意图;
图2是本申请一个示例性实施例提供的方案实施环境的示意图;
图3是本申请一个示例性实施例提供的分布式系统的时序用例收敛方法的流程图;
图4是本申请一个示例性实施例提供的一种满足路径镜像条件1的通信方向示意图;
图5是本申请一个示例性实施例提供的一种满足路径镜像条件2的通信方向示意图;
图6是本申请一个示例性实施例提供的目标时序用例的收敛类型的确定方法的示意图;
图7是本申请一个示例性实施例提供的具有独立关系的通信方向的示意图;
图8是本申请一个示例性实施例提供的分布式系统的时序用例收敛装置的框图;
图9是本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请中涉及到的名词进行介绍说明。
分布式系统是指是一组独立的计算机以网络链接组成的服务系统,对于分布式系统提供服务的用户,用户感知到的分布式系统是一个统一的整体。
分布式系统具有分布式、自治式、并行性和全局性等特点,其中:
分布式是指分布式由多台计算机(称为节点)组成,在地域上是独立分散的,可以分散在一个单位,一个城市,一个国家,或是全球范围内。整个系统的统一功能是分散在多个节点上实现的,因而分布式系统具有数据处理的分布式特性。分布式系统的节点从不同的抽象层次上来说,组成分布式系统的每一个物理机,虚拟机,镜像,进程都均可作为一个节点。
自治性是指分布式系统各个节点具有独立的处理器和内存,具备独立的处理数据能力。节点之间的关系分为对等关系和主从关系;其中,对等关系是指各个节点可以自治的进行任务处理,还可以通过网络传输信息,协同完成任务处理。主从关系是指至少存在两个节点之间存在主从关系。在一些实施例中,处于主从关系的节点包括:主(master)节点、辅(slave)节点。
并行性是指一个完整的任务可以按预定的规则划分成多个独立的子任务,并由不同的节分别点支持这些子任务。
全局性是指分布式系统必须存在一个单一的,全局的通信机制,使得任何一个节点中的进程都能和其他节点中的进程进行通信。通信的方式包括但不限于本地通信、远程通信。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block Chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营管理等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营管理模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、管理网络情况、管理节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
通常情况下,分布式系统建立在网络之上,由多个独立操作系统组成,所以分布式系统对比独立部署并运行于单一操作系统之上的软件系统来说存在要解决通信和共识等问题。在将分布式系统投入使用之前,需要对分布式系统进行时序测试,通过时序测试的结果对分布式系统进行调整,以便保证分布式系统中各个节点能够达成共识。
如图1所示,其示出了分布式系统的构建过程的示意图。
分布式系统的构建过程大致可以分为以下4个过程,具体为:分布式系统提测、时序测试、发布、调整异常。
其中,在进行分布式系统的提测过程中,需要对分布式产品(如区块链产品)进行开发,在开发完成后,将分布式产品提测搭配REQ(Request Network,请求网络)。在REQ平台中对分布式产品进行分发,在分布式产品通过审核之后完成进行分布式系统的提测过程,开始进入时序测试过程。在时序测试过程中,由技术人员根据不同的使用场景构建分布式系统的时序图。计算机设备根据时序图进行向量时钟运算,得到向量时钟图。此后,基于向量时钟图,计算机设备确定时序图中的事件之间的并发关系,并根据并发关系生成全量时序用例集。由于生成的全量时序用例集中的时序用例的数量较多,因此需要收敛全量时序用例集,减少时序场景以缩短对分布式系统进行测试所需要的时间。随后分布式系统根据收敛后的全量时序用例集进行测试。在发布过程中,需要根据分布式系统生成的测试结果发布评审,并生成测试报告。随后上线发布分布式系统。若测试报告中存在问题,则开发人员可以根据测试报告快速定位问题。本方法用于在进行时序测试的过程中对全量时序用例集进行收敛,减少需要测试的时序用例的数量。
图2是本申请一个示例性实施例提供的方案实施环境的示意图。该方案实施环境可以包括:计算机设备100和分布式系统200。
计算机设备100可以是诸如PC(Personal Computer,个人计算机)、平板电脑、手机、可穿戴设备、智能家电、车载终端、飞行器等电子设备。计算机设备100至少具有接收功能和运算过程。通过计算机设备100的接收功能获取输入的时序图,通过计算机设备100的计算功能对基于时序图生成全量时序用例集,并从全量时序用例集中删除部分时序用例,得到收敛时序用例集。
分布式系统200可以包括多个节点201。节点201之间存在数据连接,以便任意两个节点201之间可以进行数据传输,接收来自其他节点之间的传输的数据,或者向其他节点发送数据。
以分布式系统200为区块链系统为例,区块链系统可以包括多个节点,节点可以是接入网络中的任意形式的计算设备,如服务器、用户终端。节点之间形成组成的点对点P2P(Peer To Peer,点对点)网络,P2P协议是一个运行在TCP(Transmission ControlProtocol,传输控制协议)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
区块链系统中各节点具备的功能包括但不限于以下之一:
路由,节点具有的基本功能,用于支持节点之间的通信。
应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
图3是本申请一个示例性实施例提供的分布式系统的时序用例收敛方法的流程图。示例性地,该方法的执行主体可以是图1所示的方案实施环境中的计算机设备100。如图3所示,该方法可以包括如下几个步骤(310~330)中的至少一个步骤:
步骤310,获取分布式系统的全量时序用例集;其中,全量时序用例集包括多个时序用例,时序用例用于模拟分布式系统中不同节点执行的事件之间的发生顺序。
在一些实施例中,事件是指在分布式系统的不同节点中进行的操作。事件通过节点中的进程(Process)执行。进程可以理解成为节点中运行的计算机程序,一个节点可以运行有一个进程,在这种情况下,可以使用节点代指对应的进程,例如,节点1对应进程1,节点2对应进程2,在进程1中发生的事件可以简单记为的在节点1中发生的事件。一个节点可以运行有多个进程,例如,节点10对应进程11和进程12。分布式系统中包括多个进程。
按照事件与进程间的关系,可以将事件分为进程内事件、发送消息事件和接收消息事件。其中进程内事件是指在一个进程中完成,无需使用其他进程中的数据的事件;发送消息事件是指某个进程中向其他进程之间进行数据传输的事件;接收事件是指某个进程中接收其他进程的发送消息事件传输的数据的事件。
事件可以改变分布式系统中对象的状态,例如输入事件可以改变分布式系统某个变量的取值,登陆事件可以改变用户在分布式系统中的权限等。对于不同的分布式系统,事件的功能可能不完全相同。例如,在数据共享的分布式系统中,包括存储事件,读取事件等。
在一些实施例中,时序用例中包括一个以上事件,并且时序用例能够表征上述至少一个事件的发生顺序。例如,时序用例1的表示形式为(a,b),其中,a,b表示两个不同的事件,(a,b)表示在时序用例1中,事件a优先于事件b发生。又例如,时序用例2的表示形式为(b,a),其中,事件b优先于事件a发生。在一些实施例中,时序用例称为时序测试用例,也即用于为分布式系统的测试过程提供具有先后顺序的事件组合。
在一些实施例中,时序用例中包括至少存在两个事件互为并发关系的事件。并发关系的事件(简称为并发事件)是指事件之间不存在确定的先后顺序。由于分布式系统中包括多个节点,在一些情况下,不同节点上发生的事件之间没有确定的时序关系。例如,对于发生在不同节点中的进程内事件,若在该两个进程内事件发生之前,其所在节点之间不存在先后顺序,则该两个进程内事件为并发事件。例如,在一个节点中运行一个进程的情况下,事件a为节点1中的进程内事件,且事件a在节点1中第一个发生,事件b为节点2中的第一个进程内事件,且事件b在节点2中第一个发生,则事件a和事件b互为并发事件。又例如,事件c为节点3中的进程内事件,且事件c在节点3中第一个发生,事件d为节点2中的发送消息事件,且事件d在节点2中第二个发生(第一个发生的为进程内事件),则事件c和事件d互为并发事件。
而同一个进程中的事件的发生顺序式确定的,时序图中进程的向量时钟越小的事件,在该进程中发生的时刻越早。例如,某个进程中包括事件1,事件2,其对应的该进程的向量时钟分别为2,3,则在该进程中,事件1先发生,事件2后发生。此外对于接收消息事件,一定发生在其对应的发送消息事件之后。
在一些实施例中,在某个时序用例中存在多个事件的情况下,该时序用例中的事件两两互为独立事件。例如,某个时序用例中包括3个事件分别记为:x、y和z,则x与y为并发事件、x与z为并发事件并且,y与在位并发事件。
时序用例能够为分布式系统提供时序场景,不同的时序场景中发生的具体事件,以及各个事件之间的发生顺序不完全不同。
在一些实施例中,全量时序用例集中包括多个时序用例,并且不存在相同的时序用例。在一些情况下,全量时序用例集中的时序用例是根据分布式系统需要执行的多个事件之间的并发关系确定的,例如通过对上述多个事件与其对应的至少一个并发事件进行全排列得到多个时序用例,全量时序用例集中包括该多个时序用例。因此,在并发是分布系统具有多个节点,且节点之中发生的事件数量较多的情况下,全量时序用例集中包括的时序用例的数量较多,直接使用全量时序用例集对分布式系统进行测试需要花费大量的时间。
计算机设备获取用于对分布式系统进行测试的全量时序用例。在一些实施例中,计算机设备获取外部输入的时序用例,例如技术人员将全量时序用例集输入计算机设备中。又例如计算机设备通过获取输入的时序图,根据时序图自动生成全量时序用例集。
步骤320,对于全量时序用例集中的目标时序用例,根据目标时序用例的方向信息,确定目标时序用例的收敛类型;其中,目标时序用例的方向信息用于指示目标时序用例中的至少一个事件分别对应的通信方向。
目标时序用例是指全量时序用例集中的任意一个时序用例。在一些实施例中,计算机设备将全量时序用例集中的各个时序用例分别作为目标时序用例,并分别确定各个目标时序用例的收敛类型。例如,全量时序用例集中包括10个时序用例,计算机设备将上述10个时序用例依次作为目标时序用例,确定其分别对应的收敛类型。
在另一些实施例中,计算机设备从全量时序用例集中挑选部分时序用例,并分别将这些时序用例作为目标时序用例,确定其对应的收敛类型。在一些实施例种,计算机设备在全量时序用例集挑选含有特定种类事件的时序用例作为目标时序用例。
可选地,特定种类事件是指与节点(或进程)之间进行数据传输有关的事件。例如,计算机设备将全量时序用例集中包含接收消息事件的时序用例作为目标式时序用例;又例如,计算机设备将全量时序用例集中包含发送消息事件的时序用例作为目标式时序用例。计算机设备选择目标时序用例的方法与对全量时序用例集进行收敛的具体方法和全量时序用例集的收敛时机等实际情况有关,具体请参考下文实施例。
通过在全量时序用例确定部分目标时序用例,并确定这些时序用例的收敛类型,有助于减轻计算机设备的处理压力,提高对全量时序用例集进行收敛的速度,从而提高测试分布式系统需要花费的总时长,有助于快速定位分布式系统中的问题。
在一些实施例中,目标时序用例的方向信息用于指示目标时序用例中包含的至少一个与进行数据传输有关的事件分别对应的通信方向。可选地,进行数据传输有关的事件包括:发送消息事件、接收消息事件等。对于进程内事件,由于进程内的事件不涉及与其他进程或节点中的事件进行数据传输过程,因此通常情况下,进程内事件不具有通信方向,或者进程内事件的通信方向为空。
在一些实施例中,目标时序用例的方向信息由目标时序用例中至少一个事件的通信方向组成。目标时序用例的方向信息可以在生成目标时序用例之后,通过获取各个事件的通信方向生成。目标时序用例的方向信息也可以直接存储在各个事件的通信方向中。
事件对应的通信方向是指数据从发送消息事件所在的节点传输到接收消息事件对应的节点。例如,事件m属于发送消息事件,位于节点1上;事件n属于事件m对应的接收消息事件,位于节点2上,那么,事件m的通信方向包括:有关表示“节点1的事件m→节点2中的事件n”的信息(如[1,m];[2,n]等)。同时事件n的通信方向也可以包括有关表示“节点1的事件m→节点2中的事件n”的信息。又例如,对于上述例子中的事件m,还存在节点5中的事件p为事件m对应的接收消息事件,则事件1的通信方向中还可以包括:表示“节点1的事件m→节点5中的事件p”的信息。此时事件n与事件p接收的数据类型相同,事件n与事件p属于对等事件。
在一些实施例中,某一事件的通信方向是指该事件与至少一个位于其他节点中的事件进行数据传输的通信方向。
在一些实施例中,目标时序用例的收敛类型用于指示是否可以从全量时序用例集中对目标时序用例进行删减,或者指示对全量时序用例集中与目标时序用例有关的其他时序用例进行删减。
目标时序用例的收敛类型可以包括:可收敛、不可收敛两种。在目标时序用例的收敛类型为可收敛的情况下,计算机设备可以将目标时序用例,或者全量时序用例集中与目标时序用例有关的其他时序用例进行删除。目标时序用例的收敛类型为不可收敛的情况下,计算机设备可以不将目标时序用例从全量时序用例集中进行删除。
目标时序用例的收敛类型可以通过收敛标识表示。例如计算机设备使用1比特的信息表示目标时序用例的收敛类型,例如“1”表示目标时序用例的收敛类型为可收敛,“0”表示目标时序用例的收敛类型为不可收敛。
步骤330,根据目标时序用例的收敛类型,对全量时序用例集中的时序用例进行删减,得到收敛时序用例集。
在一些实施例中,计算机设备在确定目标时序用例的收敛类型之后,可以将收敛标识添加到目标时序用例中,例如添加在目标时序用例之前。例如,目标时序用例10可以表示为(a,b,c),在确定目标时序用例10的收敛类型为可收敛的情况下,可以将目标时序用例10记为(1,a,b,c)。通过这种方法,计算机设备可以在确定所有的目标时序用例的收敛信息之后,再对全量时序用例集进行收敛。
通过存储目标时序用例中的收敛类型,使得计算机设备能够在确定全部目标时序用例的收敛类型之后,对一次性对全量时序用例集中的时序用例删减,避免对某个时序用例进行多次删减,提高计算机设备对全量时序用例集进行收敛的效率。
在另一些实施例中,无需对目标时序用例的收敛类型进行存储,在计算机设备确定目标时序用例的收敛类型之后,通过该目标时序用例的收敛类型直接对全量时序用例集中的时序用例进行删减。
计算机设备根据目标时序用例的收敛类型,在全量时序用例集中确定待删除的时序用例,并将待删除的时序用例移除全量时序用例集。有关该步骤的具体过程,请参考下文实施例。
综上所述,本申请提供的技术方案,根据目标时序用例的方向信息对全量时序用例集进行收敛,使得对全量时序用例进行收敛的方法具有可重现性,也即在时序用例的方向信息不变的情况下,通过方向信息对全量时序用例分别进行多次收敛后,得到的多个收敛时序用例集具有重复性。因此,在无需存储收敛时序用例集的情况下,能够使用相同的收敛时序用例集对分布式系统进行多次测试,有助于在对分布式系统进行测试的过程中控制单一变量,以便找出分布式系统的问题来源。
其次,由于目标时序用例的方向信息至少与目标时序用例中的发送消息事件或接收消息事件有关,多个事件的通信方向之间可以存在对称关系,等价关系等关系,因此通过目标时序用例的方向信息能够对全量时序用例集中的时序用例进行收敛,有效减少冗余的时序用例的数量,避免因为全量时序用例集中时序用例数量较多导致用例膨胀,从而减慢对分布式系统的测试速度。同时,对于全集时序用例中被删减的时序用例,在收敛时序用例集中能够找到与其作用效果相似的时序用例,因此,使用方向信息对全量时序用例集进行删减,不会对收敛时序用例的完备性产生影响,有助于为分布式系统提供多样的时序场景,以便对分布式系统进行全面的测试。
下面通过几个实施例对删减全量时序用例集中的时序用例集的方法进行介绍说明。
示例1:通过方向信息确定路径关系,根据路径关系确定目标时序用例的收敛类型,并对全量时序用例集中的时序用例进行删除的得到收敛时序用例。
在一些实施例中,计算机设备根据目标时序用例的方向信息,确定目标时序用例的收敛类型,包括:从全量时序用例集中获取除目标时序用例以外的任意一个时序用例,作为比较时序用例:对于目标时序用例中的第一事件,在比较时序用例中确定第二事件;其中,第一事件与在节点之间进行数据传输有关,第二事件不同于第一事件;根据目标时序用例的方向信息,确定第一事件的通信方向;其中,第一事件的通信方向用于表征与第一事件相关的数据传输方向;根据比较时序用例的方向信息,确定第二事件的通信方向;其中,第二事件的通信方向用于表征与第二事件相关的数据传输方向;根据第一事件的通信方向和第二事件的通信方向,确定目标时序用例的收敛类型。
在计算机设备获取到全量时序用例集之后,在全量时序用例集中确定一个目标时序用例,并通过全量时序用例集中的至少一个其他时序用例,确定目标时序用例的收敛类型。
在一些实施例中,计算机设备通过目标时序用例与全量时序用例集中的全部时序用例确定目标时序用例的类型。例如,全量时序用例集中包括10个时序用例,则在计算机设备确定目标时序用例之后,分别将目标时序用例与剩余的9个时序用例进行比较,也即在确定目标时序用例之后,计算机设备在全量时序用例集中分别选择剩余的时序用例,与目标时序用例进行比较。
通过多个时序用例分别与目标时序用例进行比较,使得确定的目标时序用例的收敛类型比较准确,有助于根据目标时序用例的收敛类型删减全量时序用例集中所有冗余的时序用例,提高收敛时序用例集的精简度,降低了对分布式系统进行测试的时间消耗。
在一些实施例中,计算机设备通过目标时序用例与全量时序用例集中的部分时序用例确定目标时序用例的类型。例如,全量时序用例集中包括400个时序用例,计算机设备从全量时序用例集中选择200个时序用例分别作为比较时序用例,与目标时序用例进行比较确定目标时序用例的类型。通过上述方法能够在时序用例的数量较多的情况下,加快目标时序用例的类型信息的确定速度,缩短得到收敛时序用例所需的时间。
在一些实施例中,比较时序用例中的事件总数与目标时序用例中的事件总数相同。例如,在目标时序用例中存在20个事件的情况下,比较时序用例可以是全量时序用例集中包含的事件总数为20的任意一个时序用例。通过增加比较时序用例的限制,减少了可以作为比较时序用例的时序用例数量,使得计算机设备基于目标时序用例和比较时序用例确定目标时序用例的收敛类型的过程,需要进行的运算量更少,有助于减少计算机设备的压力。
在一些实施例中,第一事件是指与数据传输有关的事件,例如,发送消息事件、接收消息事件等。
计算机设备从目标时序用例中确定与数据传输有关事件作为第一事件。在一些实施例中,计算机设备将目标时序用例中与数据传输有关的全部事件分别作为第一事件。在另一些实施例中,计算机设备将目标时序用例中与数据传输有关的部分事件作为第一事件,如将消息发送事件作为第一事件。例如,目标时序用例A(a,h,e,j),其中,事件a、事件e、事件h和事件j为发生在不同进程中的事件,且上述4个事件之间分别互为并发事件,事件a、事件h为发送消息事件,事件e为进程内事件,事件j为接收消息事件,则计算机设备可以分别将事件a、事件h、事件j作为第一事件,也可以在事件a、事件h、事件j中任选1个或2个事件作为第一事件。
在一些实施例中,计算机设备通过目标时序用例的方向信息,确定第一事件的通信方向。例如,目标时序用例的方向信息中包含至少一个事件的通信方向。
在一些实施例中,计算机设备根据目标时序用例的方向信息,确定第一事件的通信方向。根据上文中的实施例,在目标时序用例方向信息以事件的通信方向承载的情况下,也即可以直接获取第一事件的通信方向而无需确定目标时序用例的方向信息得到第一事件的通信方向。
本方法对“确定第一事件的通信方向”与“确定比较时序用例”的发生顺序不进行限定。例如,计算机设备可以先确定第一事件的通信方向,再确定比较时序用例;计算机设备可以先确定比较时序用例,再确定第一事件的通信方向;或者计算机设备同时执行上述两个过程。
在确定比较时序用例之后,计算机设备从比较时序用例中确定第二事件。
在一些实施例中,计算机设备对于目标时序用例中的第一事件,在比较时序用例中确定第二事件,包括:在比较时序用例中获取任意一个候选事件;在候选事件区别于目标时序用例中的事件的情况下,将候选事件确定为第二事件。
在一些实施例中,第二事件是指在比较时序用例中,与目标时序用例中的所有事件都不相同的事件。例如,目标时序用例X为(a,b),比较时序用例Y为(c,b),在事件a作为第一事件的情况下,由于比较时序用例Y中的事件b也存在于目标时序用例X中,因此不能将事件b作为第二事件,由于事件c只在比较时序用例Y中出现,没有在目标时序用例X中出现,因此可以将事件c作为第二事件。
在一些实施例中,计算机设备将比较时序用例中与目标时序用例中的事件不同,并且与数据传输有关的事件作为第二事件。可选地,第一事件的数据传输方向与第二事件的数据传输方向相同。例如,在第一事件为发送消息事件的情况下,计算机设备将比较时序用例中属于发送消息事件的任意一个事件确定为第二事件。又例如,在第一事件为接收消息事件的情况下,计算机设备将比较时序用例中属于接收消息事件的任意一个事件确定为第二事件。
在一些实施例中,计算机设备对于目标时序用例中的第一事件,在比较时序用例中确定第二事件,包括确定第一事件的节点,对于比较时序用例中的任意一个候选事件,在候选事件的节点与第一事件的节点不同的情况下,将候选事件作为第二事件。
第一事件的节点事件第一事件的发生节点,第二事件的节点是指第二时间点的发生节点。在时序图中第一事件的节点是指第一事件的事件表示所在的进程标识线对应的节点。
通过上述方法,限制了比较时序用例中可以作为第二事件的事件数量,在根据第一事件的通信方向与第二事件的通信方向确定第一事件的收敛过程中,需要与第一事件的通信方向进行比对的第二时间的通信方向较少,有助于简化第一事件的收敛类型的确定流程。
在一些实施例中,在计算机设备确定第二事件之后,对第二事件的通信方向进行确定。第二事件的通信方向的确定方法与第一事件的通信方向的确定方法相似,具体请参考上文实施例。
在一些实施例中,第一事件具有多个通信方向,第一事件的通信方向可以是指多个通信方向中的任意一个通信方向。同理,第二事件可以具有多个通信方向。在一些实施例中,计算机设备将第一事件的各个通信方向与第二事件的各个通信方向进行比较,若存在至少一个第一事件的通信方向和第二事件的方向满足路径镜像条件,则将目标时序用例的收敛类型确定为可收敛。
在一些实施例中,计算机设备根据第一事件的通信方向和第二事件的通信方向,确定目标时序用例的收敛类型,包括:在第一事件的通信方向与第二事件的通信方向满足路径镜像条件的情况下,将目标时序用例的收敛类型确定为可收敛;其中,路径镜像条件与第一事件的节点和第二事件的节点有关。
在一些实施例中,路径镜像条件包括:在第一事件的通信方向和第二事件的通信方向与相同事件相关的情况下,第一事件的类型信息与第二事件的类型信息相同,且第一事件的节点与第二事件的节点为对等关系;其中,第一事件的类型信息与第一事件对应的传输数据类型有关;或者,在第一事件的通信方向和第二事件的通信方向不与相同事件相关的情况下,第一事件的类型信息与第二事件的类型信息相同,第一事件的节点与第二事件的节点为对等关系,且第一事件的通信方向对应的第一相关事件的类型信息与第二事件的通信方向对应的第二相关事件的类型信息相同;其中,对等关系是指第一事件的节点与第二事件的节点运行有相同功能的程序。
计算机设备在确定第一事件的通信方向和第二事件的通信方向之后,对第一事件的通信方向和第二事件的通信方向进行比较,在第一事件的通信方向与第二事件的通信方向满足路径镜像条件的情况下,将目标时序用例的收敛类型确定为可收敛。在第一事件的通信方向与第二事件的通信方向不满足路径镜像条件的情况下,将目标时序用例的通信类型确定程序不可收敛。
在一些实施例中,第一事件的节点与第二事件的节点处于对等关系是指第一事件的节点和第二事件的节点运行有相同的程序,也即第一事件和第二事件为相同程序中的发生事件。
在一些实施例中,第一事件的类型信息与第一事件对应的传输数据类型有关,第二事件的类型信息与第二事件对应的传输数据类型有关。在一些实施例中,以第一事件为发送消息事件为例,第一事件的传输类型是指第一事件发送的数据的类型。其中,第一事件发送的数据类型可以是投票结果类数据、计算数据等。
在一些实施例中,第一事件的类型信息与第二事件的类型信息相同是指第一事件传输数据的类型与第二事件传输数据的类型相同。在一些实施例中,第一事件的类型信息与第二事件的类型信息相同是指第一事件与第二事件传输相同的数据。例如,在第一事件、第二事件均为消息接收事件的情况下,第一事件接收的数据是数据1,第二事件接收的数据也是数据1。
在一些实施例中,对于路径镜像条件1:第一事件的类型信息与第二事件的类型信息相同,且第一事件的节点与第二事件的节点为对等关系的通信方向的情况,第一事件的通信方向与第二事件的通信方向中包括同一个相关事件。例如,第一事件、第二事件均为接收消息事件,第一事件、第二事件对应的发送消息事件均为发送消息事件:事件k。
在另一些实施例中,对于路径镜像条件2:第一事件的类型信息与第二事件的类型信息相同、第一事件的节点与第二事件的节点为对等关系,且第一事件的通信方向对应的第一相关事件的类型信息与第二事件的通信方向对应的第二相关事件的类型信息相同的情况,第一事件的通信方向与第二事件的通信方向之间可能不存在相同的事件。
第一相关事件是指与第一事件存在数据传输的事件,也即至少存在一个第一时间的通信方向与第一相关事件有关。第二相关事件是指与第二事件存在数据传输的事件,也即至少存在一个第二时间的通信方向与第二相关事件有关。
例如,第一事件、第二事件均为发送消息事件,第一事件的通信方向对应的接收消息事件为事件1,第二事件的通向方向对应的接收消息事件为事件2。则第一事件的通信方向和第二时间的通信方向除了需要满足路径镜像条件1中的所有要求以外,还需要保证第一相关事件(即事件1)的数据类型与第二相关事件(即事件2)的数据类型相同。其中,第一相关事件的节点与第二相关事件的节点可以相同,也可以不相同。
如图4所示,其示出一种满足路径镜像条件1的通信方向示意图。其中,P0、P1和P2为三个互不相同且存在对等关系的进程,事件412为第一事件,事件422为第二事件。事件412的通信方向410表示:P0中的事件412与P1中的事件411进行数据传输,且P1中的事件411将数据传输给P0中的事件412。同理可知,事件422的通信方向420表示:P2中的事件422与P1中的事件411进行数据传输,且P1中的事件411将数据传输给P2中的事件422。由图4可知,通信方向410和通信方向420关于进程P1对称。也即在这种情况中,事件412与事件422的节点对等。
如图5所示,其示出一种满足路径镜像条件2的通信方向示意图。其中,P0、P1、P2和P3为四个互不相同且存在对等关系的进程,目标时序用例510中包括两个事件分别为第一事件511,531。比较时序用例中包括两个事件分别为521,541。在第一事件为511的情况下,存在第一事件511的通信方向指向第一相关事件512;存在第二事件521的通信方向指向第二相关事件512(第一相关事件和第二相关事件相同),在第一事件511的数据类型与第二事件521的数据类型相同的情况下,第一事件511的通信方向和第二事件521的通信方向满足路径镜像条件1。在第一事件为531的情况下,存在第一事件531的通信方向指向第一相关事件532;存在第二事件541的通信方向指向第二相关事件542,在第一事件511的数据类型与第二事件521的数据类型相同且第一相关事件532与第二相关事件542的数据类型相同的情况下,第一事件531的通信方向和第二事件541的通信方向满足路径镜像条件2。
如图6所示,其示出一种目标时序用例的收敛类型的确定方法。
由图中a-l各个时间对应的向量时钟坐标得到全量时序用例集。其中,全量时序用例集至少包括(a,d)、(a,e)、(a,h)、(a,d)、(b,d)、(b,e)、(b,i)、(e,b)、(e,i)、(i,e)等。对于目标时序用例(b,e),比较时序用例(e,i),事件b的数据类型和事件i的数据类型相同,事件b的通信方向和事件i的通信方向满足路径镜像条件1,目标时序用例为可收敛的时序用例。计算机设备可以将目标时序用例(b,e),比较时序用例(e,i)中的任意一个从全量时序用例集中删除。
在一些实施例中,计算机设备根据目标时序用例的收敛类型,对全量时序用例集中的时序用例进行,得到收敛时序用例集,包括:在目标时序用例的收敛类型为可收敛的情况下,从全量时序用例集中删除目标时序用例,得到收敛时序用例集;或者,从全量时序用例集中删除比较时序用例,得到收敛时序用例集。
在一些实施例中,在确定目标时序用例的收敛类型为可收敛计算机设备直接将目标时序用例从全量时序用例集中删除,或者将比较时序用例从全量时序用例集删除。在对全量时序用例集中的目标时序用例或者其对应的比较时序用例进行删除之后,计算机设备确定下一个目标时序用例的收敛类型。
在一些实施例中,对于任意一个目标时序用例,计算机设备采取相同的删减方式对全量时序用例集进行删减,也即对于所有收敛类型为可收敛的目标时序用例,计算机设备将目标时序用例从全量时序用例集中删除,或者对于所有收敛类型为可收敛的目标时序用例,计算机设备都将目标时序用例对应的比较时序用例从全量时序用例集中删除。
通过这种方法先对全量时序用例集中的时序用例进行删除,能够减少需要确定收敛类型的目标时序用例的数量,随着对全量时序用例集中的时序用例不对进行删减,待确定收敛类型的目标时序用例的数量不断减少,同时需要一个目标时需用例进行比较的时序用例的数量也在不断减少。以对全量时序用例集中剩余的全部时序用于作为目标时序用例,将全量时序用例中除了目标时序用例以外的时序用例分别作为目标时序用例的比较时序用例来说,假设全量时序用例集中存在n个时序用例,采用上述方法计算机设备需要对目标时序用例和比较时序用例进行处理的时间复杂度为n!,若先确定全量时序用例集中各个时序用例的收敛类型,则计算机设备需要对目标时序用例和比较时序用例进行处理的时间复杂度为nn,由此可知,通过上述方法能够有效减轻计算机设备的处理压力,缩短收敛时序用例集的确定时长。
在另一些实施例中,计算机设备在确定全部的目标时序用例之后,在根据目标时序用例的收敛类型对全量时序用例集中的时序用例进行删减。使用这种方法需要记录时序用例分别对应的收敛类型,如使用集合进行记录:将可收敛的时序用例存储在可收敛集合中,将不可收敛的时序用例存储在不可收敛集合中。或者只将可收敛的时序用例存储在可收敛集合。
通过路径镜像的方法对全量时序用例集中的时序用例进行删减,能够有效去除全量时序用例集中具有相同作用效果的时序用例,降低时序用例的冗余性。对于可收敛的目标时序用例,其存在至少一个事件a的通信方向与比较时序用例的事件b的通信方向之间存在镜像路径,例如分别处于互为对等节点上的事件a和事件b的数据类型相同,由于两个节点中运行有相同的程序,且事件a,事件b接收的数据类型相同,也即事件a,事件b的作用效果一致(如获取相同的信息),事件a,事件b为对等事件,只需执行对等事件中的一个就能达到目标的作用效果,因此可以通过路径镜像方法确定目标时序用例的收敛类型。
示例2:通过方向信息确定独立关系,根据独立关系确定目标时序用例的收敛类型,并对全量时序用例集中的时序用例进行删除的得到收敛时序用例。
在一些实施例中,计算机设备根据目标时序用例的方向信息,确定目标时序用例的收敛类型,包括:根据目标时序用例的方向信息,确定目标时序用例中的至少两个事件分别对应的通信方向;根据至少两个事件分别对应的通信方向,确定目标时序用例的收敛类型。
计算机设备在目标时序用例中任选两个不同的事件,通过上述介绍不难得出,上述两个事件为并发事件,也即上述两个事件的发生顺序无法直接通过时序图确定。计算机设备通过该两个事件的通信方向,确定目标时序用例的收敛类型。在一些实施例中,该两个事件是与数据传输有关的事件,集体分类请参考上文实施例。
在一些实施例中,计算机设备根据至少两个事件分别对应的通信方向,确定目标时序用例的收敛类型,包括:对于至少两个事件中的任意一个事件组合,确定事件组合中的第三事件的通信方向对应的独立关系,以及事件组合中的第四事件的通信方向对应的独立关系,其中独立关系是指通信方向是否与其他通信方向存在依赖关系;在第三事件的通信方向和第四事件的通信方向相互独立的情况下,将目标时序用例的收敛类型确定为可收敛。
第三事件、第四事件是指目标时序用例中的任意一个事件,可选地,第三事件、第四事件均为目标时序用例中与数据传输相关的事件。
在一些实施例中,处于独立事件关系的事件之间不存在依赖关系,并且事件间的执行顺序不会对分布式系统的作用效果产生影响的事件关系。例如,对于存在独立事件关系的事件30、事件40,事件30优先于事件40发生,或者事件40优先于事件30发生产生的作用效果相同。
在一些实施例中,通信方向对应的独立关系是通过技术人员为时序图中的通信方向添加属性信息确定的。通信方向的属性信息中包括至少一个与该通信方向之间存在独立关系的通信方向。例如,某个通信方向的属性信息中包括技术人员能够标识出的与该通信方向存在依赖关系的通信方向。
在一些实施例中,事件的通信方向的属性信息包括至少一个事件的通信方向的标识。例如,对于事件1的通信方向10,通信方向10的属性信息中包括a,a表示事件2的通信方向20,因此通过通信方向10的属性信息可知,通信方向10与通信方向20之间存在独立关系。
在一些实施例中,对于任意一个第三事件,若都存在第三事件的通信方向存在于第四事件的至少一个通信方向的属性信息中,则计算机设备将目标时序用例的收敛类型确定成为可收敛。也即,目标时序用例中任意选择两个事件,该两个事件均满足独立事件的确定条件。
在一些实施例中,计算机设备对全量时序用例集中的时序用例进行删减,得到收敛时序用例集,包括:在目标时序用例的收敛类型为可收敛的情况下,从全量时序用例集中删除目标时序用例,得到收敛时序用例集;或者,从全量时序用例集中删除与目标时序用例具有相同事件的时序用例,得到收敛时序用例集。
在一些实施例中,计算机设备对全量时序用例集中的时序用例进行删减,得到收敛时序用例集,包括,在目标时序用例集中包括两个以上事件的情况下,将目标时序用例和至少一个与目标时序用例具有相同事件的时序用例从目标时序用例集中进行删除,得到收敛时序用例集。
一种对全量时序用例集中的时序用例进行删减的方法是将目标时序用例从全量时序用例集中删除。另一种对全量时序用例集中的时序用例进行删减的方法是将与目标时序用例由完全相同的事件组成的时序用例从全量时序用例集中删除。
如7所示,在图中的事件a-l中,若事件b与事件j共用的通信方向,事件e与事件j共用的通信方向之间存在独立关系,则目标时序用例(b,e)的收敛类型为可收敛。计算机设备从全量时序用例集中删除(b,e)或(e,b)之一。
例如,对于目标时序用例(a,b,c),若事件a,事件b之间满足独立事件的条件、事件a,事件c满足独立事件的条件且事件b,事件c之间满足独立事件的条件,则目标时序用例(a,b,c)的收敛类型为可收敛。事件a、事件b和事件c能够组成时序用例,说明事件a,事件b和事件c两两互为并发事件,因此,以某个未经删减的全量时序用例集为例,该未经删减的全量时序用例集中存在(a,c,b)、(b,a,c)、(b,c,a),(c,a,b)和(c,b,a)。由于事件a、事件b和事件c之间满足独立事件条件,事件a、事件b和事件c进行的先后顺序对分布式系统的作用效果没有影响,因此只需要对上述6个时序用例中的任意一个时序用例进行测试即可,在全集时序用例中删除剩余5个,不会影响收敛时序用例集的完备性。
示例3:分别通过路径镜像的方法、方向信息确定独立关系,对全量时序用例集中的时序用例进行删除的得到收敛时序用例。
在本示例中,分别进行对目标时序用例中的事件的通信方向与其他时序用例中的事件的通信方向进行比较(示例1)的方法,对全量时序用例集中的时序用例进行删减的过程,以及,通过目标时序用例中的任意两个事件分别对应的通向方向进行比较的方法,对全量时序用例集中的时序用例进行删减的过程进行删减过程(示例2)。
需要说明的是,本示例不对上述示例1、示例2的执行过程进行限定。例如可以先通过对目标时序用例中的事件的通信方向与其他时序用例中的事件的通信方向进行比较(示例1)的方法,进行对全量时序用例集中的时序用例的删减,得到收敛时序用例集1,再通过目标时序用例中的任意两个事件分别对应的通向方向进行比较(示例2)的方法,进行对全量时序用例集中的时序用例的删减,得到收敛时序用例集2,并通过收敛时序用例集1和收敛时序用例集2进行并集处理得到用于对分布式系统进行时序测试的收敛时序用例,也可以先通过对目标时序用例中的任意两个事件分别对应的通向方向进行比较的方法,进行对全量时序用例集中的时序用例的删减得到收敛时序用例集11,再通过对目标时序用例中的事件的通信方向与其他时序用例中的事件的通信方向进行比较的方法,进行对全量时序用例集中的时序用例的删减,进行对全量时序用例集中的时序用例的删减,得到收敛时序用例集22,并通过收敛时序用例集11和收敛时序用例22确定最终的收敛时序用例集。
此外,计算机设备还可以依次对任意一个目标时序用例分别使用示例1中的方法、示例2中的方法,并根据两种方法得到的收敛类型,按照上文实施例中的删减方法,对全量时序用例集中的时序用例集进行删减。
关于示例中为详细介绍的内容,请参考上文关于示例1和示例2分别对应的实施例,本申请在此不进行赘述。
通过上述方法,能够充分去除全量时序用例集中的冗余时序用例,同时不会对收敛时序用例集的完备性产生影响,有助于提高对分布式系统进行时序测试的效率,缩短进行分布式系统测试所需的时间。同时,与随机删除时序用例相比,得到的收敛时序用例具有可重复性。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图8示出了本申请一个示例性实施例提供的分布式系统的时序用例收敛装置的框图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分。该装置800可以包括:用例获取模块810、类型确定模块820和用例删减模块830。
用例获取模块810,由于获取所述分布式系统的全量时序用例集;其中,所述全量时序用例集包括多个时序用例,所述时序用例用于模拟所述分布式系统中不同节点执行的事件之间的发生顺序。
类型确定模块820,用于对于所述全量时序用例集中的目标时序用例,根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型;其中,所述目标时序用例的方向信息用于指示所述目标时序用例中的至少一个事件分别对应的通信方向。
用例删减模块830,用于根据所述目标时序用例的收敛类型,对所述全量时序用例集中的时序用例进行删减,得到收敛时序用例集。
在一些实施例中,所述类型确定模块820,包括:用例获取单元,用于从所述全量时序用例集中获取除所述目标时序用例以外的任意一个时序用例,作为比较时序用例:事件确定单元,用于对于所述目标时序用例中的第一事件,在所述比较时序用例中确定第二事件;其中,所述第一事件与在所述节点之间进行数据传输有关,所述第二事件不同于所述第一事件;方向确定单元,用于根据所述目标时序用例的方向信息,确定所述第一事件的通信方向;其中,所述第一事件的通信方向用于表征与所述第一事件相关的数据传输方向;根据所述比较时序用例的方向信息,确定所述第二事件的通信方向;其中,所述第二事件的通信方向用于表征与所述第二事件相关的数据传输方向;类型确定单元,用于根据所述第一事件的通信方向和所述第二事件的通信方向,确定所述目标时序用例的收敛类型。
在一些实施例中,所述类型确定单元,用于在所述第一事件的通信方向与所述第二事件的通信方向满足路径镜像条件的情况下,将所述目标时序用例的收敛类型确定为可收敛;其中,所述路径镜像条件与所述第一事件的节点和所述第二事件的节点有关。
在一些实施例中,所述路径镜像条件包括:在所述第一事件的通信方向和所述第二事件的通信方向与相同事件相关的情况下,所述第一事件的类型信息与所述第二事件的类型信息相同,且所述第一事件的节点与所述第二事件的节点为对等关系;其中,所述第一事件的类型信息与所述第一事件对应的传输数据类型有关;或者,在所述第一事件的通信方向和所述第二事件的通信方向不与相同事件相关的情况下,所述第一事件的类型信息与所述第二事件的类型信息相同,所述第一事件的节点与所述第二事件的节点为对等关系,且所述第一事件的通信方向对应的第一相关事件的类型信息与所述第二事件的通信方向对应的第二相关事件的类型信息相同;其中,所述对等关系是指所述第一事件的节点与所述第二事件的节点运行有相同功能的程序。
在一些实施例中,所述用例删减模块830,用于:在所述目标时序用例的收敛类型为可收敛的情况下,从所述全量时序用例集中删除所述目标时序用例,得到所述收敛时序用例集;或者,从所述全量时序用例集中删除所述比较时序用例,得到所述收敛时序用例集。
在一些实施例中,所述类型确定模块820,包括:方向确定单元,用于根据所述目标时序用例的方向信息,确定所述目标时序用例中的至少两个事件分别对应的通信方向;类型确定单元,用于根据所述至少两个事件分别对应的通信方向,确定所述目标时序用例的收敛类型。
在一些实施例中,所述类型确定单元,用于:对于所述至少两个事件中的任意一个事件组合,确定所述事件组合中的第三事件的通信方向对应的独立关系,以及所述事件组合中的第四事件的通信方向对应的独立关系,其中所述独立关系是指所述通信方向是否与其他通信方向存在依赖关系;在所述第三事件的通信方向和所述第四事件的通信方向相互独立的情况下,将所述目标时序用例的收敛类型确定为可收敛。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法侧的实施例,这里不再赘述。上述实施例提供的装置的有益效果请参考方法侧实施例的描述,这里也不再赘述。
图9示出了本申请一个示例性实施例提供的计算机设备的结构框图。
通常,计算机设备900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质存储有计算机程序,该计算机程序由处理器901加载并执行以实现上述各方法实施例提供的分布式系统的时序用例收敛方法。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述各方法实施例提供的分布式系统的时序用例收敛方法。
该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM(RandomAccess Memory,随机存取存储器)、ROM(Read-Only Memory,只读存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现上述各方法实施例提供的分布式系统的时序用例收敛方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种分布式系统的时序用例收敛方法,其特征在于,所述方法包括:
获取所述分布式系统的全量时序用例集;其中,所述全量时序用例集包括多个时序用例,所述时序用例用于模拟所述分布式系统中不同节点执行的事件之间的发生顺序;
对于所述全量时序用例集中的目标时序用例,根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型;其中,所述目标时序用例的方向信息用于指示所述目标时序用例中的至少一个事件分别对应的通信方向;
根据所述目标时序用例的收敛类型,对所述全量时序用例集中的时序用例进行删减,得到收敛时序用例集。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型,包括:
从所述全量时序用例集中获取除所述目标时序用例以外的任意一个时序用例,作为比较时序用例:
对于所述目标时序用例中的第一事件,在所述比较时序用例中确定第二事件;其中,所述第一事件与在所述节点之间进行数据传输有关,所述第二事件不同于所述第一事件;
根据所述目标时序用例的方向信息,确定所述第一事件的通信方向;其中,所述第一事件的通信方向用于表征与所述第一事件相关的数据传输方向;
根据所述比较时序用例的方向信息,确定所述第二事件的通信方向;其中,所述第二事件的通信方向用于表征与所述第二事件相关的数据传输方向;
根据所述第一事件的通信方向和所述第二事件的通信方向,确定所述目标时序用例的收敛类型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一事件的通信方向和所述第二事件的通信方向,确定所述目标时序用例的收敛类型,包括:
在所述第一事件的通信方向与所述第二事件的通信方向满足路径镜像条件的情况下,将所述目标时序用例的收敛类型确定为可收敛;其中,所述路径镜像条件与所述第一事件的节点和所述第二事件的节点有关。
4.根据权利要求3所述的方法,其特征在于,所述路径镜像条件包括:
在所述第一事件的通信方向和所述第二事件的通信方向与相同事件相关的情况下,所述第一事件的类型信息与所述第二事件的类型信息相同,且所述第一事件的节点与所述第二事件的节点为对等关系;其中,所述第一事件的类型信息与所述第一事件对应的传输数据类型有关;
或者,
在所述第一事件的通信方向和所述第二事件的通信方向不与相同事件相关的情况下,所述第一事件的类型信息与所述第二事件的类型信息相同,所述第一事件的节点与所述第二事件的节点为对等关系,且所述第一事件的通信方向对应的第一相关事件的类型信息与所述第二事件的通信方向对应的第二相关事件的类型信息相同;
其中,所述对等关系是指所述第一事件的节点与所述第二事件的节点运行有相同功能的程序。
5.根据权利要求2所述的方法,其特征在于,所述根据所述目标时序用例的收敛类型,对所述全量时序用例集中的时序用例进行删减,得到收敛时序用例集,包括:
在所述目标时序用例的收敛类型为可收敛的情况下,从所述全量时序用例集中删除所述目标时序用例,得到所述收敛时序用例集;
或者,
从所述全量时序用例集中删除所述比较时序用例,得到所述收敛时序用例集。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型,包括:
根据所述目标时序用例的方向信息,确定所述目标时序用例中的至少两个事件分别对应的通信方向;
根据所述至少两个事件分别对应的通信方向,确定所述目标时序用例的收敛类型。
7.根据权利要求6所述的方法,其特征在于,所述根据所述至少两个事件分别对应的通信方向,确定所述目标时序用例的收敛类型,包括:
对于所述至少两个事件中的任意一个事件组合,确定所述事件组合中的第三事件的通信方向对应的独立关系,以及所述事件组合中的第四事件的通信方向对应的独立关系,其中所述独立关系是指所述通信方向是否与其他通信方向存在依赖关系;
在所述第三事件的通信方向和所述第四事件的通信方向相互独立的情况下,将所述目标时序用例的收敛类型确定为可收敛。
8.一种分布式系统的时序用例收敛装置,其特征在于,所述装置包括:
用例获取模块,用于获取所述分布式系统的全量时序用例集;其中,所述全量时序用例集包括多个时序用例,所述时序用例用于模拟所述分布式系统中不同节点执行的事件之间的发生顺序;
类型确定模块,用于对于所述全量时序用例集中的目标时序用例,根据所述目标时序用例的方向信息,确定所述目标时序用例的收敛类型;其中,所述目标时序用例的方向信息用于指示所述目标时序用例中的至少一个事件分别对应的通信方向;
用例删减模块,用于根据所述目标时序用例的收敛类型,对所述全量时序用例集中的时序用例进行删减,得到收敛时序用例集。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的分布式系统的时序用例收敛方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至7任一项所述的分布式系统的时序用例收敛方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365163.4A CN116932374A (zh) | 2022-04-07 | 2022-04-07 | 分布式系统的时序用例收敛方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365163.4A CN116932374A (zh) | 2022-04-07 | 2022-04-07 | 分布式系统的时序用例收敛方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932374A true CN116932374A (zh) | 2023-10-24 |
Family
ID=88393012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210365163.4A Pending CN116932374A (zh) | 2022-04-07 | 2022-04-07 | 分布式系统的时序用例收敛方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932374A (zh) |
-
2022
- 2022-04-07 CN CN202210365163.4A patent/CN116932374A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fan et al. | Performance evaluation of blockchain systems: A systematic survey | |
US11604787B2 (en) | Method of generating globally verifiable unique identifiers using a scalable interlinked blockchain structure | |
CN111295659B (zh) | 用于将区块链技术与数字双胞胎结合的计算机实现的系统和方法 | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
EP4010816A1 (en) | Modification of in-execution smart contract programs | |
CN113711536A (zh) | 从区块链网络中提取数据 | |
CN109598147B (zh) | 基于区块链的数据处理方法及装置、电子设备 | |
CN111343212B (zh) | 消息处理方法、装置、设备以及存储介质 | |
CN111782551B (zh) | 针对区块链项目的测试方法、装置及计算机设备 | |
KR20200077830A (ko) | 블록체인 기반 테스트 데이터 관리 방법 및 블록체인 노드 장치 | |
Sukhwani | Performance modeling & analysis of hyperledger fabric (permissioned blockchain network) | |
CN112035350B (zh) | 针对区块链系统的测试方法、装置及计算机设备 | |
CN112102099B (zh) | 保单数据处理方法、装置、电子设备及存储介质 | |
WO2020118859A1 (zh) | 一种去中心化芯片研发交易数据存储方法及系统 | |
CN110599384B (zh) | 组织关系的转移方法、装置、设备及存储介质 | |
Chauhan et al. | A systematic review of blockchain technology to find current scalability issues and solutions | |
Li et al. | Cost-effective data feeds to blockchains via workload-adaptive data replication | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
US11995587B2 (en) | Method and device for managing project by using data merging | |
CN116932374A (zh) | 分布式系统的时序用例收敛方法、装置、设备及存储介质 | |
CN116521509A (zh) | 智能合约测试方法、装置、设备、存储介质及产品 | |
CN114268638A (zh) | 区块链平台通道管理方法、装置、计算机设备和存储介质 | |
CN114860615A (zh) | 规则自动化测试方法、装置、电子设备及存储介质 | |
CN111429216A (zh) | 一种基于用户有限机会的线上房源锁定方法及系统 | |
Nystrøm | Network Performance in Hyperledger Fabric-Investigating the network resource consumption of transactions in a Distributed Ledger Technology system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |