当前位置: 首页 > 专利查询>清华大学专利>正文

基于模型检测的分布式测试脚本的生成方法与生成系统技术方案

技术编号:17037187 阅读:108 留言:0更新日期:2018-01-13 21:59
本发明专利技术公开了一种基于模型检测的分布式测试脚本的生成方法与生成系统,其中,该生成方法包括,构建与网络通信协议的规范相适应的形式化模型以及约束;利用模型检测工具探索所述形式化模型的状态空间,如果存在对所述约束的违反,则由模型检测工具生成并输出与该违反对应的反例;对所述反例进行解析,以获取所述反例中的进程列表与消息序列;根据所述进程列表与所述消息序列生成分布式测试脚本。该方法实现了对网络通信协议的分布式测试,有利于提高网络通信协议测试的准确性。

Generation method and generation system of distributed test scripts based on model detection

The invention discloses a method for generating distributed test script model based on detection and generation system, which includes the generation method, and the construction of network communication protocol specification to the formal model and constraint; using model checking tool to explore the state space of the formal model, if the violation of the constraint then, by the model checking tool to generate and output with the corresponding violation of counter examples; analyzing the counterexample, to obtain a list of processes and messages in the sequence of counterexamples; according to the process list and the message sequence generation distributed test script. This method realizes the distributed test of network communication protocol, which is helpful to improve the accuracy of network communication protocol test.

【技术实现步骤摘要】
基于模型检测的分布式测试脚本的生成方法与生成系统
本专利技术属于网络协议测试
,具体地说,尤其涉及一种基于模型检测的分布式测试脚本的生成方法与生成系统。
技术介绍
协议测试技术是保证网络通信协议能够正确实现,以及不同的网络设备之间实现正确互连的重要手段。一致性测试是基本的协议测试方法,其主要用于检测协议的实现是否与协议的规范相一致。基于模型检测的测试生成是这一领域中的重要问题,其主要是基于模型检测来发现协议规范中存在的错误,生成用于测试活动的测试集(或测试脚本)。在大多数已提出的基于模型检测的测试生成技术中,其基本思想是根据协议规范建立形式化模型,使用模型检测工具查找模型中存在的错误,进而生成对应的测试集。现有技术中基于模型检测的测试生成方法仅考虑集中式测试的架构,即测试系统与被测试系统之间一对一的测试,对于分布式的测试架构,即多个测试系统与被测试系统之间多对一的测试,并没有涉及。而网络通信协议在实际网络中大都使用分布式的架构工作,分布式的测试架构更有利于发现网络通信协议中可能存在的错误,因此更适合于网络通信协议测试。
技术实现思路
本专利技术所要解决的技术问题之一现有技术中基于模型检测的测试生成方法存在局限于集中式测试的架构,不支持分布式测试架构,不利于协议测试的问题。为了解决上述技术问题,本申请的实施例首先提供了一种基于模型检测的分布式测试脚本的生成方法,包括:构建与网络通信协议的规范相适应的形式化模型以及约束;利用模型检测工具探索所述形式化模型的状态空间,如果存在对所述约束的违反,则由模型检测工具生成并输出与所述违反对应的反例;对所述反例进行解析,以获取所述反例中的进程列表与消息序列;根据所述进程列表与所述消息序列生成分布式测试脚本优选地,所述形式化模型包括描述网络通信实体的进程,描述网络链路的信道,以及描述网络通信协议数据的数据结构;所述约束包括与网络通信协议相关的通用规则以及特定功能。优选地,所述分布式测试脚本包括一个主测试部件与多个并行测试部件,所述主测试部件被设置在分布式测试网络中的一个网络实体上,其用于定义测试环境以及连接各并行测试部件;所述多个并行测试部件被分别设置在分布式测试网络中的多个网络实体上,用于分别对被测系统进行测试。优选地,所述根据所述进程列表与所述消息序列生成分布式测试脚本,包括:将所述进程列表中除与被测系统对应的进程以外的每个进程,分别初始化为一个并行测试部件;建立主测试部件与各并行测试部件之间的端口,以连接各并行测试部件;建立各并行测试部件之间的端口,以使各并行测试部件之间相互连接;遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本。优选地,所述遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本,包括:在确定由同一个并行测试部件发出的消息时,如果该消息是消息序列中的第一个消息,或者该消息的前一个消息是由该并行部件发出或接收的,则直接在对应于该并行测试部件的测试脚本中添加该消息的发送;如果该消息的前一个消息不是由该并行测试部件发出或接收的,则先在对应于该并行测试部件的测试脚本中添加同步控制消息的接收,再在测试脚本中添加该消息的发送;在将该消息的发送添加至该并行测试部件的测试脚本后,如果该消息不是消息序列中的最后一个消息,且该消息是发往被测系统的,同时该消息的后一个消息不再是由该并行测试部件或是由被测系统发出的,则在对应于该并行测试部件的测试脚本中添加同步控制消息的发送。优选地,所述遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本,包括:在确定由同一个并行测试部件接收的消息时,直接在对应于该并行测试部件的测试脚本中添加该消息的接收;在将该消息的接收添加至该并行测试部件的测试脚本后,如果该消息不是消息序列的最后一个消息,且该消息的后一个消息的发送方是其他并行测试部件,则在对应于该并行测试部件的测试脚本中添加同步控制消息的发送。优选地,在根据所述进程列表与所述消息序列生成分布式测试脚本之前,根据网络通信协议的规范定义各并行测试部件和所述被测系统之间,以及各并行测试部件之间的交互消息的格式;在向并行测试部件的测试脚本中添加消息时,根据所述格式实例化所述交互消息。优选地,在建立主测试部件时,还包括,将所述并行测试部件的端口映射到运行所述分布式测试脚本的网络实体的系统端口。本申请的实施例还提供了一种基于模型检测的分布式测试脚本的生成系统,包括,模型建立模块,其设置为构建与网络通信协议的规范相适应的形式化模型以及约束;反例生成模块,其设置为利用模型检测工具探索所述形式化模型的状态空间,如果存在对所述约束的违反,则由模型检测工具生成并输出与所述违反对应的反例;提取模块,其设置为对所述反例进行解析,以获取所述反例中的进程列表与消息序列;脚本生成模块,其设置为根据所述进程列表与所述消息序列生成分布式测试脚本。与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:通过基于模型检测工具建立具有主测试部件与分布式测试部件的分布式测试脚本,实现了对网络通信协议的分布式测试,有利于提高对网络通信协议测试的准确性。本专利技术的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。图1为根据本专利技术一实施例的基于模型检测的分布式测试脚本的生成方法的流程示意图;图2为根据本专利技术一实施例的并行测试部件的测试脚本的生成示意图;图3为根据本专利技术另一实施例的基于模型检测的分布式测试脚本的生成系统的结构示意图。具体实施方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用技术手段来解决技术问题,并达成相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本专利技术的保护范围之内。图1为根据本专利技术一实施例的基于模型检测的分布式测试脚本的生成方法的流程示意图,如图所示,该生成方法包括:步骤S110、构建与网络通信协议的规范相适应的形式化模型以及约束。步骤S120、利用模型检测工具探索形式化模型的状态空间,如果存在对约束的违反,则由模型检测工具生成并输出与该违反对应的反例。步骤S130、对反例进行解析,以获取反例中的进程列表与消息序列。步骤S140、根据进程列表与消息序列生成分布式测试脚本。具体的,在步骤S110中,针对网络通信协议所建立的形式化模型一般包括描述网络通信实体的进程,描述网络链路的信道,以及描述网络通信协议数据的数据结构。而约束一般包含网络通信协议的应遵守的一些通用规则,以及网络通信协议的特定功能。举例而言,通用规则可以包括网络的可达性等,特定功能可以包括对某些网络实体的限制访问,以及与安全特性有关的一些特殊要求等。另外,本专利技术实施例中对于建立形式化模型时所采用的具本文档来自技高网...
基于模型检测的分布式测试脚本的生成方法与生成系统

