一种用于生成协议测试序列的方法

文档序号:7816750阅读:375来源:国知局
一种用于生成协议测试序列的方法
【专利摘要】本发明公开了一种用于生成协议测试序列的方法,包括以下步骤:针对待测试网络设备的协议规范构建包括与所述协议规范对应的数据组件状态机以及信道集合的流水线扩展有限状态机模型;根据所述流水线扩展有限状态机模型提取抽象组件数据图,所述抽象组件数据图包括表示所述数据组件的顶点,表示所述信道集合的有向边以及所述流水线扩展有限状态机模型的入口点和出口点;基于抽象组件数据图生成覆盖所有有向边的,处于所述流水线扩展有限状态机模型的入口点和出口点之间所有数据路径;遍历全部数据路径分别生成访问所述数据路径中全部数据组件的测试序列。本发明简化了网络协议测试方法,能够减缓状态爆炸问题。
【专利说明】一种用于生成协议测试序列的方法

【技术领域】
[0001] 本发明涉及网络协议测试【技术领域】,具体地说,涉及一种基于流水线扩展有限状 态机的用于生成协议测试序列的方法。

【背景技术】
[0002] 协议测试技术是保证网络通讯协议正确实现以及不同的网络设备之间正确互连 的重要手段。一致性测试是基本的协议测试方法,其目标是检测协议实现是否与协议规范 相一致。
[0003] 基于形式化方法的测试生成是这一领域中的重要问题,其目标是从协议规范的形 式化模型出发,生成用于测试活动的测试集(或测试序列)。在大多数已提出的测试生成技 术中,其基本思想是将被测系统(System Under Test,简称SUT)模型化为一个有限状态机 或扩展有限状态机的系统,进而生成测试序列。
[0004] 现有技术中基于扩展有限状态机的测试序列生成方法仅考虑单一进程模型情形, 对于具有多个相互关联的进程的流水线情形没有涉及。后者只能通过穷举多个进程的各种 组合,并对各种组合分别建立组合模型加以解决,建模的规模难以接受,并且给后续的测试 生成造成了障碍。


【发明内容】

