当前位置:文档之家› IPv6协议一致性测试例的设计

IPv6协议一致性测试例的设计


&./ & & &
结论 ( !"#$"#)将指出测试例的可能输出。
计算机应用
’KK* 年
点都有一个邻居缓存, 保存与它通信的所有节点的 !?@. 地址 及对应的 AB# 地址。每一对地址的绑定称为一个邻居条目, !?@. 节点通过搜寻邻居缓存条目来与其它节点建立通信。在 节点间通信的不同阶段, 对应的邻居缓存条目可能处于不同 状态。邻居缓存条目的可能状态及各状态间的转换关系如图 / 所示。图中数字表示事件及对应动作的编号, 按 CD#’/.%
!?@. 协议测试例的设计遵循以上步骤, 根据 !?@. 协议描 述选择测试目标并构造测试目标对应的测试例的实际拓扑结 构, 测试方法采用在标准化抽象测试方法基础上加以改进的
[ %’ ] 虚拟测试法 。这里主要介绍如何设计测试例的具体测试
事件。 /+ %& 测试状态和空闲状态的定义 一个 !?@. 节点对自身所处网络环境的认识主要是依靠
第 "( 卷第 . 期 ! "##( 年 . 月
文章编号: )##) $ %#&) ( "##( ) #. $ ##’" $ #(
计算机应用 Z:PLCNJM *LLR?I@N?:;K
!
_:RS "(A 8:S . *LMS A "##(
/01’ 协议一致性测试例的设计
郑红霞, 田! 军, 张玉军, 于! 东, 李忠诚 ( 中国科学院 计算技术研究所, 北京 )###&# ) 文中给出了协议一致性测试的测试例的基本框架结构和测试例设计的一般步骤, 针对 摘! 要: /01’ 协议的特点提出了 /01’ 协议一致性测试的测试例设计方案, 应用这个方案设计了 0234 发现协 议一致性测试的测试例, 对几种不同的 /01’ 协议实现进行了测试, 并给出了测试结果。 关键词: /01’ ; 协议一致性测试; 测试例设计; 0234 中图分类号:30(%(- #.! ! 文献标识码: *
[ %* ] 附录 # 中列表顺序排列 。根据 CD#’/.% 中对各状态的定
图 %& 测试例的结构
义, 选择状 态 “— — —” 作 为 测 试 例 执 行 中 的 空 闲 状 态, 状态
后测试步把 !() 从结束状态置回到一个 稳定的空闲状态。 在执行测试例的过程中, 测试体通过控 制观察点对 !() 的输入和输出进行控制和观 察, 并分析得到的输出是否与测试例预先规 定的输出相一致, 从而得到测试结论。根据 所有测试例的执行结果, 得出有关被测系统 是否具有一致性的结论。 *+ *& 测试例设计的一般步骤 设计协议一致性测试的测试例的一般步 骤如下: % )选择测试目标 协议标准中与测试目标选择相关的内容主要是协议要求 和安全考虑两部分, 这两部分内容都可最终归纳为一系列协 议实现的行为规则的集合。每条行为规则对应一个测试目 标。每个测试目标都由相应的测试例验证, 所有验证结果组 成最后的一致性测试结论。 ’ )构造测试例的实际拓扑结构 协议标准中定义的行为规则是以实际网络环境为参照 的, 在设计各测试例的网络环境时要考虑其典型性, 选取简单 而有代表性的拓扑结构作为测试例的实际拓扑结构。 * )选择测试方法 在 !,$-./. 中已被标准化的抽象测试方法有本地测试法 ( 01230) 和外部测试法 ( 45647830 ) 。本地测试法适合于在产品 内部测试; 外部测试法适合于远程的第三方测试, 又可分为分 布式 ( 9:;67:<=649) 测试法、 协调式 ( 21179:83649 ) 测试法和远程
(! 协议一致性测试的测试例设计方法
(- )! *3W 的结构 *3W 的内容直接来自于协议规范, 是描述测试过程的文 本。一个 *3W 可以具有多个测试组, 测试组用于为测试例提 供一个过程安排, 它们对测试集的规划、 开发和执行起辅助作 用。每一个测试组由若干个测试例组成, 每个测试例又含有 一系列测试步, 测试集的最小单元是测试事件。其中, 测试例 是测试集的最重要的一级, 每个测试例都有一个特定事件, 例
0/ZW 提 供 的 信 息 外,还 需 要 与 被 测 协 议 实 现 /43 ( /PLRJPJ;N@N?:; 4;OJM 3JKN) 和它的测试环境相关的信息, 即 协 议 实 现 额 外 信 息 0/\/3( 0M:N:I:R /PLRJPJ;N@N?:; J>NM@
[%] , 它作为抽象测试集的一部分提出 。 /;Q:MP@N?:; WN@NJPJ;N)
万方数据 邻居发现机制实现的。在 !?@. 协议中, 每个处在网络中的节
第2 期
郑红霞等: 75:; 协议一致性测试例的设计
= = = ; =@
[ )# ] 测试集 ; 测试执行阶段包括 /43 的 0/ZW 分析和可执行测
)! 引言
/01’ 是 /;NJM;JN 的通信协议, 它是在 /01. 运行的基础上 发展起来的更为完善的 /;NJM;JN 协议。协议一致性测试主要 验证某一种具体的协议实现是否与协议标准相一致。为了保 证各种 /01’ 实现版本与 /01’ 协议标准一致及相互之间能够 安全、 可靠地相互通信, 需要对各 /01’ 协议实现进行协议的 一致性测试, 对 0234 ( 0@NH 234, 路径最大传输单元) 发现协 议的一致性测试也是其中重要的一部分。
[(] 如证明 /43 具有某种要求的能力或某种要求实现的行为 。
"! 协议一致性测试理论
一致性测试是一种 “ 功能测试” , 它依据一个协议的描述 对协议的某个实现进行测试, 判别一个协议的实现与所对应 的协议标准是否相一致。/WX Y /7Z %’.’ 为协议的一致性测试 提供了基本方法和框架, 为测试集制定了设计步骤和描述方
一致性评价过程分三个阶段: 测试准备阶段生成抽象测试集
! ! 收稿日期: "##" $ #% $ "%! ! 基金项目: &’( 计划 ( "##)**)")#)+ ) ! ! 作者简介: 郑红霞 ( )%,, $ ) , 女, 湖南嘉禾人, 硕士研究生, 主要研究方向: 下一代互联网技术、 协议工程、 网络测试与性能评价; ! 田军 ( )%,# $ ) , 男, 博士, 副研究员, 主要研究方向: 下一代互联网技术、 网络测试; ! 张玉军 ( )%,’ $ ) , 男, 河北人, 博士生研究生, 主要研究方向: 下 ! 于东 ( )%,’ $ ) , 男, 吉林人, 硕士研究生, 主要研究方向: 网络测试; ! 李忠诚 ( )%’" $ ) , 男, 博士, 研究员, 主要研 一代互联网协议、 协议测试; 万方数据 究方向: 计算机网络、 测试、 容错计算 -
!"#’ "$%&%’%( )%*+%$,-*’. /.0& )-0. 1.023*
56789 6:;<=>?@A 3/*8 BC;A 56*89 DC=EC;A D4 F:;<A G/ 5H:;<=IHJ;<
! "#$%&%’%( )* +),-’%&#. /(01#)2).34 +1&#($( 5067(,3 )* 80&(#0($4 9(&:&#. )###&# 4 +1&#6; 450&$-’&6 3H?K L@LJM ?;NM:OCIJK NHJ I:PP:; @MIH?NJINCMJ :Q LM:N:I:R I:;Q:MP@;IJ NJKN I@KJK @;O NJKN I@KJ OJK?<; LM:IJOCMJS * NJKN I@KJ OJK?<; PJNH:O @?P @N /01’ LM:N:I:R ?K LMJKJ;NJOS 3HJ LM:L:KJO PJNH:O ?K @LLR?JO :; 0234 F?KI:1JMT 0M:N:I:R I:;Q:MP@;IJ NJKN?;< @;O NHJ I:;KJUCJ;N NJKN MJL:MN ?K <?1J; :CNS 7.8 9%$:06 /01’V LM:N:I:R I:;Q:MP@;IJ NJKNV NJKN I@KJ OJK?<;V 0234 *3W ( *]KNM@IN 3JKN WC?NJ) ; 测试操作阶段产生参数化的可执行
[’] ( 74>164) 测试法 。
图 ’& 邻居缓存条目状态转换图
“ C432E3<04” 作为测试例执行中的测试状态。 /+ ’& 前测试步和后测试步的设计 在 !?@. 协议测试中, 前测试步实现被测协议实现从状态 “— — —” 到状态 “ C432E3<04” 的转换; 测试体执行具体测试时要 保证处于 “ C432E3<04 ” 状态; 后测试步使被测协议实现回到 “— — —” 状态。从上面的状态图中可以看到, 状态 “— — —” 转换 为状态 “ C432E3<04” 有三条路径: (%) “— — —”2 “ !821>F0464” “ C432E3<04” 。 2 (’) “— — —” “ C432E3<04” 。 2 (*) “— — —” “ ,6304” “ C432E3<04” 。 2 2 而后测试步的由 “ C432E3<04 ” 状态到 “— — —” 状态的路径 是唯一的, 即 “ C432E3<04 ”2 “ ,6304 ”2“ G403H ”2“ ?71<4 ” — —” 。 2“ — 一般来说, 测试例的前测试步部分和后测试步部分的具 体测试事件就由状态图中激发上述状态转换的事件构成。但 从状态图中看到, 上述前测试步和后测试步的一般过程涉及 到多次状态转换, 需要产生很多激发这些状态转换的测试事 件, 过程比较繁杂。注意到状态图中除状态 “ !821>F0464 ” 外, 其余 状 态 都 可 经 过 事 件 I 、 J 或 %’ 的 触 发 而 转 换 为 “ C432E3<04” 状态。这几个事件及其对应的被测实现的动作 分别是: 事件 I : 收到请求的邻居宣告, 其中包含与缓存中相同的 链路层地址, 不要求覆盖原缓存; 无动作。 事件 J : 收到请求的邻居宣告, 要求覆盖原缓存; 记录新 的链路层地址 ( 若与缓存中地址不同) 。 事件 %’ : 收到上层可达性确认; 无动作。 而由 “ !821>F0464” 状态转换为 “ C432E3<04 ” 状态所通过的 事件 / 及其对应的被测实现的动作是: 事件 / : 收到请求的邻居宣告; 记录链路层地址, 发送队 列中的包。 可以看到, 只要被测实现收到适当的来自测试节点的请
/ )设计测试例的具体测试事件 根据协议特点定义测试状态和空闲状态, 选择使协议实 现到达测试状态的动作序列作为前测试步的测试事件, 选择 符合测试目标描述的行为规则的动作序列作为测试体的测试 事件, 测试体结束后选择使协议实现到达空闲状态的动作序 列作为后测试步的测试事件。
/& !?@. 协议测试例的设计
[" ห้องสมุดไป่ตู้ &] 法, 并为测试系统的实现提供了指导 。
在测试执行之前, 协议实现者应向测试方提供 “ 协议实 现一致性声明” ( 0M:N:I:R /PLRJPJ;N Z:;Q:MP@;IJ WN@NJPJ;NK, 简 称 0/ZW) , 列出其所有已实现的功能, 从而通知测试方进行何
[’] 种测试 。为测试一个协议的实现, 测试实验室除了需要由
试集的执行, 最终得到一个一致性的判决, 生成一致性测试报 告。其中 *3W 是整个协议测试的核心, 每个 *3W 规定某一标 准协议的测试目的、 测试内容和步骤, 所以 *3W 的形成决定 了测试的质量, 是测试操作和测试执行的基础。本文就主要 研究生成 *3W 尤其是其中每个具体的测试例的方法。
(- "! 测试例的结构 一个测试例由前测试步、 测试体、 后测试步组成, 见图 ) 。 每个测试步都是由一组有序的测试步和 Y 或测试事件组成的, 每个测试事件表示发送或接收一个帧或一个消息。 前测试步把 /43 置到测试体所需的初始测试状态, 空闲 状态的选择由 0/\/3 决定。 测试体是在一个测试组中, 为达到测试目的所必需的一 组测试步。一个测试判定通过 ( 0*WW ) , 或失败 ( ^*/G ) , 或无
相关主题