基于有限状态机网络协议半合法化模糊测试用例生成方法_2

文档序号:9375463阅读:来源:国知局
如图2所示为网络协议状态规则树示意图,其中状态表示层用于表示在该协议消 息md所促使的状态转移路径中的前后两个状态,消息类型表示层用于表示该协议消息m d 所属的消息类型,包括请求类消息request和应答类消息response,消息表示层包括组成 协议消息^中的所有的数据类型,子协议域表示层表示按照协议规约进行划分后得到的组 成协议消息的各个子结构;对于协议消息m d,可能有P个约束条件制约着,在生成协议消息 md的半合法畸形协议消息时,仅仅改变P个约束条件中的一个、其他约束条件不变,得到一 个m/变异后的畸形协议消息,由此共获得关于m ,的p个变异后的畸形协议消息集合{:~ mdl,~md2,~md3,…,~mdp} 〇
[0047] 步骤四:从叫的畸形协议消息集合中顺次选取~mdl至~mdp中的一个用于替代完 整的测试序列中的m d,获得一个关于^的模糊测试序列,则共获得P个关于m d的模糊测试 序列;顺次取d = 0, 1,……,n-1,获得关于m。~m n i的所有模糊测试序列。
[0048] 半合法模糊测试用例示意图如图1所示。该图示例中共有三个约束条件Cl、c 2、c3, 其中三者的交集部分为合法输入数据集合,即Ivalld= c in c 2n c3;图中σ。2为半合法输 入数据,其满足Cl、C 2两个约束条件,并且同时只违反c 3-个约束条件。
[0049] 对于网络协议来说,获取协议规约条件主要来自对协议规约文档的解析以及自身 协议实现的约束条件。结合基于有限状态机的网络协议规则树以及半合法模糊测试思想, 在构造畸形网络协议数据包时每次只违反一个约束条件,数据包的其余部分均完全符合约 束条件。依据协议规则树构造规则,协议规则树分为四层:状态表示层、消息类型表示层、消 息表示层、子协议域表示层。在构造畸形数据包时,为了更多地生成第四类模糊测试用例, 利用半合法思想作用于子协议域,让子协议域依次违反约束条件。设定子协议域集合为F ={fieldu field2,…,fieldj,与子协议域相对应的满足约束条件的取值范围集合为Ivalld =U1, i2, i3,…,in},则其半合法的模糊测试数据为让子协议域违反约束条件,取对应域合 法值的补集。
[0050]
[0051] 步骤五:将步骤四中所生成的所有的模糊测试序列作为模糊测试用例。
[0052] 实施例2、依据实施例1中的上述步骤可以看出,针对不同的测试序列生成网络协 议状态机的模糊测试序列时,测试序列中所有的状态转换路径都要经过半合法算法,这样 就会导致在不同的测试序列之间存在着相同的状态转换路径,从而在半合法算法构造状态 转换路径的畸形协议消息时,生成过多的冗余模糊测试序列,造成测试集数量过大,测试时 间延长,生成的测试集质量不高等缺点。为了避免此情况的发生,需要对网络协议状态机的 状态转换路径进行"标记"处理,在生成模糊测试序列时根据标记符来决定是否对此状态转 换路径进行模糊测试,从而达到缩减生成的模糊测试序列集合的规模大小的目的。
[0053] 在建立基于有限状态机的网络协议模型时,进一步增加 L = {1。,I1, I2,…,In J作 为为状态转移路径的标记变量,与状态转移路径一一对应,表示是否已经进行过该状态转 移,初始值设定为false ;
[0054] 则在进行一个关于叫的模糊测试序列的生成过程中,判断该序列中每条状态转移 路径对应的标记变量,若为false,则将该条状态转移路径生成至该序列中,并将其标记变 量置为true ;
[0055] 若为true,则在该序列中不再生成该条状态转移路径,并保持其标记变量为true 不变。
[0056] 算法的伪代码下所示,同时预先设定以下变量:
[0057] Edges ={网络协议有限状态机状态转换路径集合},
[0058] TS ={获得的网络协议有限状态机的测试序列集},
[0059] Results ={生成的网络协议模糊测试用例集}
[0060] 算法1.状态转换路径标记算法
[0061] Input: Edges, TS
[0062] Output:Results
[0063] I. while TS is not empty do
[0064] 2. SELECT and REMOVE t from TS ;
[0065] 3. while edge in t do
[0066] 4. SEARCH the match edge in Edges ;
[0067] 5. if edge' s flag is not TRUE
[0068] 6. SET the edge' s flag to be TRUE ;
[0069] 7. CALL the semi-valid model to GENERATE a test case for t ;
[0070] 8. Results - Results+t' ;
[0071] 9. end
[0072] 10. end
[0073] 11. end
[0074] 综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。
【主权项】
1. 基于有限状态机网络协议半合法化模糊测试用例生成方法,其特征在于,包括如下 步骤: 步骤一:在基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过程,构 建基于有限状态机的网络协议模型: 所述基于有限状态机的网络协议模型为Pfsni=〈S。,S,M,F>,其中: S。表示有限状态机的状态集合的初始状态; S = {s。,S1, S2, ...,sn J,表示整个有限状态机的状态集合,其中s。~s n :表示n个状 态; M = {m。,Iii1, m2,…,mm J,表示促使有限状态机发生状态转移的协议消息集合,其中m。~ mm i表示m个协议消息; F为状态转移函数,表示状态转移路径(SDm^sk); i G [〇, n_l],j G [0, m_l],k G [0, n_l]; 步骤二:建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态机中 所有状态转移路径组成的集合; 步骤三:构造协议消息md变异后的畸形协议消息集合{~m dl,~md2,~md3,…,~ mdp},其中p为m/变异后的畸形协议消息数量;其中d为正整数且取遍区间[0, m-1]; 所述构造协议消息m/变异后的畸形协议消息集合时,将协议消息采用四层结构表示, 四层从上至下分别为:状态表示层、消息类型表示层、消息表示层、子协议域表示层;其中 所述状态表示层用于表示在该协议消息叫所促使的状态转移路径中的前后两个状态,所述 消息类型表示层用于表示该协议消息叫所属的消息类型,包括请求类消息request和应 答类消息response,所述消息表示层包括组成协议消息m d的所有的数据类型,所述子协议 域表示层表示按照协议规约进行划分后得到的组成协议消息的各个子结构;对于协议消息 m d,有p个约束条件制约着,在生成协议消息md的半合法畸形协议消息时,仅仅改变p个约 束条件中的一个、其他约束条件不变,得到一个m/变异后的畸形协议消息,由此共获得关于 1^的p个变异后的畸形协议消息集合{~m dl,~md2,~md3,…,~mdp}; 步骤四:从叫的畸形协议消息集合中顺次选取~mdl至~mdp中的一个用于替代所述完 整的测试序列中的md,获得一个关于^的模糊测试序列,则共获得P个关于m d的模糊测试 序列; 顺次取d = 0, 1,……,n-1,获得关于m。~m n i的所有模糊测试序列; 步骤五:将步骤四中所生成的所有的模糊测试序列作为模糊测试用例。2. 如权利要求1所述的基于有限状态机网络协议半合法化模糊测试用例生成方法,其 特征在于,在建立基于有限状态机的网络协议模型时,进一步增加L = {1。,I1, I2,…,In J 作为状态转移路径的标记变量,与状态转移路径一一对应,表示是否已经进行过该状态转 移,初始值设定为false ; 则在进行一个关于^的模糊测试序列的生成过程中,判断当前序列中每条状态转移路 径对应的标记变量,若为false,则将该条状态转移路径生成至前序列中,并将其标记变量 置为true ; 若为true,则在当前序列中不再生成该条状态转移路径,并保持其标记变量为true不 变。
【专利摘要】本发明公开了基于有限状态机网络协议半合法化模糊测试用例生成方法,包括如下步骤:基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过程,构建基于有限状态机的网络协议模型;然后建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态机中所有状态转移路径组成的集合;构造协议消息md变异后的畸形协议消息集合;从md的畸形协议消息集合中顺次选取其中的一个用于替代所述完整的测试序列中的md,获得一个关于md的模糊测试序列,则共获得p个关于md的模糊测试序列;最终获得关于m0~mn-1的所有模糊测试序列作为模糊测试用例。使用本发明能够获得更细粒度的网络协议模糊测试用例。
【IPC分类】G06F11/36
【公开号】CN105095075
【申请号】CN201510420047
【发明人】胡昌振, 马锐, 纪文东, 薛静锋, 胡晶晶
【申请人】北京理工大学
【公开日】2015年11月25日
【申请日】2015年7月16日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1