您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 一种基于ttcn-3 的协议测试系统及其扩展研究
中国科学E辑:信息科学2008年第38卷第10期:1594~1613的协议测试系统及其扩展研究尹霞①③*,王之梁②③,景传明①③,施新刚②③①清华大学计算机科学与技术系,北京100084;②清华大学信息网络工程研究中心,北京100084;③清华信息科学与技术国家实验室(筹),北京100084*E-mail:yxia@mail.tsinghua.edu.cn收稿日期:2008-06-03;接受日期:2008-06-30国家重点基础研究发展计划(批准号:2003CB314801)和国家自然科学基金(批准号:60572082)资助项目摘要用户要求下一代互联网是一个更大、更安全、更快、更及时、更方便、更可管理的网络.为下一代互联网服务的协议测试技术需要适应这些测试需求.文中重点研究了协议测试中的测试集描述法和测试实现技术.选取了TTCN-3作为测试集描述法,并针对协议鲁棒性测试需求进行了语法和语义扩展.开发了基于TTCN-3的协议集成测试系统PITSv3,并对其进行了鲁棒性测试扩展实现.最后通过两个实际的测试应用,体现出PITSv3是一个具有通用性、标准性、可扩展性特点的分布式测试平台.关键词协议测试TTCN-3PITSv3鲁棒性测试互联网已成为现代社会昀重要的信息基础设施,不断涌现的应用需求、快速扩张的网络规模都推动着世界走向下一代互联网.面对着新协议、新技术、新产品的不断涌现,为了保障下一代互联网的可靠健壮,协议测试是一个很重要的研究领域.对于下一代互联网,用户希望是一个更大、更安全、更快、更及时、更方便、更可管理的网络.新的协议测试技术需要适应下一代互联网的需求.协议测试的研究涉及了协议描述、测试生成、测试集描述法、测试实现等多个环节,本文将重点研究其中的测试集描述法和测试实现技术.测试和测试控制表示法TTCN-3[1](testingandtestcontrolnotation)是目前昀适于描述下一代互联网协议测试的形式化测试集描述法,但还是有很多不能满足的测试需求,比如协议鲁棒性测试需求.下一代互联网要求更安全,协议实现就需要加强对异常事件的处理能力,鲁棒性的测试就提供了这种测试能力.为此需要对TTCN-3进行必要的语法和语义扩展,以增强其测试描述能力.本文以面向协议鲁棒性测试的中国科学E辑:信息科学2008年第38卷第10期1595TTCN-3扩展为例研究了TTCN-3语言的扩展方法.在此基础上,本文研究了测试实现技术,设计开发了一个基于TTCN-3的分布式协议集成测试系统平台,同时在该系统中实现了相应的TTCN-3扩展.同国外的TTCN-3商用工具比较,PITSv3不仅做到了功能全面、界面友好,尤其是在可扩展性、支持新协议测试需求、支持多机分布式测试方面具有优势.全文结构如下:第1节介绍相关研究工作.第2节扩展了TTCN-3的语法和语义,使得TTCN-3首次能够提供鲁棒性测试能力.第3节设计实现了基于TTCN-3的协议集成测试系统PITSv3(protocolintegratedtestsystem).PITSv3是一个完整的TTCN-3测试系统,是具有通用性、标准性、可扩展性特点的分布式测试平台.第4节介绍了PITSv3在BGPv4+一致性测试和OSPFv2鲁棒性测试方面的应用情况.昀后是全文的总结.1相关工作Piatkowski[2]在1981年提出“协议工程学”的概念后,协议测试是其中昀活跃的研究分支.在协议测试的发展历程中,形式化技术和方法一直贯穿其中.本文是对基于形式化技术的协议测试中测试集描述法和测试实现技术的研究.1.1小节采用集合论和标号变迁系统简要定义了协议测试,说明了协议测试的过程;1.2小节介绍了测试集描述法的昀新研究成果;1.3小节介绍了测试实现技术的昀新研究成果.1.1协议测试概述协议测试实际上是对协议的“完成关系(implementationrelation)”的测试,即被测试者是否实现了预定的目标.本文将首先用集合论和标号变迁系统来介绍协议测试[3].完成关系存在于被测试方和协议之间,任何一次测试活动都是有目的,就是测试需求.用测试需求来表述协议测试更易于理解,也更易于实现.令SPECs表示某个协议的各种形式化描述的集合,其中的元素s表示某种测试需求的某个形式化定义,则s∈SPECs.所有测试需求的形式化说明的集合标识为REQs.那么对于某个协议的某个具体的形式化描述s∈SPECs,它的测试需求的形式化说明的集合R⊆REQs.r∈R表示某个单一的测试需求.则所有协议的形式化描述的集合SPECs是所有测试需求的形式化说明的幂积,即SPECs=P(REQs).被测试方是一些具体的物理实现,假设都可以通过形式化模型集合MODs中的某个形式化对象mU-T来建模,mU-T∈MODs.这样,讨论被测试方与协议之间的关系,就可以转化为讨论被测试方对应的形式化模型mU-T和形式化的协议说明s之间的关系了.定义1完成关系imp.imp⊆MODs×REQs⊆MODs×SPECs.如果被测试方的形式化模型mU-T∈MODs与测试需求R⊆REQs之间满足完成关系,即mU-TimpR,即表示被测试者U-T∈UTs实现了测试需求R⊆REQs.另,用MR表示所有满足完成关系的被测试方的形式化模型的集合,即MR=def{m∈MODs|mimpR};而MR=defMODs/MR表示MR的差集(补集).测试所采用的依据就是测试经验,其形式化定义可标识为TESTs.测试中的实际经验被尹霞等:一种基于TTCN-3的协议测试系统及其扩展研究1596包含在测试例tcase中,若干测试例的集合构成测试集T,而测试集是TESTs中的一个元素.换句话说TESTs是测试例的集合的集合,即有tcase∈T∈TESTs.利用测试例,对一个具体的被测试方进行测试的过程称为测试执行.通过测试执行将得到观测数据集合OBs中一个观测数据.每个观测数据,都将通过判决函数Verdict得到一个判决.定义2判决函数Verdict.Verdicttcase:OBs→{PASS,FAIL,INCONCLUSIVE}.其中PASS表示测试判决为“成功”,FAIL表示测试判决为“失败”,INCONCLUSIVE表示测试判决为“未定判决”.下面,利用标号变迁系统对上述定义进行描述.定义3标号变迁系统LTS.标号变迁系统LTS是一个4元式S,L,T,s0,其中:S是一个状态的集合;L是一个外部可观察动作的集合;T⊆S×{L∪{τ}∪{δ}}×S是变迁的集合,其中τ表示不可观察的内部动作,δ表示成功的结束.T中的元素(s,u,s′)可以记为:,uss′⎯⎯→其中s,s′∈S,u∈L∪{τ}∪{δ};s0为初态.令S,L,T,s0为一标号变迁系统,运算符‘⋅’表示接续运算,若12nuuuσ=⋅⋅⋅是一串L中标号的接续,则σ就是L*上的一个迹(Trace),L*是所有迹的集合.⇒表示了在两个状态s,s′之间的状态变迁.定义4迹Trace.ssσ′⇒表示通过执行可观察动作序列迹σ,状态s可以变迁到状态s′.则迹的形式化定义为:traces(s)=def{σ∈L*|∃s′:ssσ′⇒}.从状态s的可达状态集合的定义为:der(s)=def{s′|∃s′:ssσ′⇒}.对于S′⊆S而言,S′中的初始状态集合定义为:init(S′)=def{x∈L|∃s′∈S′:ssσ′⇒}.执行了迹σ后的可达状态集合定义为:safterσ=def{s′|ssσ′⇒}.测试需求的定义.可以用L的所有标号变迁系统REQs来表示协议的形式化定义集合SPECs,即:REQs=LTSs(L).被测试方的定义.由于大多数系统通信时都是将输入/输出动作分开研究,被测试方的形式化模型MODs将采用输入输出变迁系统IOTS来定义.可观察动作集合L被分成输入动作集合LIN和输出动作集合LOUT,则:MODs=IOTS(LIN,LOUT),而且IOTS(LIN,LOUT)⊆LTS(LIN∪LOUT).测试的定义.对于LIN和LOUT的测试是一个6元组S,LIN,LOUT,T,vt,s0,其中S,(LIN∪LOUT),T,s0∈LTS(LIN∪LOUT)是一个在LIN和LOUT上确定的有限行为的标号变迁系统;而vt:der(s0)→{PASS,FAIL,INCONCLUSIVE}是可达状态t的的判决函数.当对被测试方进行测试的时候,或者是从被测试方得到输出,或者是向它输入,或者是死锁.即任何测试都满足:∀s′∈der(s0):init(s′)={a}⊆LIN或者init(s′)=LOUT或者init(s′)=∅.完成关系的定义.完成关系是在测试需求REQs和被测试方的形式化模型MODs之间的中国科学E辑:信息科学2008年第38卷第10期1597一种关系,对于L⊆(LIN∪LOUT),完成关系标识为impL.令mU-T∈IOTSs(LIN,LOUT),R∈LTSs(LIN∪LOUT),L⊆(LIN∪LOUT),则有:mU-TimpLR=def∀σ∈L:out(mU-Tafterσ)⊆out(Rafterσ).其中,out为输出函数.如果对于每个σ∈L而言,被测试方mU-T在完成协议需求R后可以得到正确的输出,那么mU-T在R和完成关系impL下就是正确的.在明确了协议测试的定义后,可以得到协议测试的过程,如图1所示.从协议标准中利用测试生成技术得到抽象测试集,抽象测试集需要采用适宜的描述法表达,通过协议实现得到可执行测试集,进行测试执行,昀后得到测试判决.图1协议测试过程图本文将采用形式化技术重点研究其中的协议测试实现技术和与其紧密相关的抽象测试集描述法.1.2测试集描述法研究进展测试生成是从用自然语言描述的协议标准生成测试集的过程,是测试实现的基础.测试集描述法在测试方法学中起着承上启下的重要作用,是连接测试生成和测试执行的纽带.一个好的测试集描述法不仅有利于提高测试执行的自动化程度,也有利于测试开发人员手工开发测试用例.许多语言被用于测试集描述,如形式化测试描述语言TTCN[1,4],脚本语言tcl/tk,Perl,编程语言C/C++/Java等.其中,TTCN因为其突出的对测试的支持能力,易于被测试人员理解和使用而成为协议测试中广泛使用的测试集描述法.到目前为止,TTCN已经经历了3个版本.国际标准化组织ISO在其ISO/IEC-9646[4]中定义了TTCN-1,后来被ITU-T接收为标准X.292.TTCN-1结合了树型和表型表示法的优点,有静态说明部分和动态行为部分.静态说明部分专用于协议的静态信息描述,如协议数据格式、参数值、控制观测点、定时器、变量等的描述.在动态行为部分,TTCN-1定义了与消息的接收和发送相关联的操作与操作符,用于描述测试事件及其之间的时序关系.TTCN-1在当时被大量地应用,出现了很多TTCN工具,如法国VERILOG公司的Object,瑞典Telelogic公司的ITEX等尹霞等:一种基于TTCN-3的协议测试系统及其扩展研究1598工具软件.由于TTCN-1只支持单一测试部件,而网络协议的日益复杂使得其分布式特性越来越广泛,TTCN-2在不改变TTCN-1整体结构和原则的基础上,引入了主、从测试部件的概念,通过增加create和done等语句,使得TTCN-2可以支持分布式测试和多方测试.但是随着网络的飞速发展,各种新型协议和应用对测试描述能力的要求也越来越高,原有的测试描述语言TTCN-2逐渐显露出不足之处:缺乏动态配置能力、没有同步通信能力、应用范围过窄等.欧洲电信标准化协会ETSI经过深入研究,于1999年至2002年间开发完成了TTCN的新版本TTCN-3,其昀新的版本是2007年发布的TTCN-3规范的第3版[1].TTCN-3现已作为ITU-TRec.Z.140系列发布.同TTCN前两个版本相比,TTCN-
本文标题:一种基于ttcn-3 的协议测试系统及其扩展研究
链接地址:https://www.777doc.com/doc-4266159 .html