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.根据权利要求1所述的生成方法,其特征在于,所述形式化模型包括描述网络通信实体的进程,描述网络链路的信道,以及描述网络通信协议数据的数据结构;所述约束包括与网络通信协议相关的通用规则以及特定功能。3.根据权利要求1或2所述的生成方法,其特征在于,所述分布式测试脚本包括一个主测试部件与多个并行测试部件,所述主测试部件被设置在分布式测试网络中的一个网络实体上,其用于定义测试环境以及连接各并行测试部件;所述多个并行测试部件被分别设置在分布式测试网络中的多个网络实体上,用于分别对被测系统进行测试。4.根据权利要求3所述的生成方法,其特征在于,所述根据所述进程列表与所述消息序列生成分布式测试脚本,包括:将所述进程列表中除与被测系统对应的进程以外的每个进程,分别初始化为一个并行测试部件;建立主测试部件与各并行测试部件之间的端口,以连接各并行测试部件;建立各并行测试部件之间的端口,以使各并行测试部件之间相互连接;遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本。5.根据权利要求4所述的生成方法,其特征在于,所述遍历所述消息序列中的每个消息,以确定各并行测试部件的测试脚本,包括:在确定由同一个并行测试部件发出的消息时,如果该消息是消息序列中的第一个消息,或者该消息的前一个消息是由该并行部件发出或接收的,则直接在对应于该并行测试部件的测试脚本中添加该消息的发送;如果该消息的前一个消息不是由该并行测试部件发出或接收的,则先在对应于该并行测试部...
【专利技术属性】
技术研发人员:姚姜源,王之梁,施新刚,尹霞,李崇荣,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。