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

软件定义网络应用测试序列的生成方法与生成系统技术方案

技术编号:17011355 阅读:142 留言:0更新日期:2018-01-11 08:01
本发明专利技术公开了一种软件定义网络应用测试序列的生成方法与生成系统,该生成方法包括针对待测试软件定义网络应用构建信息表扩展有限状态机模型,信息表扩展有限状态机模型包括用于描述软件定义网络应用的行为的多个组件状态机;基于多个组件状态机,形成仅针对网络拓扑中一个指定的交换机的组合的有限状态机;采用有限状态机模型的测试生成方法,基于组合的有限状态机生成针对指定的交换机的单结点测试序列;在网络拓扑中模拟执行单结点测试序列,以将单结点测试序列扩展成多结点测试序列。该方法消除了现有技术中在对软件定义网络应用进行测试时,仅能测试单一网络实体,而脱离其所在网络的网络拓扑,不利于测试的缺陷。

【技术实现步骤摘要】
软件定义网络应用测试序列的生成方法与生成系统
本专利技术属于网络协议测试
,尤其涉及一种软件定义网络应用测试序列的生成方法与生成系统。
技术介绍
协议测试技术是保证网络通信协议能够正确实现,以及不同的网络设备之间实现正确互连的重要手段。一致性测试是基本的协议测试方法,其主要用于检测协议的实现是否与协议的规范相一致。基于形式化方法的测试用例生成是协议测试
中的重要问题。该测试用例的生成方法从协议规范的形式化模型出发,生成用于测试活动的测试集(或测试序列)。在大多数已提出的测试生成技术中,其基本思想是将被测系统(SystemUnderTest,简称SUT)模型化为一个有限状态机或扩展有限状态机的系统,进而生成测试序列。软件定义网络应用是一种与其所在的网络拓扑关系密切应用协议。一般的,软件定义网络应用具有其所在网络的全局视图,而且在其工作过程中会网络的配置进行修改,进而动态影响网络的功能和行为。由于现有技术中基于形式化方法的测试序列的生成仅考虑以单一的网络实体作为被测系统的情形,对于网络中多个网络实体关联的情形并没有涉及,因此,难以有效地对软件定义网络应用进行测试。
技术实现思路
本专利技术所要解决的技术问题之一是需要提供一种能够对软件定义网络应用所在的网络拓扑关系进行考虑,以对软件定义网络应用进行有效测试的方法。为了解决上述技术问题,本申请的实施例首先提供了一种软件定义网络应用测试序列的生成方法,包括:针对待测试软件定义网络应用构建信息表扩展有限状态机模型,所述信息表扩展有限状态机模型包括用于描述所述软件定义网络应用的行为的多个组件状态机、描述各组件状态机之间的连接的信道以及描述所述软件定义网络应用所针对的网络的网络拓扑;基于所述多个组件状态机,形成仅针对所述网络拓扑中一个指定的交换机的组合的有限状态机;采用有限状态机模型的测试生成方法,基于所述组合的有限状态机生成针对所述指定的交换机的单结点测试序列,所述单结点测试序列包括该指定的交换机对所述待测试软件定义网络应用的输入消息与输出消息;在所述网络拓扑中模拟执行所述单结点测试序列,以将所述单结点测试序列扩展成多结点测试序列。优选地,所述多个组件状态机包括用于描述与所述软件定义网络应用中保存的多个信息表项一一对应的多个并行进程的多个扩展有限状态机,所述扩展有限状态机包括初始状态、状态集合、变量集合、输入符号集合、输出符号集合与变迁集合。优选地,所述描述所述软件定义网络应用所针对的网络的网络拓扑,包括用于描述所述网络中各网络实体的数组,所述数组中的各个元素分别对应于所述网络中的主机的集合、交换机的集合、控制器的集合与用于连接主机、交换机以及控制器的链路的集合。优选地,所述基于所述多个组件状态机,形成仅针对所述网络拓扑中一个指定的交换机的组合的有限状态机,包括:在所述网络拓扑中指定一个交换机;从所述网络拓扑中选取至少两个相互通信的主机,并在所述多个组件状态机中找到与所述相互通信的主机分别对应的,且针对指定的所述交换机的至少两个组件状态机;组合所述至少两个组件状态机以形成组合的有限状态机,所述组合的有限状态机的每一个状态是所述至少两个组件状态机的状态集合及变量集合的组合。优选地,所述在所述网络拓扑中模拟执行所述单结点测试序列,以将所述单结点测试序列扩展成多结点测试序列,包括:依次取出所述单结点测试序列中的每一个输入消息,并分别针对取出的输入消息生成扩展序列;连接与所述单结点测试序列中的每一个输入消息对应的各扩展序列,以形成多结点测试序列。优选地,所述针对取出的输入消息生成扩展序列,包括:步骤1、为待生成的所述扩展序列初始化存储空间;步骤2、从所述输入消息中提取主机的数据报文和端口信息,并将所述数据报文和端口信息加入所述扩展序列中;步骤3、按照存储的顺序,依次从所述扩展序列中获取数据报文或控制报文以及对应的端口信息;步骤4、基于所述数据报文或控制报文将到达的端口的类型与其自身的类型,确定对所述数据报文或控制报文的处理,以得到新的数据报文或控制报文以及对应的端口信息,并将得到的新的数据报文或控制报文以及对应的端口信息加入所述扩展序列中;步骤5、重复执行步骤3与步骤4,直至完成对所述扩展序列中所存储的数据报文或控制报文的处理,并以最终存储在所述扩展序列中的全部内容作为一个扩展序列。优选地,所述步骤4具体包括:如果所述数据报文或控制报文将到达交换机的端口,则判断所述数据报文或控制报文的类型:如果是洪泛指令类型的控制报文,则从所述控制报文中提取数据报文,并在所述扩展序列中加入所述数据报文和所述交换机的每一个数据端口;如果是安装规则类型的控制报文,则记录所述安装规则,同时从所述控制报文中提取数据报文,并在所述扩展序列中加入所述数据报文和由所述安装规则指定的交换机的数据端口;如果是与已记录的规则相匹配的数据报文,则在所述扩展序列中加入所述数据报文和由已记录的规则指定的交换机的数据端口;如果是与已记录的规则不相匹配的数据报文,则基于所述数据报文构造上报类型的控制报文,并在所述扩展序列中加入构造的控制报文和交换机的控制端口;如果所述数据报文或控制报文将到达控制器的端口,则根据所述信息表扩展有限状态机模型中的组件状态机找到对应的控制报文,并在所述扩展序列中加入该控制报文和对应的控制器端口。优选地,所述步骤4还包括:如果所述数据报文或控制报文将到达主机的端口,则不对该数据报文或控制报文进行处理,直接按照存储的顺序,从所述扩展序列中获取下一条数据报文或控制报文以及对应的端口信息。优选地,在所述步骤3中,采用先进先出队列对所述扩展序列进行同步备份,并从所述先进先出队列中依次获取数据报文或控制报文以及对应的端口信息。本申请的实施例还提供了一种软件定义网络应用测试序列的生成系统,包括模型生成模块,其设置为针对待测试软件定义网络应用构建信息表扩展有限状态机模型,所述信息表扩展有限状态机模型包括用于描述所述软件定义网络应用的行为的多个组件状态机、描述各组件状态机之间的连接的信道以及描述所述软件定义网络应用所针对的网络的网络拓扑;组合模块,其设置为基于所述多个组件状态机形成,仅针对所述网络拓扑中一个指定的交换机的组合的有限状态机;单结点测试序列生成模块,其设置为采用有限状态机模型的测试生成方法,基于所述组合的有限状态机生成针对所述指定的交换机的单结点测试序列,所述单结点测试序列包括该指定的交换机对所述待测试软件定义网络应用的输入消息与输出消息;多结点测试序列生成模块,其设置为在所述网络拓扑中模拟执行所述单结点测试序列,以将所述单结点测试序列扩展成多结点测试序列。与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:通过基于针对软件定义网络应用所生成的单结点测试序列与应用所在的网络的网络拓扑,对单结点测试序列进行模拟执行,得到针对软件定义网络应用的多结点测试序列,消除了现有技术中在对软件定义网络应用进行测试时,仅能测试单一网络实体,而脱离其所在网络的网络拓扑,不利于测试的缺陷。本专利技术的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他本文档来自技高网...
软件定义网络应用测试序列的生成方法与生成系统

