(计算机软件与理论专业论文)基于ttcn3测试平台的编解码实现方式的研究.pdf_第1页
(计算机软件与理论专业论文)基于ttcn3测试平台的编解码实现方式的研究.pdf_第2页
(计算机软件与理论专业论文)基于ttcn3测试平台的编解码实现方式的研究.pdf_第3页
(计算机软件与理论专业论文)基于ttcn3测试平台的编解码实现方式的研究.pdf_第4页
(计算机软件与理论专业论文)基于ttcn3测试平台的编解码实现方式的研究.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机软件与理论专业论文)基于ttcn3测试平台的编解码实现方式的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内蒙古大学硕士学位论文 基于t t c n - 3 测试平台的编解码实现方式的研究 摘要 t t c n 3 作为一个测试技术已被越来越多的人所熟知。它不仅可 以进行一致性测试,还可用于多种测试,包括互操作性测试、健壮性 测试、回归性测试、系统及集成测试。t t c n 3 是一种灵活且功能强 大的测试套描述语言。 t t c n 3 测试系统由多个实体组成,包括t e 、t m 、c h 、c d 、t l 、 s a 和p a 。这些实体在t m 的管理下相互作用完成测试任务。c d 是一 个起翻译作用的实体,它提供编解码功能。c d 是t t c n 3 测试系统与 被测系统之问数据转化的桥梁。编解码依赖于测试例,为测试例实现 编解码模块是测试实施过程中一项必不可少的工作。 本文给出一种简化c d 模块的实现方法。通过填充信息的方式自 动生成编解码代码。论文的主要工作有:( 1 ) 编解码模块生成工具的 设计和实现。为自动生成编解码代码,工具由三部分内容组成:交互 界面模块,生成代码模块、生成代码的辅助类库。( 2 ) t c i 标准编解 码接口的实现。t e 按t c i 标准编解码接口使用c d 实体的编解码功能, 这就需要基于该工具实现t c i 标准编解码接i t c i e n c o d e 和t c i d e c o d e 。 关键词:t t c n 3 ,编解码,t c i ,测试系统,生成工具 基于t t c n 一3 测试平台的编解码实现方式的研究 t h er e s e a r c ho ft h er e a l i z a t i o no ft h e c o d e ci nt t c n 3t e s t i n gp l a t f o r m a b s t r a c t a sat e s tt e c h n o l o g y ,t t c n 一3h a sb em o r ea n dm o r ef a m i l i a rt op e o p l e i tc a l l n o to n l yi m p l e m e n tc o n f o r m a n c et e s t i n g ,b u ta l s ob eu s e df o rav a r i e t yo ft e s t i n g , i n c l u d i n gi n t e r o p e r a b i l i t yt e s t i n g ,r o b u s t n e s st e s t i n g ,r e g r e s s i o nt e s t i n g ,s y s t e ma n d i n t e g r a t i o nt e s t i n g t t c n 一3i saf l e x i b l ea n dp o w e r f u ll a n g u a g ew h i c hi su s e dt o d e s c r i b et h et e s ts u i t t t c n - 3t e s ts y s t e mi sc o m p o s e do fan u m b e ro fe n t i t i e s ,i n c l u d i n gt e ,t m ,c h , c d ,t l ,s aa n dp a u n d e rt h em a n a g e m e n to ft m ,t h ei n t e r a c t i o n so ft h ee n t i t i e s p r o d u c e dt e s tt a s k t h ec di st h ee n t i t yw h i c ht a k e sat r a n s l a t i o nr o l e t h ec di sa b r i d g eo fd a t ac o n v e r s i o nb e t w e e nt t c n - 3t e s ts y s t e ma n dt h es y s t e mu n d e rt e s t t h e e n c o d i n g j 7 d e c o d i n gi sd e p e n d e do nt e s tc a s e s t ow r i t ee n c o d i n g d e c o d i n gc o d ef o r t e s tc a s e si sa ne s s e n t i a lw o r ki nt e s ti m p l e m e n t a t i o n i nt h i st h e s i s ,i tb r i n g so u ta ni m p l e m e n t a t i o nm e t h o do fs i m p l i f i e dc de n t i t y i t a u t o m a t i c a l l yg e n e r a t e dt h ee n c o d i n g d e c o d i n gc o d ew i t h f i l l e di n f o r m a t i o n t h e m a i nw o r ko ft h i st h e s i s :( 1 ) t h ed e s i g na n di m p l e m e n t a t i o no ft h et o o lo ft h ec o d c c m o d u l e i no r d e rt oa u t o m a t i c a l l yg e n e r a t ec o d e cc o d e ,t o o ls h o u l di n c l u d et h r e es u c h f u n c t i o n s :i n t e r f a c em o d u l e ,g e n e r a t i n gc o d em o d u l e ,s u p p o r t i n gl i b r a r yo fg e n e r a t e c o d e ( 2 ) t h ei m p l e m e n t a t i o no ft c i - c d t h ep r o v i d e di n t e r f a c eo ft c i c df o rt e i sp r o v i d e df o rt et oc o m p l e t ec o d i n ga n dd e c o d i n gf u n c t i o n s ,a n di tr e q u i r e st h e i m p l e m e n t a t i o no f t c i - c dt h a ta l et c i e n c o d ea n dt c i d e c o d eb a s e do nt h et 0 0 1 k e y w o r d :t t c n 一3 ,c o d i n g d e c o d i n g ,t c i ,t e s ts y s t e m ,g e n e r a t o r u 内蒙古大学硕士学位论文 图表目录 图1 1 在n o k i a 使用t t c n 3 的用户数目2 图2 1 核心语言和各种表示格式的用户视图5 图2 2t t c n 3 测试系统的通用结构7 图2 3t t c n 3 测试配置的概念化视图1 1 图2 - 4t t c n 3 测试系统用例图1 3 图3 1d n s 协议格式1 6 图3 2d n s 协议报头内容1 7 图3 3r r s 的格式1 7 图4 1 编解码生成工具生成c o d e c 流程2 2 图4 2c o d e c 工具顺序图。2 3 图4 3 界面数据流程图2 5 图4 4 工具界面设计图2 6 图4 _ 5 类库结构。2 8 图5 1 编码顺序图3 8 图5 2 解码时序图4 0 图6 1 填充后的界面4 9 表2 1t t c n 3 类型一览表6 表2 2 通信配置操作1 2 表5 1t c i c dr e q u i r e d 接口3 7 表5 2t c i c dp r o v i d e d 接口3 7 表6 1 填充字段表。4 7 表6 2 部分填充数据4 8 表6 3 完整填充数据4 8 v 原创性声明 本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成 果。除本文己经注明引用的内容外,论文中不包含其他人己经发表或撰写过的研究成果, 也不包含为获得凼苤直太堂及其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意! 学位论文作者签名:亚搜:指导教师签名: 蔓墨豸: 学位论文作者签名: 弭童孟:指导教师签名: 垄型荭: e l 期:塑篮6 园9 囵 e l 期:兰= 塑:查:竺 在学期间研究成果使用承诺书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:内蒙古大学有权 将学位论文的全部内容或部分保留并向国家有关机构、部门送交学位论文的复印件和磁盘, 允许编入有关数据库进行检索,也可以采用影印、缩印或其他复制手段保存、汇编学位论 文。为保护学院和导师的知识产权,作者在学期间取得的研究成果属于内蒙古大学。作者 今后使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的同意; 若用于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。 学位论文作者签名: 韭基 e l i 期:巡圈旦日 指导教师签名:芝 曼叠: e l 期:竺翌:墨! 内蒙古大学硕士学位论文 第一章引言 t t c n 3 ( t h et e s t i n ga n dt e s tc o n t r o ln o t a t i o nv e r s i o n3 ) 是一个标准的测试规 范,同时也是一种执行语言,它是一种平台独立的、普遍的、强大的测试技术。 t t c n 3 不局限于一致性测试,也可用于互操作性测试、健壮性测试、回归测试、 系统和集成测试等领域。典型的应用是协议测试( 包括移动和因特网协议) 、服 务测试、模块测试、基于c o r b a 的平台测试、a p i 测试等。 1 1t t c n 的发展及应用 2 0 0 0 年欧洲电信标准协会( e t s i ) 颁布了新一代测试描述语言t t c n - 3 修订版标准,t t c n - 3 将替代i s 09 6 4 6 - 3 标准中定义的协议测试描述语言t t c n - 2 ( t r e ea n dt a b u l a rc o m b i n e d n o t a t i o ne d i t i o n2 ) 。t t c n - 3 不但在名称上和 t t c n - 2 有所不同,而且其语法、操作语义和应用领域也有很大的变化3 。 t t c n - 2 是i s o 为描述0 s i 协议一致性测试而颁布的一种语言。t t c n - 3 将应 用领域扩展到协议测试、服务测试、软件模块测试等。对于协议测试,t t c n 一3 不仅用于一致性测试,还可用于互操作测试、性能测试等。 如何实现符合t t c n - 3 标准的测试软件,使之可以为协议工程中的测试环节服 务,是国内外协议测试领域活跃的课题n 9 1 。 t t c n - 3 现在已成为目前欧美先进通讯厂商通讯协议测试的主流,包括n o k i a 、 c is c o 等都在使用,且用户比例在逐年升高。如图1 - 1 ,所示在n o k i a ,使用t t c n - 3 的用户在逐年上升。国际上许多公司都努力开发其相关工具和产品,主要厂商和 系匀! 有d a n e t 、0 p e n t t c n t e s t e r 、t e l e l o g i c t a ut e s t e r 、t e s ti n g t e c h t t w o r k b e n c h 。 基于t t c n 3 测试平台的编解码实现方式的研究 图1 - 1 在n o k i a 使用t t c n 3 的用户数目 f i g u r e l 一1n u m b e ro ft t c n 一3u s e r sa tn o k i a 随j 1 2t t c n - 3 编解码生成工具现状 t t c n - 3 测试系统需要c d 模块将t t c n - 3 类型值转化为位串发送给被测系统, 将从被测系统收到的数据转化成合适的t t c n - 3 值。 大部分t t c n - 3 产品都是以测试执行器为中心,以测试例为依据提供外围的 模块,这些模块包括c d 。当然也有实现c d 模块的工具,c o d e cg e n e r a t o r 就是 其中的一种。它是由i r i s a 提供的,是t 3 d e v k i t 的一部分。t 3 d e v k i t 是一个执 行a t s 的帮助工具,它提供标准t r i 与t c i - c d 接口的实现,还提供自动生成编 解码器晗。 c o d e cg e n e r a t o r 所自动生成的编解码器,还需要手工添加一部分代码,才 能完成编解码功能。虽然c o d e cg e n e r a t o r 在一定程度上减小了编写编解码代码 的工作量,但是总的来说还没有摆脱需要人工提供大量代码的工作。 1 3 论文目标 本文所研究的内容包括以下几个方面: ( 1 ) 编解码生成工具的设计。针对t t c n 一3 编解码模块的功能,设计一种可 与用户交互的编解码生成工具,可以减少测试实施的复杂性,自动生成 2 内蒙古大学硕士学位论文 编解码代码。工具包括以下几个部分:交互界面、生成代码辅助库类、 生成代码模块部分。交互界面获取用户提供信息,提取测试例中的 t t c n 3 的类型并转化成用户需要的形式,用户应该明确需要填充哪些 内容,如何去填充内容;生成代码辅助库类与t t c n 3 的类型相对应, 生成代码模块生成的类是生成代码辅助库类的子类,子类继承父类提供 方法,完成相应的功能;生成代码模块通过接收交互界面获得的数据来 生编解码所需要的类,生成类是辅助库类的子类。 ( 2 ) t t c n 3 编解码的t c i c d 接口的实现。t c i c d 接口可以提供编码、解 码两个功能,t e 调用接口无需考虑其内部。 1 4 论文结构 本文共分为七章。 第一章是引言部分主要介绍了t t c n 3 的背景和发展,同时指明了本文所关 注的研究内容。 第二章主要简单的介绍了t t c n 3 ,t t c n 3 语言,t t c n 3 的类型,体系结 构和测试配置。最后还对编解码进行了描述,让人们对编解码功能有了一个初步 的了解。 第三章对编解码问题进行分析。通过对一个例子的介绍,表明了编解码问题 的实质,指出了现在可以改进的方向。 第四章提出了一个解决问题方案,介绍一个编解码生成工具。从工具的整体 设计到各部分的设计都做出了详细的描述。通过一些算法、图、表给出了一个完 整的设计思路。 第五章给出了基于编解码生成工具的t c i c d 接口的实现方法。并对这两个 接口所涉及的辅助函数的算法进行描述。 第六章通过一个d n s 测试例的编码用例,介绍工具的使用。 第七章总结了前面几章的内容,对本文进行了归纳,同时提出了本文的不足 和局限性,以及下一步要做的工作。 基于t t c n 3 测试平台的编解码实现方式的研究 第二章t t c n - 3 简介 在设计过程中的t t c n 语言是由i t u ( 国际电信联盟) 在 i t u 0 2 中提出的。 现在的最新版本是于2 0 0 7 年发布的t t c n - 3 规范的第3 版。作为i s o 的标准的 t t c n 首次出版于1 9 9 2 年。自那时起,t t c n 语言频繁用来测试不同的技术,g s m ( 全球移动通信系统) ,d e c t ( 数字增强型无绳技术) ,i n a p ( 智能网络应用协议) , n i s d n ( 综合业务数字网) n 羽。第一个版本的t t c n 不是一种恰当的语言,而是一 种图表符号。它不能描述并发行为的测试系统,不支持包装,封装这些概念并且 也没有支持操纵外部数据如a s n 1 ( 抽象语法符号) 。所有这些都在t t c n 一2 里被 实现。t t c n - 2 ( 树和表格结合符号) 由i s o i e c ( 国际标准化组织和国际电工技 术委员会) 和i t u - t ( 国际通信联盟电信标准部门) 在1 9 9 8 年发布肺1 。 虽然t t c n 语言在不断完善中,但t t c n - 2 主要还是面向一致性测试。它不适 合其他测试,如互操作性测试,健壮性测试,回归测试,系统测试,更不能适用 于移动协议测试,服务测试和基于c o r b a 平台的测试啦0 1 。 为了解决这些问题,需要有一个适当的测试语言,e t s i ( 欧洲电信标准协会) 提出了一个新版本的t t c n ,即t t c n - 3 。t t c n - 3 标准化进程,由e t s i 和p t c c ( 协 议和测试能力中心) 主导,完成于2 0 0 0 年。新的语言是一种基于文本的语言和 有现代编程形式的语言,这些特点使它易学和易使用。t t c n - 3 语言不但继承了 最典型的编程语言的特点,而且还包括所需的测试例规范的特征引。 t t c n - 3 语言是一种自动化测试语言。自动化测试是相对于手工测试而言的, 它可以运行更多更频繁的测试,可以更好的利用资源,具有一致性和可重复性等 多个优点。然而对于自动化测试来说,也存在许多困难,包括自动测试的维护, 自动化测试工具与其他工具的互操作等等口。 2 1t t c n - 3 语言及表现形式 t t c n 一3 核心语言是一种类似于常用高级编程语言的测试语言,它除了包含一 般高级语言所共有的语言特性外,还包括一系列测试的专用语言结构和语言对 象,如并发测试组件、测试匹配机制、定时器处理、测试判决等等。t t c n 一3 的高 4 内蒙古大学硕七学位论文 级语言形式还可以与树表结合形式、m s c 图表形式相互转化n 7 1 。 t t c n 一3 有多种表达方式,包括文本格式( 核心语言) ,表格格式和图形格式, 但是表格格式和图形格式不能脱离核心语言单独使用。核心语言有三个目的: ( 1 )作为广义的基于文本的t t c n - 3 测试语言; ( 2 ) 作为t t c n 工具之间t t c n 测试套的标准化互换格式; ( 3 ) 作为各种表示格式的语义基础( 如相关,也是语法基础) 。 核心语言还提供与其他语言的接口,可以用其他语言来描述数据,可以将类 型和值的概念导入核心语言,如a s n 1 和i d l ( 接口定义语言) 。 r 谈酾卜 白语言 一寰格格式卜 i卜 一酗黻卜一 l l 【冀匏簏酗和僚 - 一一瓤眠卜一 图2 1 核心语言和各种表示格式的用户视图 f i g u r e2 1u s e r sv i e wo ft h ec o r el a n g u a g ea n dt h ev a r i o u sp r e s e n t a t i o nf o r m a t s 2 2t t c n - 3 值与类型 t t c n 一3 支持许多预定义的基本类型。这些基本类型包括与程序语言正常关联 的基本类型,如整形( i n t e g e r ) 、布尔类型( b o o l e a n ) 和串类型,也包括一些 t t c n - 3 特殊的类型,如对象标识类型( o b j i d ) 和判定类型( v e r d i c t t y p e ) 。 可以从这些基本类型中构造结构类型,如记录类型( r e c o r d ) 、集合类型( s e t ) 和枚举类型( e n u m e r a t e d ) 。 特殊的数据类型一a n y t y p e 类型定义为一个模块中所有已知类型的联合 ( u n i o n ) 。 与测试配置相关的特殊类型,如地址类型( a d d r e s s ) 、端口类型( p o r t ) 和 成分类型( c o m p o n e n t ) 。 特殊类型d e f a u l t 类型可以用于默认处理。 基于t t c n 3 测试平台的编解码实现方式的研究 还有一种特殊的类型模板,它是一组确定值的集合,提供了参数化和匹配机 制,主要用于端口之间收发消息,测试消息的值是否符合规范。 t t c n - 3 支持子类型。子类型是用户自己定义的类型,这样方便用户定义测试 数据。子类型有r a n g e ,l i s t ,l e n g t h - - - 种限制,r a n g e 表示子类型值的范围,它 是连续的;1 i s t 是值列表,它是表示离散值的范围;l e n g t h 表示一些类型的长度 例如c h a r s t r i n g ,b i t s t r i n g 等。限制是可以混合使用的,例如r a n g e 和1 i s t 它们 可以表示一个子类型的范围既有离散的,也包括范围的。 例:t y p ei n t e g e rm y i n t e g e r r a n g e ( 1 ,2 ,3 ,1 0 2 0 ,9 9 ,1 0 0 ) ; m y i n t e g e r r a n g e 是基类i n t e g e r 的子类型,它可取的值包括1 ,2 ,3 ,9 9 ,1 0 0 还有从l o 至l j 2 0 的整数。 表2 1t t c n - 3 类型一览表 t a b l e 2 。1o v e r v i e wo ft t c n 。3t y p e s 类型分类关键字子类型 简单缓奉炎塑i n t e g e rr a n g e 。l i s t c h a r r a n g e ,i i s t u n i v e r s a lc h a r r a n g e i i s l f l o a t r a n g e 1 i s t b o o l e a ni i s t 0 b j i d l i s t v e r d i c t t y p e i i s t 纂本彩炎塑 b i t s t r i n g i i s t i e n g t h h e x s t r i n gl i s t 1 e n g t h o c t e t s t r i n g i i s t ,l e n g t h c h a r s t r i n gr a n g e ,l i s t ;l e n g t h u n i v e r s a lc h a r s t r i n g r a n g e ,l i s t 。l e n g t h 绐构凳型 r e c o r di j s t r e c o r do f l i s t ,l e n g t h s e ti i s t s e to f l i s t ,l e n g t h e n u m e r a t e di i s t u n i o ni i s t 特殊c 1 ;数据炎型a n y t y p e i i s t 特绛的既凌类型 a d d r e s s p o r t c o m p o n e n t 特徕的默认类型 d e f a u l t 6 内蒙 大学硕t 学侍论文 23t t c n - 3 测试系统结构 ( p a 卜 n 几 囱墨墨墨四富一 目2 - 2t t c n 3 测试系统的通用结掏 f i g u r e22g e n e r ms t r u c t u r eo fat t c n3t e s ts v s t e m 如图2 2 所示t t c n 一3 测试系统结构主要分为这么几个实体:t m c ( 测试系统 管理和控制) 、t e ( a t 试执行器) 、s a ( 被测系统适配器) 、p a ( 平台适配器) 、s u t ( 被测系统) “1 。 对于t m c 实体,我们可以通过功能不同将其再划分成以下几个实体,t m ( 测 试管理) ,t l ( 测试日志) ,c d ( 编解码) ,c h ( 成分管理) 。 t m :t m 实体负责整个测试系统的管理。在测试系统初始化后,测试执行由 t m 实体启动。t m 负责调用恰当的t t c n 一3 模块,即如果需要为t e 产牛模块参数 或 x i t ( 执行测试额外信息) 。该实体同时还负责实现一个测试系统用广接口。 t l :t l 实体负责维护测试日志。t e 告知t l 记录测试事件日志。t l j 实体拥 有一个单向接口,通过这个接口t e 可以传递日志给t l 实体。t m 内部有一个接 口也可以用于记录由t e 产生的测试管理信息。 c d :c d 实体负责外部编解码工作。编解码数据与t e 内部基于消息或过程的 通讯有关。与内置的编解码功能不同外部的编解码模块有一个标准化接口,这个 接口使它们在不同的t t c n3 系统和工具间可移植。 基于t t c n 3 测试平台的编解码实现方式的研究 c h :c h 实体负责管理分布并行测试成分。这种分布有可能在一个或多个物 理实体上。c h 实体允许t m 创建和控制分布测试系统,这种方式独立与t e 。 t e 实体负责解释和执行a t s ( 抽象测试套) 。从概念上来说,t e 可以分为这 么几个部分:e t s ( 可执行测试套) ,t 3 r t s ( t t c n - 3 运行时系统) ,e d s ( 内部编 解码系统) 。这些实体通过t r i 接口与外部交互n 即。 e t s :e t s 实体负责测试例的解释和执行,测试事件的排序和匹配。它与t 3 r t s 实体进行交互以进行发送、试图接收( 或匹配) 和记录测试例执行期间测试事件 日志、建立和移除t t c n - 3 测试成分,同时处理外部函数调用、a c t i o n 操作和时 钟。e t s 在整个测试活动过程中并不与s a 、p a 通过t r i 直接进行交互,也不与 t m 、t l 、c h 通过t c i 直接进行交互,而是通过t 3 r t s 作为媒介与这些实体进行 间接的交互。 t 3 r t s :t 3 r t s 通过t c i 和t r i 与t m 、s a 、和p a 实体进行交互同时管理e t s 和e d s 实体。t 3 r t s 初始化适配器和e t s 、e d s 实体。t 3 r t s 执行所有必要的操作 以启动一个测试例的执行或e t s 实体内部带有参数的函数的执行。它从t m 实体 获取e t s 所需要的模块参数值,同时发送日志信息给t m 。t 3 r t s 也收集和处理由 e t s 实体返回的相关判定。t 3 r t s 实体实现了测试成分的建立和移除,t t c n - 3 中 基于消息和过程的通讯语义,进行外部函数调用,和完成定时器操作。这包括通 知被测系统适配器( s a ) 哪些消息或是过程调用将被发送到被j 贝! i 系统( s u t ) ,通 知c h 哪些消息或是过程调用将被发送到其它的测试成分,p a 中的哪些外部函数 将被执行或是哪些定时器将被启动,查询,读取,停止等;同样地,t 3 r t s 会通 知e t s 来自于s u t 或是其它测试成分的消息或是过程调用,来自于p a 的超时事 件等等n 3 1 。 e d s :e d s 实体负责测试数据的内部编解码,这些数据包括t t c n - 3 模块中定 义的与s u t 进行通讯操作的数据。编解码的规则应该在执行的t t c n - 3 模块中有 相关的说明,如果没有,则编解码是和具体的工具相关的。这个实体由t 3 r t s 实 体调用,并把处理后的结果返回到t 3 r t s 实体中。e d s 实体不能通过t r i 与s a 进行直接交互。 内蒙古大学硕士学位论文 s a :s a 用于处理t e 与s u t 之间的消息通信和过程调用。它负责从t e 向s u t 传递发送请求和s u t 操作,将t e 接收的任何测试事件加入到t e 端口队列。s a 与 测试系统中的测试执行器通过t r i 接口连接,测试执行器不再与实际的网络通 信,而是将报文交给s a ,s a 再将报文按s u t 可识别的格式封装后通过实际网络 线路发送出去,接收时也类似。这使得测试执行器可以独立于特定的被测协议实 现,具有通用性,对不同的被测协议实现,测试系统只需要挂载不同的s a 模块 就能进行测试。 2 3 4p a p a :p a 是与操作系统密切相关的功能模块,在测试系统中,p a 用于协助测 试执行器实现定时器功能。测试例被执行时,p a 内部为其维护着3 个定时器列 表,分别保存当前活跃的定时器、已中止或等待启动的定时器以及已经超时的定 时器。当执行器需要操作定时器对象时,它通过t r i 接口向p a 发出请求,由 p a 调用操作系统的a p i 完成实际操作。 2 3 5t t c n - 3 测试系统的接口 t t c n 一3 的接口包括t r i ( t t c n - 3 运行时接口) 和t c i ( t t c n 一3 测试控制接 口) 。t r i 接口负责t e 实体与s a 实体,t e 实体与p a 实体的交互。t c i 接口负责 t e 实体与c d 实体,t e 实体与c h 实体,t e 实体与t m 实体,t e 实体与t l 实体的 交互。 2 4t t c n - 3 模块结构 t t c n 一3 最顶层单元是模块,它不由子模块构成。t t c n - 3 模块之间相互独立, 它们可以通过i m p o r t 语义共享数据定义。一个测试套就是一个模块,一个模块有 两部分:定义部分和控制部分。定义部分定义了测试成分组件、通讯端口、数据 类型、常量、测试数据模板、函数、端口程序通讯信号、测试例等。控制部分包 含局部定义、调用测试例并控制其执行顺序。下面是一个模块测试套t e s t s u i t e , 9 基丁二t t c n 3 测试平台的编解码实现方式的研究 其定义部分定义了运行在主测试成分组件类型m t c t y p e 上的两个测试t e s t c a s e l 、 t e s t c a s e 2 。控制部分执行这两个连续的测试例t e s t c a s e l 、t e s t c a s e 2 并控制其 先后顺序。 m o d u l et e s t s u i t e t e s t c a s et e s t c a s e l0 t e s t c a s et e s t c a s e 2 ( ) c o n t r o l e x e c u t et e s t c a s e l0 ; e x e c u t et e s t c a s e 20 : 2 5t t c n - 3 测试配置 r u n so i lm t c t y p e : r u n so nm t c t y p e ”) : t t c n - 3 允许对并发测试配置的描述,一个配置由一个带有良好定义的通信 端口的互连测试成分集合和定义该测试系统边界的明确的测试系统接口组成。 在每个配置中应该有一个且仅有一个m t c ( 主测试成分) ,非主测试成分被 称为p t c s ( 并行测试成分) 。m t c 应该在每个测试例执行开始时由系统创建,而 测试例主体中定义的行为应该在该成分上执行。在一个测试例执行期间,通过显 式使用c r e a t e 操作来动态创建其它成分。 系统应在m t c 终止时结束测试例执行,平等对待所有其它的p t c s ,即在它 们之间没有明确的层次关系,一个p t c 既不能终止其它p t c s 也不能终止m t c 。 当m t c 终止时,测试系统必须停止所有测试例结束时未被终止的p t c s 。 测试成分之间以及测试成分和测试系统接口之间的通信通过通信端口实现。 图2 3 是t t c n 测试配置的概念化视图。 l o 内蒙古夫学硕士学位论文 m t c rj p t c l - 卜习奇 +- 一j 0l 凄际黼试磊缒摧u 图2 3t t c n - 3 测试配簧的概念化视图 f i g u r e2 - 2c o n c e p t u a lv i e wo fat y p i c a lt t c n 一3t e s tc o n f ig n r a t i o n 251 端口通信 测试成分通过它们的端口连接,也就是说测试成分之间以及一个成分和测试 系统接口之间的连接是面向端口的。每个端口被建模为一个无限的先进先出 ( f i f o ) 队列,这个队列用于存储进来的消息或者是过程调用直至拥有该端口的 成分处理它们。 t t c n 一3 支持基于消息( m e s s a g e ) 和基于过程( p r o c e d u r e ) 的端口。每个 端口都应该定义成基于消息基于过程或基于混台型( 两者都有) 。端口是有方 向的分别是i n ( 输八方向) ,o u t ( 输出方向) ,i n o u t ( 输入输出方向) 。 例: t y p ep o r tm y p r o c c d u r e p o r t t y p ep r o c e d u r e j o u tp r o c l ,p r o c 2 ,p r o c 3 1 p r o c l ,p r o c 2 ,p r o c 3 是基于过程的,方向是输出的端口。 25 2 抽象系统接口 t t c n 一3 测试成分之间端口的连接、测试成分和被测系统之间的端口连接是动 基于t t c n 3 测试平台的编解码实现方式的研究 态的,可以在测试运行时通过c o n n e c t ,d i s c o n n e c t ,m a p 和u n m a p 操作做动态 修改。一个测试成分的端口可以连接到其它测试成分或测试系统界面的端口上。 在连接两个测试成分的情况下,应使用c o n n e c t 操作。当连接一个测试成分和测 试系统接口时,使用m a p 操作。c o n n e c t 操作通过将一个端口的i n 端连接到另 一个端口的o u t 端,反之亦然n 引。 表2 2 通信配置操作 t a b l e 2 2c u m m u n i c a t i o no fc o n f i g u r a t i o no p e r a t i o n s c o n n e c t 成分之间的通讯操作 d i s c o n n e c t m a p 成分与被测系统的通讯操作 u n m a p 2 6t t c n - 3 测试过程 使用t t c n 一3 对被测系统进行测试的过程,和使用高级语言进行程序设计的 过程类似。首先要使用t t c n 一3 定义的抽象语言,遵循其语法,利用文本编辑工 具或专用的a t s 编辑系统写出测试过程,这个抽象语言写出的测试方案被叫做 a t s ( 抽象测试套) ;然后利用测试环境提供的编译工具( a t s 编译系统) 对a t s 进行编译,编译器将抽象语言书写的a t s 编译生成某种通用程序设计语言实现的 源代码,并调用相应的通用高级语言的编译器,最终将这些源程序编译生成可执 行的二进制代码,这些可执行的二进制代码被叫做e t s ( 可执行测试套) ;在测 试环境( 包括t m 测试管理模块、t l 测试日志模块、c d 编解码模块和c h 测试控 制模块) 的支持下,测试方案可以通过运行e t s 的方式来执行,t t c n - 3 测试系 统将自动产生测试报告和测试结论。用户可以通过测试日志和测试判定( 结论) 来对测试的过程和结果进行监控。图2 - 4 描述了t t c n - 3 测试系统各个组成部分 的相互关系和使用过程n 们。 1 2 内蒙古大学硕士学位论文 1 - 1 2 7 编解码 t l c d c h 图2 _ 4t t c n 3 测试系统用例图 f i g u r e 2 4u s ec a s ed i a g r a mo ft t c n 3t e s ts y s t e m t t c n 一3 测试系统可以分成基本模块和外围模块。标准文档里提供了基本系 统与外围模块的接口。这样是为了将大而复杂的t t c n - 3 测试系统分成多个子模 块,使得t t c n - 3 工具厂商实现时有规可循。以下是t c i - c d 的接口c 语言映射口1 : e n c o d i n g :b i n a r y s t r i n gt c i e n c o d e ( t c i v a l u ev a l u e ) : d e c o d i n g :t c i v a l u et c i d e c o d e ( b i n a r y s t r i n gm e s s a g e ,t c i t y p e d e c h y p o t h e s is ) : 根据t t c n - 3 文献旧1 的描述,具体完成编解码任务的模块被称为c o d e c ( 编解 码器) ,它在c d 实体中。c d 通过t c i 接口与t e 交互,进行编解码工作。 c o d e c i 具与测试例是相关的。要进行多种测试的话,每个测试例都要编写 不同的c o d e c ,这样的工作是很复杂和繁琐的。对于这样的情况,我们可以找出 一种自动生成c o d e c 的方法,这个方法会在第四章介绍。 2 8 本章小结 本章主要对t t c n 一3 的进行简单的介绍。通过对其类型,系统结构,通信方 基于t t c n 3 测试平台的编解码实现方式的研究 式,编解码的了解,对下一步的编解码生成工具设计打下一定的基础。同时说明 了不同的测试例要编写不同的编解码代码,这对我们以什么样的方法来实现工具 提供了帮助。 1 4 内蒙古大学硕士学位论文 第三章编解码问题的分析 t t c n 一3 给出了一种灵活和强有力的测试方法,它用于描述在多种通信端口 上的各种响应系统测试。当与不同的系统交互时,t t c n - 3 会使用一个特殊的实 体c d 建立起它和不同系统进行对话的桥梁。 前面我们给出了t t c n - 3 编解码的定义,并且提到编解码与测试例相关。本 章来具体的分析一下这个问题。 3 1t t c n - 3 编解码的含义 t t c n - 3 的编码操作是在发送数据时被调用的,解码操作是在接收数据时被 调用的。t t c n - 3 的数据类型与被测系统的数据不但表达方式不相同,而且信息 量也有差别。t t c n - 3a t s 中,为满足测试目的而定义的数据通常是协议数据报 的子集。 当进行编解码工作时,由于测试例中的t t c n 一3 的类型不是完整的定义( 相 对于被测系统识别的数据而言) ,所以在编码时会增加一些数据将t t c n 一3 类型值 转化为被测系统可识别数据结构,在解码时从被测系统接收的数据里抽取相应的 数据并将它转化为所需要的t t c n - 3 类型值。 传统的编解码是根据一定的规则去将数据或信号包装或拆分。 t t c n - 3 编解码是由被测系统和测试例中定义的t t c n - 3 类型共同决定的。首 先,被测系统的数据结构与t t c n - 3 的数据结构不同。其次,即使对同一个被测 系统,如果两测试例有不同的类型定义,那么它们就有不同的编解码实现。 3 2 简单的d n s 编解码例子 本节给出一段简单的t t c n - 3 测试例代码,对测试例中t t c n - 3 类型值进行编 解码,详细说明t t c n - 3 编解码的含义。 3 2 1d n s 协议 基于t t c n 3 测试平台的编解码实现方式的研究 d n s 协议是d o m a i nn a m es y s t e m 的缩写形式。它的格式分为这么几个部 分川。如图3 1 所示: 十一一一一一一一一一一一一一一一一一一+ f h e a d e r i + + i q u e s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论