(计算机科学与技术专业论文)ttcn3测试平台中并行测试支持的设计与实现研究.pdf_第1页
(计算机科学与技术专业论文)ttcn3测试平台中并行测试支持的设计与实现研究.pdf_第2页
(计算机科学与技术专业论文)ttcn3测试平台中并行测试支持的设计与实现研究.pdf_第3页
(计算机科学与技术专业论文)ttcn3测试平台中并行测试支持的设计与实现研究.pdf_第4页
(计算机科学与技术专业论文)ttcn3测试平台中并行测试支持的设计与实现研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机科学与技术专业论文)ttcn3测试平台中并行测试支持的设计与实现研究.pdf.pdf 免费下载

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

文档简介

原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。除了 文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人己经发表或撰写过的研 究成果,也不包含为获得内蒙古大学或其他教育机构的学位或证书而使用过的材料。与我一 !同工作的同志对本研究所做的仟何贡献均己在论文中作了明确的说明并表示了谢意。 学位论文作者签名:靶 指导教师签名: 呈薹。聋 l 9 、o 6 ,扩 在学期间研究成果使用说明书 学位论文作者完全了解内蒙古大学有关保留和使用学位论文的规定,即:内蒙古大学研 究生在校攻读学位期间论文工作的知识产权单位属内蒙古大学。学校有权保留并向国家有关 部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文 的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。作者今 后使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的同意;若 用于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。 、,汐 学位论文作者签名:霉塞 日期:圣殳z q :墨:! ; 册狮签名:至殓 日期:t ! ! ! 厶。矿 内蒙占人学硕十学位论文 t t c n 3 测试平台中并行测试支持的设计与实现研究 摘要 t t c n 3 是欧洲电信标准协会( e t s i ) 于2 0 0 1 年推出的一种测试描述语言, 可用来描述对交互式系统的黑盒测试。通过使用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 标准,在中欧合作项目g 0 4 i ta 0 阶段实现的t 3 r t s 和 已实现的支持分布式测试的c h 的基础上,设计和实现了t t c n 3 测试平台中 包括测试行为、测试配置和测试成分间基于消息通讯在内的支持并行测试的功 能,给出了每个并行测试的具体操作在t 3 r t s 中的实现。由于在执行并行测 试操作的过程中,e t s 和t 3 r t s 之间、t 3 r t s 和c h 之间需要进行交互,本 文设计实现了执行并行测试操作过程中t 3 r t s 和e t s 间进行交互的t e 内部 接口;t 3 r t s 和c h 间的交互通过t c i 标准定义的t c i c h 接口完成。由于 t c i c h 接口实现个别的操作存在一些不足,因此,在实现并行测试过程中, 本文对标准的t c i c h 接口进行了扩展。为了解决已实现的c h 存在的问题, t t c n 一3 测试平台中并行测试支持的设计实现研究 一_ - _ _ - _ _ 一 实现的支持分布式测试的c h 的结构,并扩充和完善了c h 的功能。 文通过一个测试套说明了t e 内部接口在并行测试支持功能的实现中 t t c n 3 ,并行测试, c h ,t 3 r t s ,g 0 4 i t as t u d yo n d e s i g na n di m p l e m e n t a t i o n o fp a r a l l e lt e s t i n gs u p p o r t i nt t c n 3 t e s tp l a t f o r m a b s t r a c t t t c n 一3i sat e s ts p e c if i c a t i o nl a n g u a g e i ti ss t a n d a r d i z e db ye t s if o rd e s c r i b i n g b l a c k - b o x t e s t i n gr e a c t i v es y s t e m s t h ea p p l y i n go ft t c n 3i nt e s ts u i t e d e v e l o p m e n tc a ni m p r o v et h ee f f i c i e n c yb ys e p a r a t i n gt h ea b s t r a c tt e s td e s c r i p t i o n f r o mt h et e s ti m p l e m e n t a t i o nd e t a i l t t c n 一3i s w i d e l ya p p l i e di nc o n f o r m a n c e t e s t i n g ,i n t e r - o p e r a b i l i t yt e s t i n ga n dp e r f o r m a n c et e s t i n ga v a r i e t yo fs y s t e m s , i n c l u d i n gn e t w o r kp r o t o c o l s ,t e l e c o ma n dd a t a c o ms y s t e m s ,a n do t h e rr e a c t i v e s y s t e m s p a r a l l e lt e s t i n gi sac r u c i a ll a n g u a g ee l e m e n ti nt t c n 3 d u r i n gt h ee x e c u t i o n o fat e s tc a s e ,m u l t i p l ep a r a l l e lt e s t c o m p o n e n t sc a nb ec r e a t e da n ds t a r t e dt o e m u l a t em u l t i p l ee n t i t i e si n t e r a c t i n gw i t hs y s t e mu n d e rt e s t t e s tc o m p o n e n t sa r e c o n n e c t e dw i t he a c ho t h e ra n dw i t hs y s t e mu n d e rt e s tt h r o u g h p o r t s t h et e s t i n g i s i m p l e m e n t e db yt h e s ec o m p o n e n t ss t i m u l a t i n gs y s t e mu n d e rt e s ta n do b s e r v i n g t h er e s p o n s ef r o ms y s t e mu n d e r t e s t t h i st h e s i sp r e s e n t st h ed e s i g na n d i m p l e m e n t a t i o no ft h ef u n c t i o n ss u p p o r t i n g p a r a l l e lt e s t ,w h i c hi n c l u d et e s tb e h a v i o r , t e s tc o n f i g u r a t i o na n dm e s s a g e b a s e d c o m m u n i c a t i o nb e t w e e nt e s t c o m p o n e n t s t h ed e s i g na n di m p l e m e n t a t i o nm e e t i i l i v 3 3 开发工具及开发环境1 4 第四章支持并行测试的t 3 r t s 实体设计与实现1 5 4 1 测试行为1 5 4 1 1 参数、返回值和执行状态信息传递的实现1 5 4 1 2 默认处理1 9 4 2 测试成分的配置操作2 1 4 2 1 测试成分操作2 2 4 2 1 1 创建测试成分的操作2 7 4 2 1 2 改变测试成分状态的操作2 7 v t t c n - 3 测试平台中并行测试支持的设计实现研究 4 2 1 3 判断测试成分的状态的布尔型操作2 9 4 2 1 4 分布式快照语义的实现3 0 4 2 2 测试成分的引用操作3 3 4 2 3 连接操作3 5 4 3 基于消息的通讯4 l 第五章分布式成分处理的集成与完善:4 4 5 1 分布式t t c n 3 测试平台结构4 4 5 2c h 控制器的设计与实现4 5 5 2 1c h 控制器的总体结构4 5 5 2 2 分式快照的实现4 7 5 2 3 测试成分的部署策略4 8 5 3c h 本地代理的实现4 8 第六章实例分析5 0 6 1 包含并行测试的d n s 测试套说明5 0 6 。2d n s 测试套对应的目标代码5 2 第七章结论和未来工作5 7 7 1 本文所做的工作5 7 7 2 未来工作5 8 参考文献5 9 致 射6 1 攻读硕士学位期间发表的学术论文及科研成果6 2 内蒙古人学硕士学位论文 图表目录 图2 1t t c n 3 测试配置3 图2 2a l t 语句对应的有限状态机4 图2 3a l t 语句的操作语义5 表2 1 测试判定合成规则6 图2 4t t c n 3 测试系统结构7 图2 5s e n d 操作在t t c n 3 测试系统中的表示8 图2 - 6 分布式测试环境基本结构9 图2 7 测试配置和测试成分间通信过程中c h 和t e 的交互9 图2 8c h 模块分布构建图1 1 图3 1t 3 r t s 和e t s 、c h 之间的交互1 3 图4 1 实现测试行为的静态结构1 5 图4 2 实现参数、返回值和函数执行状态的传递的静态结构1 6 表4 1 实现参数、返回值和函数执行状态的传递的方法17 表4 2t 3 l 玎s d e f a u l t l i s t 类中实现默认处理操作的方法2 0 图4 3 执行默认的e x e c u t e 方法2 1 图4 4实现默认处理功能的静态结构21 表4 3t t c n 3 的测试成分操作2 2 图4 5 表示测试成分的静态结构2 3 图4 6 测试成分创建过程2 3 图4 7 本地创建的测试成分哈希表2 4 图4 8 非保活测试成分的状态图2 8 图4 9 保活测试成分的状态图。- 2 8 图4 1 0 测试成分启动过程2 9 表4 4 不同状态的测试成分a l i v e 和r u n n i n g 操作的返回值2 9 图4 1 1 分布式快照示例3 1 图4 。l2 图4 1 l 中a l t 语句的交互序列3 2 图4 1 3 已实现的表示端口的静态结构3 6 v i i t t c n 一3 测试平台中并行测试支持的设计实现研究 4 连接操作的例子3 7 图4 15c o n n e c t 操作的交互序列4 0 图4 1 6d i s c o n n e c t 操作的交互序列4 0 图4 1 7 测试成分间发送消息的交互序列4 2 图5 1 分布式测试平台部署4 4 图5 2 执行e t s 时测试系统动态结构4 5 图5 3c h 控制器中的测试成分哈希表一4 6 图5 4c h 控制器实现框架4 7 图6 1 测试例e x a m p l e r e s o l v e n o k i a 3 的执行过程:5 2 内蒙古大学硕士学位论文 第一章引言 近年来,随着网络和通信技术技术的发展,网络协议、通信和电信软件在社会生活的各 个领域得到广泛应用,逐步成为保证生产和牛活正常进行的基础。由于这些软件的功能越来 越复杂,软件的质量问题也目益突出,在提供强大功能的同时保证软件的质量成为工程应用 领域普遍面临的重要问题。 软件测试技术是评估和改进软件质量的重要手段,通过测试,能够发现软件中存在的错 误和质量问题。软件测试技术丰要包括白盒测试和黑盒测试。白盒测试关注被测系统的内 部实现细节,设计测试例时不仪需要了解规格说明,还需要考虑被测系统内部的逻辑结构。 而黑盒测试则不必关注被洲系统的内部实现,所设计的测试例与被测系统的内部的逻辑结构 无关。 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 nv e r s i o n3 ) 啦嵋1 是e t s i 推出的测试描述语 言,可用来抽象描述对交互式系统的黑盒测试。t t c n - 3 源自i s o i e c9 6 4 6 标准嵋1 中定义的 用于抽象描述对o s i 的网络协议进行一致性测试的t t c n 。然而,t t c n - 3 的应用领域已经不仅 局限于对网络协议的测试,而且已经广泛地应用于对通信和电信软件,以及其它的一些交互 式系统的测试。t t c n 一3 不仅可以用于一致性测试,而且可以用于互操作性测试和性能测试。 目前,国外已存在一些支持t t c n - 3 的商业化测试平台和测试工具,例如德围的t e s t i n g t e c h n o l o g i e s 公司开发的t t c n 一3 测试平台t t w o r k b e n c h 和支持分布式并行测试的t t m e x 隋3 , t e l e l o g i c 公司开发的t a u 旧1 ,o p e ne n v i r o n m e n ts o f t w a r e 公司开发了t t c n 一3 测试环境 o p e n t t c n n 引,d a n e t 公司的t t c n 3t o o l b o x 1 。近年来,国内学术界和工业界也开发了一些 支持t t c n - 3 的测试平台和测试工具,其中包括中国科学技术大学为华为开发的测试平台 l o o n gt e s t i n g n 2 1 引,清华大学开发的基于t t c n 一3 的分布式网络协议测试平台p i t s v 3 n 们和西 南交通大学开发的用于路由器测试的分布式多点并发测试系统引。这些测试平台和测试工具 中,有些主要面向企业应用,另外一些只提供给特定的单位使用。由于这些测试平台和测试 工具的内部实现不公开,因此不易推广和普及。 g 0 4 i t 项目n 6 删是由欧盟创立的、包括内蒙古大学在内的来自不同国家的1 3 个机构参与 的围际合作项目,其目标为提供一个开源的、基于t t c n 一3 的i p v 6 协议测试平台。g 0 4 i t 项 目包括p a c k a g e1 和p a c k a g e2 两部分。p a c k a g e1 提供了可以直接使用的集成了i p v 6 测 试套的测试系统,p a c k a g e2 提供了在l i n u x 环境下开发和执行测试套的平台。目前g 0 4 i t t t c n - 3 测试平台中并行测试支持的设计实现研究 项目已完成a o 阶段的开发,p a c k a g e2 已经支持单测试成分的测试。 2 1 在假设g 0 4 1 t p a c k a g e 2 能够支持单节点并行测试的基础上,实现了用于支持多节点分布式测试的功能。 本文基于g 0 4 i t 项目p a c k a g e2 部分a 0 阶段己实现的功能,在此基础上设计和实现了并 行测试支持功能,并对 2 1 实现的支持多节点分布式测试的功能进行了调整,将其集成到 t t c n - 3 测试平台中。本文描述的并行测试支持功能的实现依据t t c n - 3 标准,由于目前t t c n 一3 标准定义的t c i 接口在实现并行测试功能方面有一些不足,本文对t c i 接口进行了一定程度 的扩展。 本文共分七章。在第章引言部分之后,第二章介绍了t t c n 3 语言及测试测试系统。 第三章分析了实现并行测试的关键问题。在此基础上,第四章论述了支持并行测试的t 3 i 玎s 实体设计与实现;第五章介绍了将已实现的支持多节点分布式测试的c h 集成到测试平台中的 工作,并进一步完善了c h 实体;第六章通过一个测试套的执行过程来验证并行测试支持的 实现;最后是本文的总结和未来工作。 2 内蒙古大学硕士学位论文 第二章t t c n - 3 语言及测试系统简介 t t c n 3 是一种抽象描述测试的语言,它既具有编程语言的特征,又具有形式化语言的特 点。t t c n 3 语言中包含了高级编程语言中所具有的数据类型和值,常量和变量定义,运算 符和表达式,分支、循环和跳转语句。同时,t t c n 3 中也包含了高级语言中不具有的语言 元素,例如端i z l 、测试成分、定时器、a l t 语句、可选步、测试例和测试判定【2 1 。 2 1t t c n 3 核心语言 一个t t c n 一3 的测试套由一个或多个模块构成。一个模块包含模块定义部分和可选的模 块控制部分。模块定义部分包含了模块参数、常量定义、数据类型定义、模版定义、端口类 型定义、测试成分类型定义和测试行为定义,模块控制部分用来控制测试例的执行。 2 】 如图2 1 【2 j 所示,使用t t c n 3 描述测试活动的基本思想是:将被测系统看作一个具有一 个或多个通信端口的黑盒,使用并行执行的测试成分与被测系统的通信端口建立连接,然后 通过端口向被测系统发送数据并接收被测系统的响应,根据被测系统的响应是否与规格说明 一致来生成测试判定【2 1 。 i r c nt e s ts y s t e m f i | ,m t c p t c l i 已 。 二:a 1 1p t f ,1 jl i 一j 1r a b g 七r a c tt e s ts y s t e mi n t e r f a c e 1r1r 、_ 图2 1t t c n 3 测试配置( 2 】 f i g u r e2 1t t c n 3t e s tc o n f i g u r a t i o n 【2 】 t t c n 3 支持3 种测试成分:主测试成分m t c 、并行测试成分p t c 和测试系统接口t s i 2 1 。 m t c 在一个测试例开始执行时自动创建,在测试例执行结束时自动销毁,在每个测试例的执 行过程中有且仅有一个m t c 。p t c 在测试例执行过程中通过c r e a t e 操作动态创建,m t c 终 t t c n - 3 测试平台中并行测试支持的设计实现形f 究 止时,所有正在执行的p t c 立即终止。t t c n 一3 将被测系统抽象为一个特殊的测试成分t s i 2 1 。 在本文后面的章节介绍并行测试功能的实现时,所提到的测试成分与被测系统的交互均是通 过这个特殊的测试成分t s i 实现的。除了t t c n 3 语言中使用的这三种测试成分外,在t c i 标准【5 】中将模块的控制部分看作一个特殊的控制成分。 测试成分之间、测试成分与被测系统间通过端口相互连接和通信【2 】。和i s o i e c 9 6 4 6 【7 】将 端口建模为一个接收数据的队列和一个发送数据的队列不同,在t t c n 3 中,端口被建模为 一个接收数据的队列,这意味着一个将要发送给被测系统或其它测试成分的消息不需要在发 送之前缓存。端口分为基于消息的、基于过程的和两者混合的三种。端口的方向包括i n ( 只 能接收数据) ,o u t ( 只能发送数据) 和i n o u t ( 既能发送数据又能接收数据) 【2 j 。 t t c n 3 的a l t 语句 2 提供了使用形式化方法描述测试活动的能力。可以用有限状态机来 和a l t 语句进行比较:对于有限状态机中的一个状态,如果收到外界的一个输入,有限状态机 的状态可能发生变化并产生输出。对于一个嵌套的a l t 语句,如果将接收操作和其它一些操作 看作看作输入,将发送操作看作输出,将每一个a l t 语句的执行起点看作系统的状态,则可以 将一个嵌套的a l t 语句表示为描述测试状态的有限自动机。例如,图2 2 中左边的a l t 语句可 以看作右边的有限状态机。 a l c 状态l 】p 1 r e c e i v e ( i ) p 1 s e n d ( 弓) : a l t 状态2 】卫i r e c e i v e ( 2 ) 百r 磊磊疆玎7 状态5 】p 1 r e c e i v e 一订j 砷) : 1 ) c p 1 r e c e i v e p 1 s e n d ( b ) ;1 i 状态3 】t 1 t i m e o u t p 1 s e n d ( b ) ;状态4 i a 其它d 超时c 图2 2a l t 语句对应的有限状态机 f i g u r e2 2a na l ts t a t e m e n ta n dc o r r e s p o n d i n gf i n i t es t a t em a c h i n e a l t 语句的操作语义可以表示为图2 3 所示的消息循环【3 1 。在每一轮消息循环开始时首先执 行取快照的操作,如然后依据快照依次判断所有的选项是否匹配( 如果该选项具有防卫表达 式,还需要检查防卫表达式是否成立) ;如果其中有一个选项匹配,则执行该选项。如果所有 4 内蒙古人学硕- 十学位论文 的选项均不匹配,则执行被激活的作为默认的可选步( a l t s t e p ) ,继续检查默认可选步中的选 项是否匹配。如果所有的选项均不匹配,说明没有测试活动关注的事件发生,则继续执行a l t 语句的消息循环。一般情况下,如果一个选项匹配,执行完匹配的选项后后退出a l t 语句的消 息循环,但是可以通过执行r e p e a t 语句重新回到a l t 语句的初始状态继续执行消息循环。( 例 如图2 2 中,状态2 的自环通过执行r e p e a t 语句实现) 。 图2 3a l t 语句的操作语义【习 f i g u r e2 3t h eo p e r a t i o n a ls e m a n t i c o fa l ts t a t e m e n t 【3 】 其中,在a l t 语句的每一轮消息循环开始时首先执行取快照的操作,一个快照表示了一个 瞬时的状态,它包含了所有在a l t 语句的顶层使用的端口、定时器和测试成分的状态【2 】。之所 以需要在a l t 语句的每一轮消息循环开始时执行取快照的操作,是因为在一个a l t 语句的执行 过程中可能会有新的事件发生,如果直接用当前状态执行匹配会产生副作用( s i d ee f f e c t ) 【2 】。 例如,图2 2 左侧的代码中,在状态2 如果收到2 ,则a l t 语句中划线的第一个选项的匹配条 件“ p 1 r e c e i v e ( 2 ) ”和第二个选项的匹配条件“ 】p 1 r e c e i v e ”( 表示p l 端口接收到任何值) 均能够匹配,但由于第一个选项先执行,因此,a l t 语句执行时应当匹配第一个选项。如果不 使用快照执行匹配,则有可能出现这样的情况:在轮消息循环中,检查第一个选项是否匹 配时,p l 端口未收到任何数据,则匹配条件不满足,应该继续检查第二个选项。而在执行完 检查第一个选项的匹配条件的操作、尚未执行检查第二个选项的匹配条件操作时,p 1 端口收 t t c n 一3 测试平台中并行测试支持的设计实现研究 到2 ,则会导致匹配第二个选项。这种与a l t 语句操作语义不符的错误匹配称作副作用。为了 消除副作用,需要在a l t 语句的每一轮消息循环开始时取快照,检查匹配条件时依据取快照时 的状态而不是当前的状态【2 j 。 每一个测试成分的执行都会显示的设置或隐示的产牛测试判定。一个测试判定可以是 n o n e 、p a s s 、i n c o n c 、f a i l 、e r r o r 五个值中的一个【2 1 。其中,n o n e 是一个判定的初始值,如果 一个测试成分执行过程中未设置判定,则该测试成分的判定值为n o n e 。p a s s 判定表示测试通 过,f a i l 表示测试失败,i n c o n c 表示由于环境因素导致无法判定测试究竟是成功还是失败。e r r o r 判定在测试例执行过程中发生运行时错误时由测试系统自动设置。可以使用s e t v e r d i c t 操作设 置当前测试成分的测试判定。表2 1e 2 】为测试判定的合成规则:其中,表格每行的标题表示原 有的判定,表格每列的标题表示新设置的判定,表格中的内容为合成后的判定。例如,一个 测试成分的测试判定为p o n e ,此时,如果使用s e t v e r d i c t 操作将判定设置为i n c o n c ,根据表 2 1 所示的合成规则,合成后的判定为i n c o n c 。如果再次使用s e t v e r d i c t 操作将判定设置为p a s s , 由于设置前的判定为i n c o n c ,根据表2 1 所示的判定合成规则,合成后的判定为i n c o n c 。使用 多个测试成分的判定合成测试例判定同样遵循表2 1 所示的判定合成规则【2 】。 表2 1 测试判定合成规则【2 】 f i g u r e2 1o v e r w r i t i n gr u l e sf o rt h ev e r d i c t 【2 】 氍 一 “ 。+ 新设置的判定值 一? i 矿 ;现有的判定值 , f a i l f n o n e p a s s l n c o n c n o n en o n e p a s s 1 n c o n cf a i l p a s sp a s sp a s s l n c o n cf a i l m c o n cl n c o n cl n c o n c1 n c o n cf a i l f a i lf a i lf a i lf a i lf a i l t t c n 3 的测试行为包括函数、测试例和可选步 2 】。t t c n 3 的函数和高级语言的函数存 在差别。在高级语言中,函数调用意味着阻塞调用程序的执行和启动被调用函数的执行,调 用方在函数返回后继续执行。t t c n 3 支持这样的函数执行方式。同时,t t c n 3 还提供了由 并行测试成分启动函数执行的异步执行方式。如果一个函数通过一个并行测试成分启动,这 个函数的执行将和启动这个测试成分的程序并行执行。这种并行可以实现为单节点环境下的 多线程并发,也可实现为分布式环境下的真正意义上的并行。测试例描述主测试成分的行为, 可以在模块控制部分调用执行或单独执行【2 1 。 可选步用来封装a l t 语句的选项,一个可选步可以在a l t 语句中调用,也可作为默认激活。 6 内蒙占人学硕士学位论文 如果一个可选步作为默认激活,当执行任何一个a l t 语句时,如果所有的选项都不匹配,则调 用作为默认的可选步。如果存在多个激活的可选步,可选步调用的顺序与激活的顺序相反【2 1 。 2 2t t c n 3 测试系统 如上文所述,t t c n 3 是一种抽象描述测试活动的语言。但是要实现可以实际运行的测试 系统,只有抽象的描述是不够的,还需要提供抽象操作的具体实现。在测试不同的被测系统 时,一个抽象的操作的具体实现可能相同也可能不同。例如,可以使用t t c n 3 中抽象的s e n d 操作向被测系统发送数据。当测试一个分层的网络体系结构中的某个特定协议时,这个s e n d 操作需要实现为下层协议提供的数据发送服务。因此,对不同层次的网络协议进行测试时, 抽象的s e n d 操作对应不同的实现;而对于同一层次的不同协议进行测试时,抽象的s e n d 操 作对应的实现可能相同。 为了将抽象的测试描述和具体的测试实现分离,e t s i 制定的t r i 4 1 和t c i 5 1 标准文档定 义了图2 4 所示t t c n 3 测试系统的架构:t t c n 3 测试系统由t e 和适配层实体组成。适配 层实体包含测试管理( t e s t m a n a g e m e n t ,t m ) 、测试日志( t e s tl o g g i n g ,t l ) 、编解码( c o d i n g a n dd e c o d i n g ,c o d e c ,c d ) 、成分处理( c o m p o n e n th a n d l i n g ,c h ) 、被测系统适配器( s u t a d a p t o r ,s a ) 和平台适配器( p l a t f o r m a d a p t o r ,p a ) 。t e 又包含了t t c n 3 运行时系统t 3 r t s , 可执行测试套e t s ,内置的编解码模块e d s 。 t t c n 一3 测试系统 代。甲甲甲甲 t e t r i s u t 图2 4t t c n - 3 测试系统结构【4 5 1 f i g u r e2 4t h eb a s i cs t r u c t u r eo ft t c n 3t e s ts y s t e m 【4 5 】 t m 负责管理测试系统,提供了管理和控制测试执行的用户接口。t l 负责记录测试日志。 c d 负责把要发送给被测系统的数据编码为被测系统能够识别的消息和把从被测系统接收到 的消息解码为t t c n 3 数据。c h 负责测试成分的配置和通信。s a 负责实现测试成分与被测 系统的通信,p a 负责实现与操作系统平台相关的定时器操作和外部函数调用。其中,t m 、 t t c n 一3 测试平台中并行测试支持的设计实现研究 t l 、c d 、c h 通过t c i 与t e 交互;s a 和p a 通过t r i 与t e 交互。1 4 s t c i 包含了t e 和t m 、t l 、c d 、c h 之间的接口。其中,除了t e 和t l 的接口函数完 全在t l 中实现并由t e 来调用外,t e 和t m 、c d 、c h 之间的接口函数既有在t e 中实现的, 也有在适配层实体中实现的。在t c i 文档中,使用“p r o v i d e d 表示在适配层中实现并提供 给t e 调用的操作;用“r e q u i r e d ”表示在t e 中实现并在适配层调用的操作。例如t c i c h p r o v i d e d 表示在c h 中实现的,由t e 调用的操作;而t c i c hr e q u i r e d 则表示在t e 中实现 的,由c h 调用的操作。1 5 1 t r i 包含了t e 和s a 、p a 之间的接口。这些接口函数既有在t e 中实现的,也有在适配 层实体中实现的。在t r i 文档中,使用箭头“一 表示t e 和适配层实体间调用关系。例如 t e s a 表示在s a 中实现的,由t e 调用的操作;而s a t e 则表示在t e 中实现的,由s a 调用的操作。【4 1 t e 包含了t t c n 3 运行时系统t 3 r t s ,由t t c n 3 描述的抽象测试套经过编译后产生的 可执行测试套e t s ,内部的编解码模块e d s t 4 1 。t 3 r t s 实体中,实现测试成分的创建和销毁, i 以及通信操作、a c t i o n 操作、外部函数和时钟操作的操作语义,并实现和适配层实体的交互。 e t s 由t t c n 3 描述的抽象测试套经过编译后产生,e t s 不直接通过t r i 和t c i 与适配层实 体交互。而是调用t 3 r t s 中封装的操作,通过t 3 r t s 实现和适配层实体的交互【4 1 。 重新回到使用s e n d 操作向被测系统发送数据的例子。如图2 5 所示,a t s 中的s e n d 操作 经过编译后转化为e t s 中调用t 3 r t s 中实现的s e n d 操作的语句,t 3 r t s 中实现的s e n d 操 作调用t r i 中定义的标准接口函数t r i s e n d ,由s a 实现向被测系统发送数据的操作。通过t r i 中定义的标准接口函数t r i s e n d ,封装了数据发送操作的具体实现。如果需要采用不同的方式 发送数据,则只需改变s a 中t r i s e n d 函数的实现。如果在测试不同的被测系统时需要使用相 同的方式来发送数据,可以复用s a 中t r i s e n d 函数的实现。1 a t se t s t 3 r t ss a 图2 5s e n d 操作在t t c n 3 测试系统中的表示 f i g u r e2 5r e p r e s e n t a t i o no f s e n do p e r a t i o ni nt t c n 一3t e s ts y s t e m 内蒙古火学硕十学位论文 通过t r i 和t c i 标准中定义的测试系统架构,将抽象的测试描述和具体的测试实现分离, 从而提高测试系统的开发效率,便于测试系统的修改和维护。 分布式的t t c n 3 测试系统的结构如图2 6 所示【5 】。一个分布式的t t c n 3 测试系统包括 一个t m 和一个c h ,每个测试节点上都有一个本地的t e 、c d 、s a 和p a 。在所有的t e 中, 有一个启动测试例和计算全局测试判定的特殊t e 。【5 】 馑t e 善鎏籀 s p e e i 盘lt e : 隔t ;密t i f 嗡融掰t t 垂窘e 魏孽蟹鑫 c a k :u t a i n gf i n a lv e t r d i c | 曩黪翟灞曝囊黪翻嘲 赣滋溺兹戮潮 图2 - 6 分布式测试环境基本结构【5 】 f i g u r e2 - 6b a s i cs t r u c t u r eo fd i s t r i b u t e dt e s t i n ge n v i r o n m e n t 【5 】 在适配层实体中,c h 负责处理测试成分的配置和测试成分间通信操作。与i s o i i e c 9 6 4 6 6 】 中定义的用于控制和协调多个测试器的测试协调过程( t c p ) 类似,c h 提供了测试成分交互 的中间媒介,它不依赖s u t ,用于控制测试成分执行和测试成分间交换控制信息的功能。图 2 7 描述了测试配置和测试成分间通信过程中c h 和t e 的交互序列:当需要创建一个测试成 分或对一个测试成分进行操作时,首先由某一个t e 通过t c i c hp r o v i d e d 接1 2 1 向c h 发出操 作请求,然后再由c h 通过t c i c hr e q u i r e d 接1 2 在一个t e 上进行相应的操作。 回回国 p 坚旦! 竺坠一t c i c hr e q u i r e d ,- - - - _ _ - - - - _ _ - _ _ _ _ 。- _ _ _ - _ _ _ _ - - - _ - 。i _ _ - tlr :liii 图2 7 测试配置和测试成分间通信过程中c h 和t e 的交互 5 】 f i g u r e2 7t h ei n t e r a c t i o nb e t w e e nt ea n dc hi ne x e c u t i o no ft e s tc o n f i g u r a t i o na n dc o m m u n i c a t i o no p e r a t i o n 5 】 9 一 一 一一一一 回一 返一 一 一一一一 ;卜、。 一一一一一一 回一 返一 一 一 一一一 卜, t t o n - 3 测试平台中并行测试支持的设计实现研究 这里需要特别指出的是,t r i 和t c i 文档中定义的是一个集成了e t s 的,用于对特定的 s u t 进行测试的测试系统的架构,而这种实现特定测试目的的测试系统的架构与一个用于开 发和执行t t c n 3 测试套的通用的t t c n 3 测试平台的架构存在一定的差别。例如,一个通 用的测试平台一般不包含s a 和c d ,因为s a 和c d 是和具体的测试套相关的。反之,一个 通用的测试平台需要包含t t c n 3 的编译器,也可以包含编解码生成器,但是这些模块与测 试套的执行无关,因此t r i 和t c i 文档并未将这些实体定义为测试系统的组成部分。 2 3 现有基础 目前,g 0 4 i t p a c k a g e 2 1 9 1 已经实现了支持单测试节点单测试成分执行的功能,其中包括支 持模块控制部分和测试例的执行,支持丰测试成分和被测系统间基于消息的通讯。p a c k a g e 2 目前还不支持函数、可选步和并行测试成分。 【2 1 在假定g 0 4 i tp a c k a g e 2 中t 3 r t s 模块支持单节点上多个测试成分并行执行的基础上, 实现了支持测试成分分布式执行的c h 模块,其结构如图2 8 所示。c h 由分布在不同测试节 点上的多个模块构成。其中,t m 和特殊的t e ( 记为t e * ) 所在的节点包含了用于和其它测 试节点通讯的c h 通讯模块,整个测试系统中所有测试成分的成分名地址映射信息和根据成 分名地址映射信息来选择向哪个测试节点转发测试成分操作请求的路由模块;其它测试节点 包含t c i c hr e q u i r e d 和t c i c hp

温馨提示

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

评论

0/150

提交评论