[0005] 本发明所解决的技术问题之一在于现有技术中基于扩展有限状态机的测试序列 生成方法对于具有多个相互关联的进程的流水线情形,存在局限于穷举进程组合,针对各 种进程的组合进行建模而导致建模规模庞大,不利于协议测试的缺陷。
[0006] 本发明提供了一种用于生成协议测试序列的方法,包括以下步骤:
[0007] 针对待测试网络设备的协议规范构建包括与所述协议规范对应的数据组件状态 机以及信道集合的流水线扩展有限状态机模型;
[0008] 根据所述流水线扩展有限状态机模型提取抽象组件数据图,所述抽象组件数据图 包括表示所述数据组件的顶点,表示所述信道集合的有向边以及所述流水线扩展有限状态 机模型的入口点和出口点;
[0009] 基于抽象组件数据图生成覆盖所有有向边的,处于所述流水线扩展有限状态机模 型的入口点和出口点之间所有数据路径;
[0010] 遍历全部数据路径分别生成访问所述数据路径中全部数据组件的测试序列。
[0011] 根据本发明的一个实施例,所述数据组件状态机表示为描述数据组件的多个并行 协议进程的数组,该数组包括数据组件的状态集合参数、输入参数、输出参数和状态变迁集 合参数。
[0012] 根据本发明的一个实施例,所述流水线扩展有限状态机模型进一步包括表示待测 网络交换机中流表缓存的共享变量。
[0013] 根据本发明的一个实施例,所述根据所述流水线扩展有限状态机模型提取抽象组 件数据图包括:
[0014] 忽略所述数据组件状态机的变迁过程,提取由所述有向边连接的多个顶点、入口 点和出口点而构成的抽象组件数据图;
[0015] 删除抽象组件数据图中未处理数据报文的数据组件对应的顶点,以及无数据报文 通过的信道对应的有向边;
[0016] 在抽象组件数据图中增加共享变量顶点用于表示所述共享变量数据组件,并增加 共享变量有向边来表示所述共享变量数据组件与其他数据组件之间的信道。
[0017] 根据本发明的一个实施例,所述基于抽象组件数据图生成覆盖所有有向边的,处 于所述流水线扩展有限状态机模型的入口点和出口点之间所有数据路径包括:
[0018] 当前顶点参数初始化,以所述入口点参数作为当前顶点的初始参数;
[0019] 当前顶点参数更新,在抽象组件数据图中选定当前顶点的下一顶点,在下一顶点 不为出口点且不为空白点的情况下,用下一顶点的参数更新当前顶点的参数;在下一顶点 为空白点的情况下,用未访问的兄弟顶点的参数更新当前顶点的参数;
[0020] 重复执行当前顶点参数更新步骤,在下一顶点为出口点的情况下,记录由入口点 到出口点数据路径。
[0021] 根据本发明的一个实施例,在所述遍历全部数据路径分别生成访问所述数据路径 中全部数据组件的测试序列的步骤中,
[0022] 选定一条数据路径中的待测数据组件,根据待测数据组件输入信道的预设输入参 数和输出信道的预设输出参数在待测数据组件状态机中查找状态变迁;
[0023] 在待测数据组件状态机中查找由初始状态到所述状态变迁的起始状态的前导路 径;
[0024] 由所述状态变迁和前导路径确定待测数据组件的测试序列。
[0025] 根据本发明的一个实施例,所述共享变量有向边表示所述共享变量数据组件与向 共享变量写入数据的数据组件之间的信道,和/或
[0026] 所述共享变量数据组件与从共享变量读出数据的数据组件之间的信道。
[0027] 根据本发明的一个实施例,所述数据组件包括下述各项中的一项或者多项:
[0028] 网络交换机的监控器、网络交换机流表中的一般流表项、数据匹配组件、数据失配 组件。
[0029] 根据本发明的一个实施例,所述一般流表项数据组件状态机包括下述各种状态的 一种或者几种:
[0030] 添加数据流并转发数据、添加数据流并跳转至其他流表、添加数据流并丢弃数据 报文、修改数据流并转发数据、修改数据流并跳转至其他流表、修改数据流并丢弃数据报 文。
[0031] 根据本发明的一个实施例,所述数据失配组件状态机包括下述各种状态的一种或 者几种:
[0032] 添加数据流并上传数据、添加数据流并跳转至其他流表、添加数据流并丢弃数据 报文、修改数据流并上传数据、修改数据流并跳转至其他流表、修改数据流并丢弃数据报 文。
[0033] 本发明的有益效果在于,针对具有多个相互关联的进程的流水线情形,提供一种 基于流水线扩展有限状态机模型,能够保证覆盖模型中全部数据路径。本发明将流水线扩 展有限状态机模型抽象为仅仅描述数据组件和信道的组件数据图,删除了不处理数据流的 相关组件和信道,简化了测试方法。此外,通过将数据组件内部的状态变迁过程简化为前导 路径,仅仅考虑抽象组件数据图中的数据路径,能够减缓状态爆炸问题。
[0034] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书以及附图中所特别指出的结构来实现和获得。

【专利附图】

【附图说明】
[0035] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0036] 图1是根据本发明实施例的用于生成协议测试序列的方法的步骤流程图;
[0037] 图2是根据本发明实施例的使用流水线扩展有限状态机描述的OpenFlow协议的 交换机模型示意图;
[0038] 图3是根据本发明实施例的一般流表项数据组件状态机FEi的状态变迁示意图;
[0039] 图4是根据本发明实施例的数据失配组件状态机TMi的状态变迁示意图;
[0040] 图5是根据本发明实施例的提取抽象组件数据图的步骤流程图;
[0041] 图6是根据图2所示的交换机模型提取的抽象组件数据图;
[0042] 图7是根据本发明实施例的生成数据路径的步骤流程图;
[0043] 图8是根据本发明实施例的生成测试序列的步骤流程图;
[0044] 图9是根据本发明实施例的一条数据路径的示意图。