【技术保护点】
一种基于模型检测的分布式测试脚本的生成方法,包括:构建与网络通信协议的规范相适应的形式化模型以及约束;利用模型检测工具探索所述形式化模型的状态空间,如果存在对所述约束的违反,则由模型检测工具生成并输出与所述违反对应的反例;对所述反例进行解析,以获取所述反例中的进程列表与消息序列;根据所述进程列表与所述消息序列生成分布式测试脚本。

【技术特征摘要】
1.一种基于模型检测的分布式测试脚本的生成方法,包括:构建与网络通信协议的规范相适应的形式化模型以及约束;利用模型检测工具探索所述形式化模型的状态空间,如果存在对所述约束的违反,则由模型检测工具生成并输出与所述违反对应的反例;对所述反例进行解析,以获取所述反例中的进程列表与消息序列;根据所述进程列表与所述消息序列生成分布式测试脚本。2.根据权利要求1所述的生成方法,其特征在于,所述形式化模型包括描述网络通信实体的进程,描述网络链路的信道,以及描述网络通信协议数据的数据结构;所述约束包括与网络通信协议相关的通用规则以及特定功能。3.根据权利要求1或2所述的生成方法,其特征在于,所述分布式测试脚本包括一个主测试部件与多个并行测试部件,所述主测试部件被设置在分布式测试网络中的一个网络实体上,其用于定义测试环境以及连接各并行测试部件;所述多个并行测试部件被分别设置在分布式测试网络中的多个网络实体上,用于分别对被测系统进行测试。4.根据权利要求3所述的生成方法,其特征在于,所述根据所述进程列表与所述消息序列生成分布式测试脚本,包括:将所述进程列表中除与被测系统对应的进程以外的每个进程,分别初始化为一个并行测试部件;建立主测试部件与各并行测试部件之间的端口,以连接各并行测试部件;建立各并行测试部件之间的端口,以使各并行测试部件之间相互连接;遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本。5.根据权利要求4所述的生成方法,其特征在于,所述遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本,包括:在确定由同一个并行测试部件发出的消息时,如果该消息是消息序列中的第一个消息,或者该消息的前一个消息是由该并行部件发出或接收的,则直接在对应于该并行测试部件的测试脚本中添加该消息的发送;如果该消息的前一个消息不是由该并行测试部件发出或接收的,则先在对应于该并行测试部...

【专利技术属性】
技术研发人员:姚姜源王之梁施新刚尹霞李崇荣
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1