【技术保护点】
一种软件定义网络应用测试序列的生成方法,包括:针对待测试软件定义网络应用构建信息表扩展有限状态机模型,所述信息表扩展有限状态机模型包括用于描述所述软件定义网络应用的行为的多个组件状态机、描述各组件状态机之间的连接的信道以及描述所述软件定义网络应用所针对的网络的网络拓扑;基于所述多个组件状态机,形成仅针对所述网络拓扑中一个指定的交换机的组合的有限状态机;采用有限状态机模型的测试生成方法,基于所述组合的有限状态机生成针对所述指定的交换机的单结点测试序列,所述单结点测试序列包括该指定的交换机对所述待测试软件定义网络应用的输入消息与输出消息;在所述网络拓扑中模拟执行所述单结点测试序列,以将所述单结点测试序列扩展成多结点测试序列。

【技术特征摘要】
1.一种软件定义网络应用测试序列的生成方法,包括:针对待测试软件定义网络应用构建信息表扩展有限状态机模型,所述信息表扩展有限状态机模型包括用于描述所述软件定义网络应用的行为的多个组件状态机、描述各组件状态机之间的连接的信道以及描述所述软件定义网络应用所针对的网络的网络拓扑;基于所述多个组件状态机,形成仅针对所述网络拓扑中一个指定的交换机的组合的有限状态机;采用有限状态机模型的测试生成方法,基于所述组合的有限状态机生成针对所述指定的交换机的单结点测试序列,所述单结点测试序列包括该指定的交换机对所述待测试软件定义网络应用的输入消息与输出消息;在所述网络拓扑中模拟执行所述单结点测试序列,以将所述单结点测试序列扩展成多结点测试序列。2.根据权利要求1所述的生成方法,其特征在于,所述多个组件状态机包括用于描述与所述软件定义网络应用中保存的多个信息表项一一对应的多个并行进程的多个扩展有限状态机,所述扩展有限状态机包括初始状态、状态集合、变量集合、输入符号集合、输出符号集合与变迁集合。3.根据权利要求1或2所述的生成方法,其特征在于,所述描述所述软件定义网络应用所针对的网络的网络拓扑,包括用于描述所述网络中各网络实体的数组,所述数组中的各个元素分别对应于所述网络中的主机的集合、交换机的集合、控制器的集合与用于连接主机、交换机以及控制器的链路的集合。4.根据权利要求3所述的生成方法,其特征在于,所述基于所述多个组件状态机,形成仅针对所述网络拓扑中一个指定的交换机的组合的有限状态机,包括:在所述网络拓扑中指定一个交换机;从所述网络拓扑中选取至少两个相互通信的主机,并在所述多个组件状态机中找到与所述相互通信的主机分别对应的,且针对指定的所述交换机的至少两个组件状态机;组合所述至少两个组件状态机以形成组合的有限状态机,所述组合的有限状态机的每一个状态是所述至少两个组件状态机的状态集合及变量集合的组合。5.根据权利要求3或4所述的生成方法,其特征在于,所述在所述网络拓扑中模拟执行所述单结点测试序列,以将所述单结点测试序列扩展成多结点测试序列,包括:依次取出所述单结点测试序列中的每一个输入消息,并分别针对取出的输入消息生成扩展序列;连接与所述单结点测试序列中的每一个输入消息对应的各扩展序列,以形成多结点测试序列。6.根据权利要求5所述的生成方法,其特征在于,所述针对取出的输入消息生成扩展序列,包括:步骤1、为待生成的所述扩展序列初始化存储空间;步骤2、从所述输入消息中提取主机的数据报文和端口信息,并将所述数据报文和端口信息加入所述扩展序列中;步骤3、按照存储的顺序,依次从所述扩展序列中获取数据报文或控制报文以及对应的端口信息;步骤4、基于所述数据报文或控制报文将到达的端口的类型与其自...

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

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

1