【具体实施方式】
[0045] 为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步 地详细说明。
[0046] 本发明的实施例提供一种基于流水线扩展有限状态机的用于生成协议测试序列 方法,该方法确保对流水线扩展有限状态机模型所描述流水线系统的覆盖,同时减缓状态 爆炸问题。
[0047] 以下参照图1详细说明本实施中提供的用于生成协议测试序列方法。
[0048] 首先在步骤S110中,针对待测试网络设备的协议规范构建包括与所述协议规范 对应的数据组件状态机以及信道集合的流水线扩展有限状态机模型。其中,所述数据组件 状态机表示为描述数据组件的多个并行协议进程的数组,该数组包括数据组件的状态集合 参数、输入参数、输出参数和状态变迁集合参数。
[0049] 现有技术中扩展有限状态机(Extended Finite State Machine,简称EFSM)广泛 用于描述网络协议。但是,有些协议规范在一个网络实体中包含多个非通信的并行进程,因 此需要使用并行扩展的有限状态机来模拟协议规范。
[0050] 本实施例中提出用流水线扩展有限状态机(Pipelined Extended Finite Machines,简称为Pi-EFSM)来描述一个网络实体中的多个非通信并行进程。首先构建流水 线扩展有限状态机模型,用PL表示。PL是一个四元组,PL= (M,ST,C,VS)。四元组中各参 数的含义如下文所述。
[0051] Μ是由η个组件状态机组成的集合,M = {Mi,M2,…,Mn},各组件状态机用于描述各 协议进程的规范。其中,各组件状态机用吣表示,i = 0, 1,…,η, 是一个八元组,]\^ = (S,s0, VSK,VSW I,0, T)。
[0052] 在八元组吣中,S是吣的有限状态集合;
[0053] sQ e S,是吣的初始状态;
[0054] % = (Vn,Vi2,…Vik,…,Vin),其中V ik是所有定义与使用均在吣内部的变量,称为 内部变量,k = 1,2,…,η,η为正整数,%是吣所有内部变量的集合;
[0055] % G Μ,其中VSK是在吣内部可读取的共享变量的集合;
[0056] ,其中VSW是在吣内部可修改的共享变量的集合;
[0057] I =⑴,12,…Ik,…,In),其中Ik是吣的一个输入符号,k = 1,2,…,η,η为正整 数,I是%所有输入符号的集合,I为非空集合;
[0058] 0 = ((^(?,…0k,"·,0η),其中(\是吣的一个输出符号,k = 1,2, ···,!!,η为正整 数,〇是%所有输出符号的集合,0为非空集合;
[0059] T = (1\,T2,…Tk,…,Tn)是%所有变迁的集合,T为非空集合,其中T k是%的一 个变迁,k = 1,2,…,η, η 为正整数,Tk 是一个六元组,Tk = (sstart, send, Ik, 0k, P, A)。
[0060] 在Tk的六元组中,Sstart e S,是Tk的初始状态;smd e S,是Tk的末状态;Ik e I, 是Tk的输入符号;0k e 〇,是Tk的输出符号;P是关于%中的内部变量、VE*的外部变量、 输入I k和一些常量的谓词表达式,P说明了 Tk执行的条件;A是Tk执行时的行为序列,A包 括变量赋值行为和输出行为中的一项或多项,A中的多项行为按顺序执行。
[0061] 此外,在流水线扩展有限状态机模型PL中,ST是流水线中流表层级的有限集合, 根据网络交换机中的多级流表,每个流水线扩展有限状态机模型可以划分为1或多个流表 层级,每个流表层级包含1或多个Μ中的组件状态机。C是信道的有限集合,每个信道将一 个组件状态机与外部环境或其他状态机相连接。VS是共享变量的有限集合,共享变量是全 局变量,不属于特定的组件状态机。
[0062] 图2为使用流水线扩展有限状态机描述的OpenFlow协议的交换机模型示意图。图 2中未体现数据组件状态变迁的具体细节。图2中的控制器是外部环境的实体,不属于交换 机的组件;入口点和出口点是交换机与外部环境接口的抽象,不属于交换机的组件;监控 器是交换机的组件,负责与控制器交互控制消息;流表0、流表1和流表2表示交换机中的 多级流表,对应流水线扩展有限状态机的不同流表层级;图2中的Μ^α = 0, 1,2)是交换 机各流表中负责进行数据匹配的组件;FEi (i = 0, 1,2)组件是交换机各流表中的一般流表 项;TMi (i = 0, 1,2)组件是交换机各流表中的失配表项;BUFi (i = 0, 1,2)是共享变量,代 表交换机各流表中的缓存,不属于组件状态机。图2中虚线表示外部控制器与交换机监控 器、交换机内部数据组件的控制数据的流向,实线表示交换机内部业务数据的流向。
[0063] 图3是本实施例中一般流表项数据组件状态机FEi的状态变迁示意图,其中FEi的 状态变迁详见表1。图4是本实施例中数据失配组件状态机TMi的状态变迁示意图,其中 TMi的状态变迁详见表2。
[0064] 表 1
[0065]

【权利要求】
1. 一种用于生成协议测试序列的方法,其特征在于,包括以下步骤: 针对待测试网络设备的协议规范构建包括与所述协议规范对应的数据组件状态机以 及信道集合的流水线扩展有限状态机模型; 根据所述流水线扩展有限状态机模型提取抽象组件数据图,所述抽象组件数据图包括 表示所述数据组件的顶点,表示所述信道集合的有向边以及所述流水线扩展有限状态机模 型的入口点和出口点; 基于抽象组件数据图生成覆盖所有有向边的,处于所述流水线扩展有限状态机模型的 入口点和出口点之间所有数据路径; 遍历全部数据路径分别生成访问所述数据路径中全部数据组件的测试序列。
2. 根据权利要求1所述的方法,其特征在于,所述数据组件状态机表示为描述数据组 件的多个并行协议进程的数组,该数组包括数据组件的状态集合参数、输入参数、输出参数 和状态变迁集合参数。
3. 根据权利要求1或2所述的方法,其特征在于,所述流水线扩展有限状态机模型进一 步包括表示待测网络交换机中流表缓存的共享变量。
4. 根据权利要求3所述的方法,其特征在于,所述根据所述流水线扩展有限状态机模 型提取抽象组件数据图包括: 忽略所述数据组件状态机的变迁过程,提取由所述有向边连接的多个顶点、入口点和 出口点而构成的抽象组件数据图; 删除抽象组件数据图中未处理数据报文的数据组件对应的顶点,以及无数据报文通过 的信道对应的有向边; 在抽象组件数据图中增加共享变量顶点用于表示所述共享变量数据组件,并增加共享 变量有向边来表示所述共享变量数据组件与其他数据组件之间的信道。
5. 根据权利要求4所述的方法,其特征在于,所述基于抽象组件数据图生成覆盖所有 有向边的,处于所述流水线扩展有限状态机模型的入口点和出口点之间所有数据路径包 括: 当前顶点参数初始化,以所述入口点参数作为当前顶点的初始参数; 当前顶点参数更新,在抽象组件数据图中选定当前顶点的下一顶点,在下一顶点不为 出口点且不为空白点的情况下,用下一顶点的参数更新当前顶点的参数;在下一顶点为空 白点的情况下,用未访问的兄弟顶点的参数更新当前顶点的参数; 重复执行当前顶点参数更新步骤,在下一顶点为出口点的情况下,记录由入口点到出 口点数据路径。
6. 根据权利要求5所述的方法,其特征在于,在所述遍历全部数据路径分别生成访问 所述数据路径中全部数据组件的测试序列的步骤中, 选定一条数据路径中的待测数据组件,根据待测数据组件输入信道的预设输入参数和 输出信道的预设输出参数在待测数据组件状态机中查找状态变迁; 在待测数据组件状态机中查找由初始状态到所述状态变迁的起始状态的前导路径; 由所述状态变迁和前导路径确定待测数据组件的测试序列。
7. 根据权利要求4所述的方法,其特征在于,所述共享变量有向边表示所述共享变量 数据组件与向共享变量写入数据的数据组件之间的信道,和/或 所述共享变量数据组件与从共享变量读出数据的数据组件之间的信道。
8. 根据权利要求1-7中任一项所述的方法,其特征在于,所述数据组件包括下述各项 中的一项或者多项: 网络交换机的监控器、网络交换机流表中的一般流表项、数据匹配组件、数据失配组 件。
9. 根据权利要求8所述的方法,其特征在于,所述一般流表项数据组件状态机包括下 述各种状态的一种或者几种: 添加数据流并转发数据、添加数据流并跳转至其他流表、添加数据流并丢弃数据报文、 修改数据流并转发数据、修改数据流并跳转至其他流表、修改数据流并丢弃数据报文。
10. 根据权利要求8所述的方法,其特征在于,所述数据失配组件状态机包括下述各种 状态的一种或者几种: 添加数据流并上传数据、添加数据流并跳转至其他流表、添加数据流并丢弃数据报文、 修改数据流并上传数据、修改数据流并跳转至其他流表、修改数据流并丢弃数据报文。
【文档编号】H04L12/26GK104243243SQ201410542685
【公开日】2014年12月24日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】王之梁, 姚姜源, 施新刚, 尹霞 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1