(计算机软件与理论专业论文)基于ttcn3开源编译器的sa设计.pdf_第1页
(计算机软件与理论专业论文)基于ttcn3开源编译器的sa设计.pdf_第2页
(计算机软件与理论专业论文)基于ttcn3开源编译器的sa设计.pdf_第3页
(计算机软件与理论专业论文)基于ttcn3开源编译器的sa设计.pdf_第4页
(计算机软件与理论专业论文)基于ttcn3开源编译器的sa设计.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机软件与理论专业论文)基于ttcn3开源编译器的sa设计.pdf.pdf 免费下载

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

文档简介

内蒙古大学硕士学位论文 基于t t c n 3 开源编译器的s a 设计 摘要 t t c n 一3 ( t e s t i n ga n dt e s tc o n t r o ln o t a t i o n v e r s i o n3 ) 测试语言是一种灵 活的、强有力的程序语言,可用于描述多种类型的系统测试。g 0 4 i t 项目是欧 盟主导的中欧合作项目,目的是创建t t c n 3 的通用,开源测试平台。 、 被测系统适配器s a ( s u ta d a p t o r ) 是t t c n 。3 测试环境的一个重要组成 部分,实现执行平台中t t c n - 3 可执行实体t e ( t t c n 3e x e c u t a b l e ) 和被测 系统s u t 的通讯。本论文通过对s a 进行深入细致地研究,提出在t t c n - 3 开 源编译器执行平台的基础上设计s a 的方案。即针对被测系统多样性的特点, 提出将s a 的功能分为两部分实现:一部分实现和t e 交互,另一部分实现和 s u t 交互,并列出两者之间的相互调用方法。同时,举例实现s a ,说明如何 实现t e 和被测系统的通讯,以及如何对被传递数据进行编码和解码。 关键字:t t c n 3 ,s u t ,t r i ,s a 基于t t c n - 3 开源编译器的s a 设计 d e s i g n o fs ab a s e do nt h eo p e n r e s o u r c e t t c n 3c o m p i l e r a b s t r a c t t t c n - 3 ( t e s t i n ga n dt e s tc o n t r o ln o t a t i o n v e r s i o n3 ) i saf l e x i b l e a n d p o w e r f u ll a n g u a g ea p p l i c a b l et ot h es p e c i f i c a t i o no f a l lt y p e so fs y s t e mt e s t s g 0 4 i t p r o j e c ti so p e n r e s o u r c ep r o j e c tf o u n d e db yt h ee u r o p e a nu n i o n ,w h i c hw i l lp r o v i d ea l o wc o s te n v i r o n m e n tf o r 丌c n 3t e s ts u i t e s s u ta d a p t o ri sa ni m p o r t a n tp a r ti nt h et t c n 一3c o m p i l e r ,r e s p o n s i b l et o c o m m u n i c a t ei n f o r m a t i o nb e t w e e ns u ta n dt t c n - 3e x e c u t a b l e ( w e ) a f t e rad e e p a n dp a r t i c u l a rr e s e a r c ho ns a ,t h ea u t h o r sw o r kp r e s e n t e di nt h i st h e s i sc h i e f l y i n v o l v e st h ed e s i g na n di m p l e m e n t i n gs ab a s e do nt h eo p e nr e s o u r c et t c n 一3 c o m p i l e r b e c a u s eo f t h ed i v e r s i t yo fs u t ,t h ea u t h o rd i v i d e st h ef u n c i o no fs ai n t o t w op a r t s :o n ec o m m u n i c a t e sw i t ht ea n da n o t h e rw i t hs u t ,a n dt h e ng i v e st h ew a y h o wt oc a l le a c ho t h e r m e a n w h i l e ,s p e c i f yh o wt oe n c o d ea n dd e c o d et h ed a t ad u r i n g t h es a r u n n i n gt oi m p l e m e n t t h ec o m m u n i c a t i o nb e t w e e nt h et ea n ds u t k e y w o r d s :t t c n 一3 ,s u t , t r i ,s a i i 内蒙古大学硕士学位论文 图表目录 图2 1t t c n 3 的典型测试配置概念图7 图2 2t t c n 3 测试系统总体结构图【8 】1 2 图3 1t t c n 3 开源编译器总体结构副9 1 二。1 7 图4 1s a 总体设计图2 0 图4 2 顺序图:t r i s a r e s e t 0 与s a t r i s a r e s e t 0 操作3 5 图4 3 顺 序图:t r i e x e c u t e t e s t c a s e 0 与s a t r i e x e c u t e t e s t c a s e 0 3 6 图4 4 顺序图:t r i e n d t e s t c a s e 0 与s a t r i e n d t e s t c a s e 0 3 6 图4 5 顺序图:t r i m a p 0 与s a t r i m a p 0 3 7 图4 6 顺序图:t r i u n m a p 0 与s a t r i u n m a p 0 3 8 图4 7 顺序图:t r i s e n d 0 与s a t r i s e n d 0 3 9 图4 8 顺序图:t r i s e n d b c 0 与s a t r s e n d b c 0 。3 9 图4 9 顺序图:t r i s e n d0 与s a t r i s e n db c 0 4 0 图4 1 0 顺序图:t r i e n q u e u e m s g 0 与s a t r i e n q u e u e m s g 0 。4 1 图4 1 1 顺序图:t r i c a l l 0 与s a t r i c a l l0 4 1 图4 1 2 顺序图:t r i c a l l b c 0 与s a t r i c a l l b c 0 4 2 图4 1 3 顺序图:t r i c a l l m c 0 与s a t r i c a l l m c0 k 4 3 图4 1 4 顺序图:t r i r e p l y 0 与s a t r i r e p l y 0 4 4 图4 15 顺序图:t r i r e p l y0 与s a t r i r e p l y0 4 4 图4 1 6 顺序图:t r i r e p l y 0 与s a t r i r e p l y 0 4 5 图4 17 顺序图:t r i r a r i s e 0 与s a t r i r a r i s e 0 4 6 图4 1 8 顺序图:t r i r a r i s e b c 0 与s a t r i r a r i s e b c 0 4 6 图4 19 顺序图:t r i r e p l y0 与s a t r i r a r i s e m c0 4 7 图4 2 0 顺序图:t r i e n q u e u e c a l l 0 与s a t r i e n q u e u e c a l l 0 4 8 图4 2 1 顺序图:t r i e n q u e u e r e p l y0 与s a t r i e n q u e u e r e p l y 0 4 8 图4 2 2 顺序图:s a t r i e n q u e u e e x c e p t i o n 0 与s a t r i e n q u e u e e x c e p t i o n 0 4 9 图5 1i p v 6 报文头格式【2 0 1 5 2 图5 2 数据链路帧、i p 分组与i c m p 消息【2 l 】5 5 v 基于t t c t 4 3 开源编译器的s a 设计 表2 1t t c n 3 数据类型汇总表4 表2 2t t c n j 通信操作一览表f l 】1o 表2 3t t c n 3 和t r i 操作调用的相互关系【钔1 3 表2 4 被s a 和p a 调用的t r i 接口函数【8 1 。1 4 表4 1 抽象数据类型表【1 3 1 2 1 表4 2s a s e n d i n f o r 类3 0 表4 3s a c a l l i n f o r 类31 表4 4s a r e p l y i n f o r 类3 2 表4 5s a r a i s e i n f o r 类3 3 表5 1p r o t o c o l c d 类5 8 表5 2 静态端口类5 9 表5 3 动态端口类6 0 表5 4s at o s u t 类6 0 v i 原创性声明 本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成 果。除本文已经注明引用的内容外,论文中不包含其他人已经发表或撰写过的研究成果,也 _ ? 不包含为获得内鍪直太堂及其他教育机构的学位或证书而使用过的材料。与我同工作的同 志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:蔓勃辑 指导教瘘签名: 丑 。 期:翘之1 2 么二i 幺 躁 期:参“! g :眵 在学期间研究成果使用承诺书 本学位论文作者完全了解学校有关傈留、使用学位论文昀规定,帮:内蒙古大学有权将 学位论文的全部内容或部分保蜜并内国家有关橇构、郝门送交学位论文酶复印停和磁盘,兔 诲编入有关数据库进行检索,也可以采髑影印、缩印或其他复制手段保存、汇编学位论文。 菇保护学院和导师的知识产权,作者在学期阅取得的研究成果属于内蒙告大学。作者今羼 使用涉及在学期闻主要研究内容或研究成果,须征 ! 导内蒙古大学就读期间导师的同意;若用 于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。 学使论文侔者签名:垃委隧措导教烬签名: 日期:旌螋白之翻 期;,丛盔适芦 内蒙古大学硕士学位论文 1 1 研究背景及意义 第一章引言 t t c n 3 ( t e s t i n ga n dt e s tc o n t r o ln o t a t i o n v e r s i o n3 ) 是一种标准测试语言,可以进行多种 通讯界面上的各种系统测试。t t c n 3 是欧洲电信标准协会( e t s i ,e u r o p e a n t e l e c o m m u n i c a t i o n ss t a n d a r d si n s t i t u t e ) 维护的全球适用的标准测试语言,是一种成熟的、强 有力的测试语言。t t c n 3 已经被广泛地应用于协议测试( 包括移动和互联网协议) 、服务测 试、基于平台的c o r b a 测试、a p i 测试等领域。同时,t t c n 3 并不仅限于一致性测试领域, 可以用于其他类型的测试,如互操作性测试、健壮性测试、回归测试、系统和集成测试【l 】。 随着技术的日趋完善和普及,t t c n 3 语言从开始仅涉及电信业测试扩展到嵌入系统测试和软 件测试等全新领域。 t t c n 3 测试系统的设计与实现是一项复杂的工程 2 1 ,在一定程度上限制了t t c n 3 语言的 广泛使用。目前,市场上存在一些商用的t t c n 3 编译器系统,用户可以购买某些协议的可执 行测试套产品,或在这些编译器的基础上开发一些简单的测试例。但是,可执行测试套产品 价格昂贵、部分核心技术对用户封闭,在一定程度上限制了t t c n 3 语言的广泛使用。 s a ( s u t a d a p t o r ) 是测试环境中的基本组成部分,它的实现限制了编译器编译后生成 的可执行代码的运行。可执行测试套的运行需要和被测系统进行通讯,而由于被测系统类 型多样,不同的被测系统具有不同的物理特征,作为被测系统适配器的s a 必须实现可执行 测试套和各种被测系统的通讯工作。因此,必须为每个测试套开发相应的s a 。而且在开发 s a 的过程中,用户不仅要对被测系统有完全的了解,还需了解测试系统和执行平台的组成 结构,因此被测系统适配器s a 的实现成为限制可执行测试套运行的瓶颈问题。 g 0 4 i t 项目针对目前存在的问题,拟推出一个开放源代码的t t c n 3 编译器执行平台。 在该编译器环境下,用户可以根据被测系统的具体情况,对源代码进行修改,方便开发被 测系统适配器s a 。本研究在开源编译器的基础上,通过对s a 的分析,提出一个s a 的设 计方案。使得在开发多个s a 的过程中,能够在现有s a 的基础上进行开发,避免一些重复 工作,减轻开发人员的工作量;同时,在源代码开源的基础上,可以通过对现有s a 进行简 单的修改,实现s a 的重复使用。 基于t t c n - 3 开源编译器的s 设计 1 2 研究现状 国际上许多公司都努力开发t t c n 3 相关工具和产品【3 1 。目前,国内外许多组织和团体逐 渐投入人力和物力开发t t c n 3 编译器执行平t 4 1 。一些公司( 如n o k i a 和华为) 设立研究团 队开发t t c n 3 编译器和执行平台,用于对本公司研发的产品进行测试。t t w o r k b e n c h 是一个 t t c n 3 的图形化测试开发和执行环境。基于t t c n 3 的测试规则,t t w o r k b e n c h 提供了测试 用例的图形定义功能。 g 0 4 i t 项目的目的是开发一个功能完善的、开源的t t c n 3 编译器和执行平台。g 0 4 i t 项目是由欧洲电信标准协会( e t s i ) 主导、使用j a v 们+ + 语言开发的一个功能完善的、开 源的t t c n 3 编译器和执行平台。 在t t c n 3 编译器和测试平台中,必须创建与被测系统相对应的s a 。目前市场拥有很 多针对通讯协议的测试套产品,比如t t s u i t e s i pe x e c u t a b l e 和t t s u i t e s c t p 等,这些产品 都封装了已实现的s a 。在整个t t c n 3 编译器和测试平台中,s a 负责和被测系统进行交 互。当针对某一具体的被测系统进行测试时,必须开发相应的s a 。t t c n 3 测试平台实现 对t t c n 3 语言抽象测试套的编译,形成可执行测试套。但是,由于被测系统的不同及访 问被测系统的方式不同,针对不同的被测系统,必须在t t c n 3 编译器和测试平台中创建 不同的s a 与被测系统对应。 1 3 本研究设计思路 本研究通过深入学习和研究e t s i 发布的t t c n 3 标准文档,掌握了t t c n 3 语言的组 成要素及其测试系统的结构特点。在t t c n 3 执行平台中,被测系统适配器s a 实现t t c n 3 可执行测试套和被测系统的通讯功能。将s a 按其实现功能划分为两个组成部分,两个组成 部分通过接口互相调用,使s a 能够针对不同的被测系统在现有s a 的基础上进行尽可能小 的修改和设置,以满足多个同类被测系统的通讯。具体步骤如下: 1 将s a 划分为两个组成部分,分别针对t t c n 3 可执行测试体和被测系统通讯; 2 设计出两个组成部分之间的交互接口; 3 两组成部分通过接口函数互相调用,实现与被测系统的通讯。 采用面向对象的分析方法,创建相应的类封装相应的函数。同时,使用u m l 顺序图表 示各个类之间的相互调用关系。在此方案基础上,充分掌握t t c n 3 开源编译器的结构特 点,在l i n u x 环境下使用c + + 语言实现各个组成部分的功能。 2 内蒙古大学硕士学位论文 第二章t t c n - 3 介绍 t t c n 3 是一种新的测试语言,2 0 0 1 年e t s i 发布了t t c n 3 第一版本。通过不断改进,2 0 0 7 年e t s i 发布了t t c n 3 标准的最新版本。这个标准包含的文档有:t t c n 3 的核心语言( t t c n 3 c o r el a n g u a g e ) 、t t c n - 3 表表示方式( t t c n 一3t a b u l a rp r e s e n t a t i o nf o r m a t ( t f t ) ) 、t t c n - 3 图表示方式t t c n 3g r a p h i c a lp r e s e n t a t i o nf o r m a t ( g f t ) ) 、t t c n 3 操作语义( t t c n 3 o p e r a t i o n a ls e m a n t i c s ) 、t t c n 3 运行时接口( t t c n 3r u n t i m ei n t e r f a c e ( t r i ) ) 、t t c n 3 控制接口( t t c n 一3c o n t r o li n t e r f a c e ( t c i ) ) 、i d l 到t t c n 3 映射( t h ei d lt ot t c n - 3m a p p i n g ) 和t t c n 3 文档注释描述( t t c n 3d o c u m e n t a t i o nc o m m e ms p e c i f i c a t i o n ) 组成部分【5 j 。 s a 的研发主要涉及t t c n 3 的核心语言、t t c n 3 运行时接口( t 砒) 和t t c n 3 控制接口 ( t c i ) 。t t c n 3 的核心语言主要描述t t c n 一3 抽象测试套的总体框架及其各个组成部分; t t c n 3 运行时接口( t 刚) 主要描述t t c n 3 测试系统中t e ( t t c n 3e x e c u t a b l e ) 与s a 接口 的标准函数及s a 的组成、结构和功能;t t c n 3 控制接口( t c i ) 描述t t c n 3 测试系统中t e 与t m c ( t e s tm a n a g e m e n ta n dc o n t r 0 1 ) 的各个组成部分及组成部分之间的接口函数。 2 1t t c n 3 核心语言 t t c n 3 核心语言描述的是t t c n 3 测试套的整体框架及其各个组成要素。通过对 t t c n 3 核心语言的研究,可使用t t c n 3 语言来编写和分析抽象测试套。 2 1 1 类型和值 t t c n 3 支持多种预定义的基本类型,如整数类型( i n t e g e r ) 、布尔类型( b o o l e a n ) 和 串类型等。同时,t t c n 3 还包括一些特殊类型,如判定类型( v e r d i c t t y p e ) 。在基本类型 的基础上,t t c n 3 可以构造结构类型,如记录类型( r e c o r d ) 、集合类型( s e t ) 和枚举类 型( e n u m e r a t e d ) 1 5 1 。 特殊数据类型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 h 类型可以用于默认处理。 基于t t c n - 3 开源编译器的s a 设计 表2 1t t c n 3 数据类型汇总表 t a b l e2 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 f l o a t r a n g e ,l i s t 简单基本类型一 b o o l e a nl i s t v e r d i c t t y p e l i s t b i t s t r i n gl i s t ,l e n g t h h e x s t r i n gl i s t ,l e n g t h 基本串类型 o c t e t s t r i n g l 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 ,p a r e m 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 ,p a r e m r e c o r dl i s t r e c o r do fl i s t s e tl i s t 结构类型 s e t o fl i s t e n u m e r a t e dl i s t u m o nl i s t 特殊的数据类型 a n y t y p e l 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 t t c n 3 语言给出了基本数据类型,并规定了相应数据类型的值及其取值范围。同时, t t c n 3 可以在基本类型的基础上通过使用关键字t y p e 和相应的基本类型( 如i n t e g e r ) 及 关键字r a n g e 、l i s t 等定义子数据类型。 一 使用t y p e 定义t t c n 一3 的结构化类型,例如定义记录类型( r e c o r d ) 、r e c o r do f 类型、 集合类型( s e t ) 、s e to f 类型、枚举类型( e n u m e r a t e d ) 和联合类型( u n i o n ) 。 4 内蒙古大学硕上学位论文 可以使用一个明确的赋值表示,或使用一个简写的值列表给出这些类型赋值。必须注意 的是当对变量进行赋值、实例化或比较时,t t c n 3 语言要求类型的兼容性,并给出了相应 的兼容规则。 2 1 2 模块 模块( m o d u l e ) 是t t c n 3 的基本构造块,一个模块可以定义一个完整的可执行测试套。 模块是t t c n 3 编译器和执行平台进行编译和运行的基本单位。在t t c n 3 测试套中,可 以包含一个或多个模块。其构造语法如下: m o d u l em o d u l e i d e n t i f i e r 【l a n g u a g e s p e c】” 【 m o d u l e d e f i n i t i o n s p a r t 】 【m o d u l e c o n t r o l p a r t 】t i ) t t 【6 】 模块由定义和控制两部分组成,且两者都是可选的。一个模块中可以只有定义部分,也 可以只有控制部分。 模块定义部分描述该模块的顶层( t o p 1 e v e l ) 定义,其语法如下: ( t y p e d e flc o n s t d e flt e m p l a t e d e flm o d u l e p a r d e fl f u n c t i o n d e fi s i g n a t u r e d e fi t e s t c a s e d e fi a l t s t e p d e fii m p o r t d e fig r o u p d e fl e x t f u n c t i o n d e fl e x t c o n s t d e f ) 【w i t h s t a t e m e n t 】 ;】) + 【6 】 模块的定义部分可以定义数据类型、常数和变量等t t c n 3 的语言元素,也可以引入其 它已经定义好的模块。模块的主要功能之一是在模块中定义某些归类的数据类型或完成某 个特定功能的程序,并作为一个整体通过关键字i m p o r t 引入到其它模块。 模块定义部分如下例所示: m o d u l em y m o d u l e t h i sm o d u l e c o n s ti n t e g e r t y p er e c o r d f u n c t i o nt e s t s t e p 0 【6 】 基于t t c n 一3 开源编详器的s a 设计 模块控制部分包含局部定义,其主要功能是描述实际测试例的执行顺序( 可能是重复 的) ,控制部分调用定义部分定义好的测试例。 下面是一个模块控制部分的例子: m o d u l em y t e s t s u i t e t h i sm o d u l ec o n t a i n sd e f i n i t i o n s e o n s ti n t e g e rm y c o n s t a n t := 1 ; t y p er e c o r dm y m e s s a g e t y p e ) t e m p l a t em y m e s s a g e t y p em y m e s s a g e := ) f u n c t i o nm y f u n c t i o n l o f u n c t i o nm y f u n c t i o n 2 0 t e s t c a s em y t e s t c a s el ( ) r u n so nm y m t c t y p e t e s t c a s em y t e s t c a s e 2 0r u n so nm y m t c t y p e a n dac o n t r o lp a r ts oi ti se x e c u t a b l e c o n t r o l v a tb o o l e a nm y v a r i a b l e ;l o c a lc o n t r o lv a r i a b l e e x e c u t e ( m y t e s t c a s e l0 ) ;s e q u e n t i a le x e c u t i o no f t e s tc a s e s e x e c u t e ( m y t e s t c a s e 2 0 ) ; ) 【6 】 2 1 3 端口、成分和测试配置 端口( p o r t ) 是一个实体,用于测试成分( c o m p o n e n t s ) 之间以及测试成分和测试系统 接口之间的通讯。端口可以基于消息,也可以基于过程,或是二者混合的。端口具有方向, 用来表示端口的输入( i 1 1 ) 、输出( o u t ) 或输入输出( i n o u t ) 。端口通常被看作是一个用 于存储通讯消息的先进先出( f i f o ) 的队列。 6 内蒙古大学硕士学位论文 定义基于消息、基于过程和混合类型的端口语法为: t y p ep o r tp o r t t y p e l d e n t i f i e rm e s s a g e ” i ( i n o u ti n o u t ) ( a l ll m e s s a g e t y p e ”,”】) + ) t f ”p l ”【6 】 t y p ep o r tp o r t t y p e l d e n t i f i e rp r o c e d u r e ” ” ( i no u ti n o u t ) ( a l li s i g n a t u r e ”,”】) + ) ;”) i i ) t 【6 】 够p ep o r tp o r t t y p e l d e n t i f i e rm i x e d ” t i ( i no u ti n o u t ) ( a 1 1l ( m e s s a g e t y p els i g n a t u r e ) 【i ,”】) + ”;” ” ”【6 j 成分( c o m p o n e n t ) 是与其关联的端口的集合。测试成分可定义局部常量、变量和定时器。 定义成分类型的语法如下: t y p ec o m p o n e n tc o m p o n e n t t y p e l d e n t i f i e r ” f t ( p o r t i n s t a n c e iv a r l n s t a n c e it i m e r i n s t a n c e i c o n s t d e f ) ) 1 1 ) ”【6 】 抽象测试套有三种测试成分类型:主测试成分( m t c ,m a i nt e s tc o m p o n e n t ) 、并行测 试成分( p t c ,p a r a l l e lt e s tc o m p o n e n t s ) 和抽象测试系统接1 :i ( t s i ,t t e s ts y s t e mi n t e r f a c e ) 。 测试配置由主测试成分、并行测试成分和抽象测试系统组成,它们之间通过通讯端口连 接。 t t c n 测试系统 m t c l p t c l1 ,r jl l p t c 2 r 1r 1 r1r 7 抽象测试系统接口 1 厂、_ ,一、 、一, 真实测试系统接口 su t 图2 1t t c n 3 的典型测试配置概念图 f i g u r e 2 1c 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 i g u r a t i o n 7 基于t t c n 一3 开源编译器的s a 设计 每个测试配置只有一个主测试成分( m t c ) ,但可以有多个并行测试成分( p t c ) 。主 测试成分是测试例启动时系统自动创建的测试成分,该成分执行测试例主体定义的测试行为。 测试执行期间,并行测试成分( p t c ) 通过c r e a t e 操作创建。多个并行测试成分之间没有明确 的层次关系,各并行测试成分之间是平等的。当主测试成分( m t c ) 终止时,测试系统必须 停止所有的测试例。 抽象测试系统的接d t s i 的定义与测试成分的定义相同,是部分通讯端口的集合。在一个 实际的测试环境下,测试例要和被测系统s u t 连接。但是与实际被测系统的物理连接超出了 t t c n 3 的范围,故通过抽象测试系统接口中的端口和测试例逻辑意义上的通讯。 测试成分之间通过c o n n e t c 操作来连接,测试成分和抽象测试系统接1 2 1 之间通过m a p 操 作来连接,连接必须遵守给定的规则且不是任意进行的。 2 1 4 模板 模板( t e m p l a t e ) 是一个数据结构,是用来传送一组特定值的集合,也可测试接收到的 值的集合是否与模板说明匹配。 定义模板的语法如下: t e m p l a t et y p et e m p l a t e l d e n t i f i e r 【t - ( ”t e m p l a t e f o r m a l p a r l i s t ”) ”】【m o d i f i e st e m p l a t e r e f 】 ”:= ”t e m p l a t e b o d y 6 】 由此可知,模板可以新定义生成,也可以通过关键字m o d i f i e s 修改已有的模板来定义新 的模板。 基于消息的模板分为发送消息模板和接收消息模板。执行发送操作时使用发送消息模 板,且模板中的所有字段都必须解析为实际值。接收消息模板定义与接收消息相匹配的模 板,具体在执行接收操作时,使用t t c n 3 定义的模板匹配机制执行匹配操作。 使用v a l u e o f 操作可以将模板值赋给变量。 2 1 5 函数、可选步和测试例 函数( f u n c t i o n ) 、可选步( a l t s t e p ) 和测试例( t e s t c a s e ) 是t t c n 一3 的三种具有测试行 为的元素,起功能是用来描述测试行为、定义缺省行为或完成模块的某个计算过程。 函数:t t c n 3 测试例中函数的功能是实现某些测试行为,或按照某种顺序执行已经定 内蒙古大学硕士学位论文 义好的测试语句,或者类似其它高级语言用来实现某些计算功能,并可具有返回值。 定义函数的语法如下: f u n c t i o nf u n c t i o n l d e n t i f i e r ”( ” ( f o r m a l v a l u e p a rff o r m a l t i m e r p a rf o r m a l t e m p l a t e p a ri f o r m a l p o r t p a r ) 【f f ,”】) 】”) ”【l u l l so nc o m p o n e n t t y p e 】 r e t u r n 【t e m p l a t e 】t y p e 】 s t a t e m e n t b l o c k l 6 1 t t c n 3 还包含一些预定义函数,同时t t c n 3 也可定义外部函数。 可选步:可选步是t t c n 3 的一个很难理解的具有测试行为的组成元素。可选步一般用 于a l t 语句中,当a l t 语句中的每个分支都不满足条件时,缺省执行可选步定义的测试行为。 其语法如下: a l t s t e pa l t s t e p l d e n t i f i e r ”( ” ( f o r m a l v a l u e p a rlf o r m a l t i m e r p a rio r m a l t e m p l a t e p a ri f o r m a l p o r t p a r ) t i ,”】 】”) ”【r u n so nc o m p o n e n t t y p e 】f i f ( v a r l n s t a n c eit i m e r l n s t a n c el c o n s t d e f lt e m p l a t e d e f ) 【f ;”】) a l t g u a r d l i s t 6 】 当缺省调用可选步时,可选步必须是激活的;也可以在a l t 语句中显示调用可选步。 测试例:测试例是t t c n 3 最重要的测试行为元素之一。在三个具有测试行为的元素中, 只有测试例和被测系统s u t 进行连接。测试例完成一个特定的测试目的,其测试结果是一 个v e r d i c t 类型的值,表示测试是否正确与否,或不能确定。 定义测试例的语法为: t e s t c a s et e s t c a s e l d e n t i f i e r ”( ”【 ( f o r m a l v a l u e p a rf o r m a l t e m p l a t e p a r ) 【f i ,”】) 】f ) ”r u n so n c o m p o n e n t t y p e s y s t e mc o m p o n e n t t y p e 】s t a t e m e n t b l o c k 【0 1 测试例通过关键字r u n so n 指定唯一的主测试成分( m t c ) 。关键字s y s t e m 指定抽象测 试系统接口;如果未指定,则将主测试成分默认为抽象测试系统接口。 2 1 6 通讯操作 t t c n 3 语言通讯可分为基于消息的通讯和基于过程的通讯。 9 基于t t c n - 3 开源编译器的s a 设计 表2 2t t c n - 3 通信操作一览表【1 】 t a b l e2 2g e n e r a lv i e wo f t t c n 3c o m m u n i c a t i o no p e r a t i o n s 1 1 通讯操作 可用于 可用于过 通讯操作关键字消息端 程端口 口 基于消息的通信( m e s s a g e - b a s e dc o m m u n i c a t i o n ) 发送消息 s e n d 是 接收消息 r e c e l v e是 触发消息 t r i g g e r 是 基于过程通讯( p r o c e d u r e b a s e dci o n ) 调用过程调用 c a l l 是 接收来自远程实体的过程调用 g e t c a l l 是 回复来自远程实体的过程调用 r e p l y 是 ( 对于一个已接收的调用) 抛出异常 r a l s e 是 1 是处理来自以前的调用的响应 g e t r 印j y 捕获异常( 从被调用实体) c a t c h 是 检查输入端1 2 1 队列顶端元素( e x a m i n et o pe l e m e n to f i n c o m i n gp o r tq u e u e s ) 检查接收到的消息调用例外应答 c h e c k是 是 控制操作 清空端口队列 c l e a r是是 清空端口队列并在端口能发送和接收消息 s t a r t是是 停止端口的发送和接受操作 s t o p 是是 停止端口的发送操作和禁止接受操作对新的 h a l t是是 消息或调用的匹配 2 1 7 定时器 t t c n 3 提供定时器( t i m e r ) 功能,当系统等待被测系统的返回信息时,可使用定时器 限定等待时间,如果在限定时间内没有返回信息,则认为测试结束。 i o 内蒙古大学硕士学位论文 定义定时器的语法如下: t i m e r t i m e r i d e n t i f i e r 【a r r a y d e f :_ i t i m e r v a l u e 【”,】) 【;】【6 】 定时器定义时可以指定缺省时间。使用定时器时,可以重新指定时间或使用定义时默认 的时间。定时器启动和停止是通过使用s t a r t 和s t o p 关键字来完成;使用关键字t i m e o u t 检 测定时器,以确定其是否超时。 2 1 8 判定 判定( v e r d i c t ) 用来指定测试结果,判定类型为枚举类型,共有5 个不同的值,即p a s s 、 i n c o n c 、f a i l 、n o n e 和e r r o r 。其中,p a s s 、i n c o n c 和f a i l 分别表示测试通过、不能确定是否通 过或失败、失败。n o n e 只能用来赋初值,而e r r o r 表示测试

温馨提示

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

评论

0/150

提交评论