




已阅读5页,还剩72页未读, 继续免费阅读
(计算机科学与技术专业论文)基于ttcn3抽象语法树的可执行测试套的生成研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
! i i i i i - i i ,i i i i j i i i i l 6 i i i i l l i i i i l l i 1 1 2 i e 本人声明:所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。除 了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人己经发表或撰写过 的研究成果,也不包含为获得内蒙古大学或其他教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢 学位论文作者签名:三陬 指导教师签名: 日期:2i 芝:! ; 日期: 在学期间研究成果使用说明书 学位论文作者完全了解内蒙古大学有关保留和使用学位论文的规定,即:内蒙古大学 研究生在校攻读学位期间论文工作的知识产权单位属内蒙古大学。学校有权保留并向国家 有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学 位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。 作者今后使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的 同意;若用于发表论文,版权单位必须署名为内蒙古大学方可投稿或公丌发表。 学位论文作者签名:三暾 指导教师签名:盟, 日期:拗f j 216j 3 日期:垒! ! ! :墨:f 扩 墨 内蒙古人学硕士学位论文 基于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 测试平台由多个实 体组成,编译系统是测试平台的重要组成部分,它的功能是将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 抽象测试套翻译成对应的 c + + 代码,然后借助c + + 语言编译器将生成的c + + 代码编译为可以直接在计算 机上执行的代码。 t t c n 3 编译器后端的设计与实现主要包括如下几方面的工作:对可执行 测试套中所需的t e 内部接口进行了需求分析与设计;基于语法树设计了用于 生成可执行测试套的辅助数据结构;通过扫描语法树,生成这些辅助数据结构, 并借助这些辅助数据结构,根据定义的t e 内部接口实现了从t t c n 3 语法树 到可执行测试套的翻译。本文实现的t t c n 3 语言编译器后端支持包括模块、 数据类型和值、模板、测试行为、测试配置和基于消息通信在内的t t c n 3 语 言元素的翻译。最后本文通过一个d n s 测试套实例说明了t e 内部接口的使用 基于t f c n 3 抽象语法树的可执行测试套的生成研究 整翻译过程并给出了生成的可执行测试套。 t t c n 3 ,抽象测试套,语法树,可执行测试套 i i 内蒙古火学硕l :学位论文 t h es t u d yo ng e n e r a t i n ge x e c u t a b l et e s ts u i t e b a s e do nt t c n 3a b s t r a c ts y n t a xt r e e a b s t r a c t t t c n 一3i sak i n do fs t a n d a r dt e s td e s c r i p t i o nl a n g u a g e ,a n di tc a nb eu s e df o r t h e s p e c i f i c a t i o n o fa l l t y p e s o fr e a c t i v e s y s t e m t e s t so v e rav a r i e t yo f c o m m u n i c a t i o np o r t s t t c n 一3h a sb e e nw i d e l yu s e di np r o t o c o lt e s t i n g t t c n 一3 c a nb en o to n l ya p p l i e dt of u n c t i o n a lt e s t i n g ,b u ta l s oo t h e rk i n d so ft e s t i n g ,f o r e x a m p l e ,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 g t e s ts u i t ed e s c r i b e dw i t ht t c n - 3n e e d st ob ec o m p i l e da n de x e c u t e di nt h e t e s tp l a t f o r m t t c n 一3t e s tp l a t f o r mc o n s i s t so fm u l t i p l ee n t i t i e s ,a n da ni m p o r t a n t p a r to ft t c n - 3t e s tp l a t f o r mi sc o m p i l i n gs y s t e m ,w h o s ef u n c t i o ni st r a n s l a t i n g t h e t t c n - 3a b s t r a c tt e s ts u i t e ( a t s ) i n t oe x e c u t a b l et e s ts u i t e ( e t s ) t h et t c n - 3 c o m p i l e ri s d i v i d e di n t ot h ef r o n t - e n da n dt h eb a c k e n d ,t h ef r o n t e n ds c a n st h e t t c n - 3t e s ts u i t e ,m a k e sl e x i c a la n a l y s i s ,s y n t a xa n a l y s i s ,s e m a n t i ca n a l y s i sf o rt h e t e s ts u i t e ,a n dg e n e r a t e st h ea b s t r a c ts y n t a xt r e e ( a s t ) a n ds y m b o lt a b l e t h e b a c k e n dt r a v e r s e st h ea s ta n dc o m p l e t e st h eg e n e r a t i o no ft h ee t s t h i st h e s i sm a i n l yr e s e a r c h e so nt h eb a c k - e n do ft h et t c n 一3c o m p i l e r 1 h e d e s i g na n di m p l e m e n t a t i o no fc o d eg e n e r a t i o n t t c n 一3l a n g u a g eh a sc o m p l e x c h a r a c t e r i s t i c s ,s ot t c n 一3c o m p i l e rd o e s n td i r e c t l yt r a n s l a t et h et t c n 一3a s ti n t o t h ea s s e m b l yc o d e ,b u tt r a n s l a t e st h et t c n - 3a s ti n t ot h ec o d ed e s c r i b e dw i t h i i i 基于t t c n 3 抽象语法树的町执行测试套的生成研究 c + + ,t h e n ,c o m p i l e st h ec o d ed e s c r i b e dw i t hc + + u s i n gc + + c o m p l i e ri n t ot h ec o d e , w h i c hc a nb ee x e c u t e dd i r e c t l y 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 eb a c k - - e n do ft h et t c n - 3c o m p i l e r i n c l u d e st h ef o l l o w i n ga s p e c t so fw o r k :i td e s i g n st h et ei n t e r n a li n t e r f a c eu s e di n e t sa n dt h es e c o n d a r yd a t as t r u c t u r eu s e df o rg e n e r a t i o no fe t s ;t h e n ,t h e s e c o n d a r y d a t as t r u c t u r e sa r eg e n e r a t e db y s c a n n i n gt h ea s t , a n dt h et t c n 一3a s t i st r a n s l a t e di n t ot h ee t s u s i n gt ei n t e r n a li n t e r f a c e t h eb a c k e n do ft h et t c n 一3 c o m p i l e rs u p p o r t st h et r a n s l m i o no ft h et t c n 一3l a n g u a g ee l e m e n t si n c l u d i n g m o d u l e ,d a t et y p ea n dv a l u e ,t 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 n ,a 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 n s a tl a s t ,b ya n a l y z i n gt h ed n s t e s t e r , t h et h e s i sp r e s e n t st h eu s a g e o ft h et ei n t e r n a li n t e r f a c e ,t h et r a n s l a t i o np r o c e s sf r o mt t c n 一3a s tt ot h ee t s , a n dt h ee t s g e n e r a t e d k e yw o r d s :t t c n 3 ,a t s ,a s t ,e t s i v 内蒙古大学硕l 学位论文 目录 摘要i a b s t r a c t i i i 目录1 0 r 图表目录v i i 第一章引言l 1 1 本论文的研究背景1 1 2 国内外研究现状l 1 3 论文目标2 1 4 论文组织结构2 第二章t t c n 3 及其测试系统概述。3 2 1 协议测试3 2 2t t c n 3 语言。3 2 3t t c n 3 测试系统简介1o 第三章t e 内部接口需求分析与设计1 2 3 1t t c n 3 编译器的实现途径及编译流程1 2 3 2 可执行测试套中所调用的t e 内部接口的设计1 3 3 2 1 模块1 3 3 2 2 测试成分1 3 3 2 3 端口15 3 2 4 测试行为15 3 2 5 时钟18 3 2 6 消息1 8 3 2 7 小结18 第四章可执行测试套的生成与实现2 0 4 1t t c n 3 的语法树设计2 0 4 1 1 语法树设计思想2 0 4 1 2 语法树结构2 1 v 基卡t r c n - 3 抽象语法树的可执行测试套的生成研究 4 2 语法树的遍历及辅助数据结构的生成。2 2 4 2 1 语法树的遍历2 2 4 2 2 辅助数据结构的设计2 4 4 3 可执行测试套的生成3 0 4 3 1 模块3 0 4 3 2 数据类型和值3 2 4 3 3 模板3 7 4 3 4 函数、测试例和可选步3 9 4 3 5t t c n 3 配置语句4 1 4 3 6t t c n 3 通信语句。5 0 第五章一个完整的基于a t s 语法树的处理过程5 3 5 1 域名解析测试套5 3 5 2 域名解析可执行测试套的生成一5 4 第六章总结与展望6 2 6 1 本文工作总结6 2 6 2 未来展望6 3 参考文献6 4 至j 【谢6 6 v i 内蒙古大学硕i :学位论文 图表目录 图2 1 :t t c n 3 测试配置概念【1 1 6 图2 2 :t t c n 3 通信端口模型【l 】。7 图2 3 :选项行为描述图【l j 9 图2 4 :连接和映射操作描述刚1 1 1 0 图2 5 :测试环境的基本结构图1 1 图3 1 :t t c n 3 测试过程1 2 图3 2 :t t c n 3 的编译过程;1 3 图3 3 :测试行为的继承关系图1 6 表3 1 :t e 内部接口。1 8 图4 1 :字符串定义的语法树结构2 1 表4 1 :语法树结点的属性2 1 图4 2 :可执行测试套生成过程2 2 图4 3 :语法树整体结构2 3 图4 4 :单层遍历函数的实现2 4 表4 2 :辅助数据结构简表2 5 图4 5 :枚举类型的语法树结构2 6 图4 6 :将枚举类型加入到类型表的过程2 7 图4 7 :t y p e _ m a p 结构2 7 图4 8 :c o m p的结构2 9 t o b ep r o c e s s e d 图4 9 :p o r ti n f o 的结构2 9 图4 1 0 :模块的语法树结构3 0 图4 1 1 :模块i d 的处理过程31 表4 3 :t t c n 3 数据类型3 1 3 2 图4 1 2 :数据类型继承关系图【1 4 】3 3 图4 1 3 :枚举类型代码生成过程3 4 图4 1 4 :数据值继承关系图【14 1 3 5 图4 1 5 :变量语法树结构3 6 v i i 基于t r c n 3 抽象语法树的可执行测试套的生成研究 图4 16 变量定义的翻译过程3 7 图4 1 7 - 构造模板实例的过程3 9 表4 4 :连接操作的翻译4 1 图4 1 8 - 映射操作的语法树结构4 3 表4 5 :测试成分操作的翻译4 4 图4 1 9 d o n e 语句的翻译4 8 表4 6 :引用操作的翻译5 0 图5 1 :d n s 测试套的测试行为5 3 图5 2 - d n s 测试套执行过程5 5 表5 1 :d n s 测试套的数据结构t y p e _ m a p 包含的内容5 6 表5 2 :d n s 测试套的数据结构t e s t c a s ev a r t a b l e 包含的内容5 7 图5 3 - d n s 测试套的测试例生成过程5 7 v i i i 内蒙古大学硕i :学位论文 1 1 本论文的研究背景 第一章引言 随着互联网技术的发展,网络的应用已经渗透到我们生活的各个领域,许多网络软件 也随之诞生。我们对网络的质量提出了更高的要求,如对网络设备、网络软件的功能、安 全性以及性能的要求。这就需要对各种网络产品进行测试,测试技术受到越来越多的关注。 而协议测试【1 捌是测试领域的重要部分。 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 3 卅是一种标准的测试描述语 言,可用于多种通信端口上的各种响应系统的测试。t t c n 3 已经被广泛地应用于协议测试。 同时,t t c n 3 不仅可以用于一致性测试【1 - 2 , 7 - 9 】,还可以用于其它类型测试,如互操作性测 试1 9 】和性能测试【】- 2 。 用t t c n 3 语言编写的测试套称为抽象测试套( a t s ,a b s t r a c tt e s ts u i t ) ,需要在测试平台 下编译为可执行测试套( e t s ,e x e c u t a b l et e s ts u i t e ) 才能执行。t t c n 3 测试平台的设计与实 现是一项复杂的工程。目前,市场上存在一些商用的t t c n 3 编译器系统,用户可以购买 某些协议的可执行测试套产品,或在这些编译器的基础上开发一些简单的测试例。但是, 可执行测试套产品价格昂贵,部分核心技术对用户封闭,在一定程度上限制了t t c n 3 语 言的广泛使用。 g 0 4 i t 项目 1 0 - 1 4 1 针对存在的问题,推出一个开放源代码的t t c n 3 编译器执行平台。 g 0 4 i t 项目已经实现了t t c n 3 核心语言的部分功能。笔者拟在g 0 4 i t 项目的基础上开发 编译器,将t t c n 3 抽象测试套翻译为可执行测试套。t t c n 3 语言编译器包括前端和后端, 前端扫描t t c n 3 源程序,并对其进行词法分析、语法分析和语义分析,生成抽象语法树 和符号表。后端通过遍历抽象语法树生成可执行测试套。 1 2 国内外研究现状 一些商业工具已经广泛使用了t t c n 的早期版本,但t t c n 3 是e t s i 于2 0 0 2 年发布的 新型测试描述语言,最新的版本是2 0 0 9 年6 月发布的。目前,国内外都在积极的研究t t c n 3 测试执行平台。国际上,比较著名的是t e l e l o g i c 1 5 1 公司开发的t e l e l o g i ct a u t e s t e r ,德国t e s t i n g 皋于t t c n 一3 抽象语法树的可执行测试套的生成研究 t e c h n o l o g i e s l l 6 公司开发的t t c n 3 测试平台t t w b r k b e n c h 和支持分布式并行测试的t t m e x , 以及o p e ne n v i r o n m e n ts o f t w a r e1 1 7 】公司开发的t t c n 3 测试环境o p e n r c n 。其它一些以前开 发t t c n 2 测试产品的公司如d a n e t l l 8 j 也在积极开发t t c n 3 的相关工具,如t t c n 3t o o l b o x 。 在国内,中国科学技术大学和华为开发了测试平台l o o n gt e s t i n g 1 9 1 ,清华大学开发了基于 t t c n 3 的分布式网络协议测试平台p i t s v 3 1 2 0 】和西南交通大学开发了用于路由器测试的分布 式多点并发测试系统【2 1 1 。 开发一个开放源代码的t t c n 3 测试执行平台是非常必要的。g 0 4 i t 项目是由欧盟创立 的、多方参与的国际合作项目,旨在为基础研究用户( r e s e a r c hi n f r a s t r u c t u r eu s e r s ) 提供一 个免费的、开源的和通用的i p v 6 测试环境,此环境是基于t t c n 3 的,包括测试工具、测试 套和相关服务等方面。项目已于2 0 0 6 年初启动,于2 0 0 8 年a 0 阶段已经结束。本项目由b i i 、 国家信产部电信研究院和i n r i a 、内蒙古大学、北京邮电大学共同完成,目标是在l i n t t x2 6 & g c c 3 4 环境下,开发t t c n 3v 2 的测试开发环境,包括测试执行环境和编译器原形,采用 j a v 们+ + ,实现跨平台的、开源的t t c n 3v 3 编译和测试工具。 1 3 论文目标 本文在g 0 4 i t 项目基础上,通过对语法树结构和可执行测试套中所需的t e 内部接口 的分析,设计和实现t t c n 3 编译器的后端【2 2 】,即通过对语法树的遍历,生成用c + + 语言 描述的可执行测试套。并通过一个实例说明可执行测试套中所需t e 内部接口的使用方式以 及从语法树到可执行测试套的完整翻译过程。 1 4 论文组织结构 本论文共分为6 章,第一章为文章的引言部分,主要阐述了论文的研究背景。第二章 介绍了文章涉及到的相关技术,包括协议测试、t t c n 3 语言及其测试系统。第三章说明了 可执行测试套生成中t e 内部接口的分析与设计。第四章阐述了可执行测试套的生成与实 现。第五章介绍了一个完整的基于a t s 语法树的处理过程。第六章总结了本论文完成的工 作,并说明了对未来工作的展望。 2 内蒙古人学硕士学位论文 第二章t t c n 3 及其测试系统概述 t t c n 3 是一种测试描述语言,它被广泛地应用于协议测试。t t c n 3 语言在语法和语 义上类似于其他高级程序设计语言,但是增加了一些新的特性,如基于消息和基于过程的 通信、模板匹配功能和描述动态测试配置能力等【l 】。用t t c n 3 语言编写的测试套称为抽象 测试套,它需要翻译成可执行测试套,然后在测试系统下才能执行。 2 1 协议测试 协议测试主要用于检验各种网络产品是否存在错误,是否满足规范。协议测试包括一 致性测试、性能测试和互操作性测试三种类型。一致性测试用于检验协议实现是否与协议 规范相一致,是一种黑盒测试【2 3 j 。一致性测试可以划分为三个阶段:第一阶段用测试描述 语言生成测试套,称为抽象测试套,抽象测试套还不能在具体的测试平台下执行;第二阶 段将抽象测试套转化为可执行测试套,它可以在测试平台下执行:第三阶段为执行阶段, 在测试平台下运行可执行测试套,得出测试判定,并将测试结果记录在一致性测试报告中。 性能测试用于检验被测系统吞吐量、延迟和数据传输率等性能指标。互操作性测试用于检 验遵循同一协议规格说明的不同协议实现间的协作能力。 2 2t t c n 3 语言 t t c n 3 的顶层单元是模块,模块不可以嵌套定义,但是可以用i m p o r t 语句导入其他模 块的定义。一个模块由定义部分和可选的控制部分组成。模块的定义部分可以定义数据类 型、模板、常量、函数、测试例以及成分等,这些定义在整个模块中都是全局可见的。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 程序结构如下所示: m o d u l ee t s i d n s t e s t s t e s td e f i n i t i o np a r t c o n t r o l 基于t t c n 3 抽象语法树的可执行测试套的生成研究 2 2 1t t c n 3 数据 t t c n - 3 语言包括预定义的基本类型和一些特殊类型。基本类型有整型( i n t e g e r ) 、布 尔类型( b o o l e a n ) 和串类型等。这些基本类型可以构造结构类型,如记录类型( 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 类型( 是一个联合类型, 每个成员是模块中任何一种已知类型) 、c o m p o n e n t ( 成分类型,承载测试活动) 和p o r t ( 端 口类型,各个成分间的通信端口) 掣1 1 。 可以在基本类型上附加一些限制创建子类型,这些限制包括列表( 1 i s t s ) 、范围( r a n g e s ) 、 长度( 1 e n g t h ) 和模式( p a t t e r n ) 等。用关键字t y p e 标识子类型的定义。例如: 锣p ec h a r s t r i n gm y s t r i n g l ( “a b c ”,”1 2 3 4 , x y z ”) 变量是指在程序运行过程中值可以改变的型2 4 1 。t t c n 3 不支持全局变量,变量可以定 义在模块控制部分、函数、测试例、可选步以及测试成分中。用关键字v a r 标识变量的定义, 可以定义各种数据类型的变量。例如: v a ti n t e g e rm y v a r 2 2 2t t c n 3 模板 模板也是t t c n 3 特有的类型,用于传送一个特定值或者是测试接收的值是否与模板 说明相匹配。模板有消息模板和过程模板。消息模板可以用于发送消息,也可以用于接收 消息。用于发送消息的模板必须有一个确定的、完整的域值,不能直接或者间接地使用匹 配机制。例如: 够p er e c o r dm y m e s s a g e t y p e i n t e g e rf i e l dl , c h a r s t r i n gf i e l d 2 , t e m p l a t em y m e s s a g e t y p em y t e m p l a t e 4 内蒙古火学硕i = 学位论文 f i e l d l := 1 2 3 , f i e l d 2 := m y n a m e ”, m y p c o s e n d ( m y t e m p l a t e ) ; 用于接收消息的模板将接收到的数据与模板相匹配,但接收的数据不与模板绑定。例 如: t e m p l a t em y m e s s a g e t y p em y t e m p l a t e f i e l d l := ? , f i e l d 2 := p a r e m “李 , ) m y p co r e c e i v e ( m y t e m p l a t e ) ; 过程模板可以用于过程调用,也可以用于接收过程调用。用于过程调用的模板必须为 过程参数( i n 参数、i n o u t 参数) 提供确定的值的集合,o u t 参数的值被忽略,不能直接或者 间接地使用匹配机制。例如: s i g n a t u r er e m o t e p r o c ( i ni n t e g e rp a r l ,o u ti n t e g e rp a r 2 ,i n o u ti n t e g e rp a r 3 ) r lt u r ni n t e g e r ; t e m p l a t er e m o t e p r o ct e m p l a t el := p a r l := 1 , p a r 2 :22 , p a r 3 := 3 ) m y p c o c a l l ( r e m o t e p r o c :t e m p l a t e1 ) ; 用于接收过程调用的模板为过程参数( i n 参数、i n o u t 参数) 提供数据匹配功能,o u t 参数 被忽略,但不将数据与模板相绑定。例如: t e m p l a t er e m o t e p r o ct e m p l a t e 2 :| = p a u r l := ? , p a r 2 := ? , 基于t t c n 3 抽象语法树的可执行测试套的生成研究 p a r 3 := ? m y p c o g e t e a l l ( r e m o t e p r o c :t e m p l a t e 2 ) ; 2 2 3t t c n 3 测试配置 t t c n 3 测试配置用来描述并发测试,它由相互连接的一个主测试成分( m t c ) 和零 个或多个并行测试成分( p t c ) 组成,如图2 1 所示。 t t c nt e s ts y s t e m 飞f r c p t c i l。p t f ,| jk - 7 l 1 r a b s t r a c t r e s ts y s t e mi n t e r f a c e 1 r1r 一“、 、, 、:。一 r e a lt e a ts y s t e mi n t e r f a c e 图2 1 :t t c n 3 测试配置概念【1 1 f i g u r e 2 1 :c 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 m t c 在每个测试例开始执行时由系统自动创建,在测试例执行过程中动态地创建、启 量和时 测试成 内蒙古人学硕l j 学位论文 端口是成分间通信的纽带,它的定义由关键字t y p ep o r t 来标识。它是双向的,一种是 发送方向,一种是接收方向。它被模拟为接收方向上的先进先出队列。当发送数据时,将 数据直接发送,而不缓存。但在接收数据时,首先将数据放入缓存区,然后由接收方从缓 存区提取数据,如图2 2 所示。端口可以被分为基于消息的端口、基于过程的端口和混合的 端口。 图2 2 :t t c n 3 通信端口模型1 1 1 f i g u r e2 2 :t t c n - 3c o m m u n i c a t i o np o r tm o d e l 2 2 4t t c n 3 函数、测试例和可选步 为了完成测试目的,函数、测试例和可选步用于组织测试过程,完成某一特定运算或 者定义默认测试行为。 函数的定义与其它高级语言中的函数定义方式类似,用关键字f u n c t i o n 标识,主要用于 组织测试行为和完成某一特定运算。函数有值、模板、时钟和端口四种类型的参数。函数 可以有返回值,也可以没有。函数定义头部可以有r u n so n 子句,也可以没有。具有r u n so n 子句的函数可以运行在r u n so n 子句标识的成分类型上,它可以使用成分类型中定义的常量、 变量和时钟,使用方式和使用函数本身定义的常量、变量和时钟的方式是一样的。测试成 分操作s t a r t 只能启动具有r u n so n 子句的函数。一个简单的函数定义如下: f u n c t i o nm y f u n c t i o n ( ) r u n so nm y p t c t y p e v a l i n t e g e rm y v a r :2 5 : p c o1 s e n d ( m y v a r ) ; ) 测试例可以独立地完成一个特定的测试目的。测试例执行开始时,它处于一个稳定状 态。测试例结束时,它处于另一个稳定状态,并得出一个测试判定。可以说,测试例是一 种特殊的函数,它的定义方式与函数的定义类似。所不同的是,测试例在参数列表后有一 个必选的r u n so n 子句和一个可选的s y s t e m 子句。r u n so n 子句标识了运行测试例的主测试 7 茎主里型:! 垫鏊堕鎏丝竺! ! 垫! 三型蔓至堕生垡堕塑 成分的成分类型,s y s t e m 子句标识了测试系统接口成分类型。测试例的定义由关键字t e s t c a s e 标识,它有值和模板两种类型的参数。一个简单的测试例定义如下: t e s t c a s em y t e s t c a s e o n e 0r u n so nm y m t c t y p es y s t e mm t t e s t s y s t e m t y p e ) 可选步用于组织分支语句( a l t 语句) 的选项或说明默认行为。可选步的定义包括一组 可选的本地定义的集合( 如常量、变量和时钟等) 和一个a l t 语句选项的集合,且本地定义 须在a l t 选项之前定义。可选步可以调用函数和其他的可选步,它也可以被激活为默认行为。 可选步的定义与函数也是类似的,它有值、模板、时钟和端口四种类型的参数,有可选的 l t l n so n 子句。它可以使用r u n so n 子句标识的成分类型中的常量、变量、时钟和端口。所不 同的是它没有返回值。可选步的定义由关键字a l t s t e p 标识。一个简单的可选步定义如下: a l t s t e pa n o t h e r a l t s t e p ( i ni n t e g e rm y p a r l ) i r u n so nm y c o m p o n e n t t y p e v a ri n t e g e rm y l o c a l v a r := m y f u n c t i o n o ; c o n s tf l o a tm y f l o a t := 3 4 1 ; 口p c o1 r e c e i v e ( m y t e m p l a t e ( m y p a r l ,m y l o c a l v a r ) s e t v e r d i c t ( i n c o n c ) ; ) 口p c 0 2 r e c e i v e r e p e a t ) ) 2 2 5t t c n 3 程序语句 t t c n 3 程序语句包括基本程序语句、选项行为语句、配置操作、通讯操作、时钟操作 和测试判定操作。 ( 1 ) 基本程序语句主要包括赋值语句、选择语句和循环语句,它们的使用方式与其它高级程 序设计语言中基本程序语句的使用方式是一样的。 ( 2 ) 选项行为的语句主要包括a l t 语句、r e p e a t 语句和i n t e r l e a v e 语句。a l t 语句被表示成形成 执行路径树的可能的选项的集合,如图2 3 所示。 8 内蒙古大学硕j :学位论文 s 4 :一 _ _ s 7 s 图2 3 :选项行为描述图【1 l f i g u r e2 3 :i l l u s t r a t i o no fa l t e r n a t i v eb e h a v i o r a l t 语句由关键字a l t 标识,它由一组由布尔表达式防卫的分支和相应的语句块组成。这些 分支可以调用可选步,也可以使用r e c e i v e 、t r i g g e r 、g e t c a l l 、g e t r e p l y 、c a t c h 、c h e c k 、f i m e o u t 、 d o n e 和k i l l e d 等操作,这些操作表示通信的接收和处理、时钟超时或并行测试成分的终止等。 同时,a l t 语句也可以没有防卫表达式。由于成分执行状态在不断变化着,要对某一状态一些 信息进行计算,应将这个状态的信息记录下来,快照就实现了这个作用。快照是某一时刻测 试成分的状态,它包括计算防卫表达式值的信息、所有相关的被停止的成分和超时事件以及 相关的入队列中的消息。 当执行到a l t 语句时,系统首先对当l j 状态取一个快照。按照甜t 语句的分支、所调用 的a l t s t e p 的顶层选项以及默认行为的出现顺序逐一进行处理。如果a l t 语句的所有分支、被 调用的可选步的顶层选项以及被激活的默认行为都没有被选择和执行,需要重新取快照,即 重新计算a l t 语句的各个分支并进行处理。一个简单的a l t 语句如下: a l t 【】p c o r e c e i v e ) 】a n o t h e r a l t s t e p ( ) ; 【】m y t i m e r t i m e o u t ) ) ( 3 ) 配置操作( c o n f i g u r a t i o no p e r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-江苏-江苏保健按摩师四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西地图绘制员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东热处理工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东机械热加工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东地质勘查员五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东保育员五级(初级工)历年参考题库含答案解析
- 2020-2025年初级经济师之初级建筑与房地产经济通关题库(附答案)
- 2025年驾驶证考试-客车理论考试-客车驾驶证(科目一)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-铁路职业技能鉴定-铁路职业技能鉴定(铁路钢轨探伤工)技师历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-铁路职业技能鉴定-变电值班员(初级工)历年参考题库含答案解析(5套)
- GB/T 18029.7-2009轮椅车第7部分:座位和车轮尺寸的测量
- FZ/T 01034-2008纺织品机织物拉伸弹性试验方法
- 《百团大战》历史课件
- 脓毒症诊断和治疗进展课件
- 马克思主义基本原理课件- (全套完整课件)全版
- 【优秀】脑膜瘤护理查房课件
- 初中数学教材解读人教八年级上册(2023年修订)第十三章轴对称等边三角形 导学案
- GB∕T 3480.3-2021 直齿轮和斜齿轮承载能力计算 第3部分:轮齿弯曲强度计算
- 社区居民信息登记卡
- 小金库治理-PPT优秀课件
- 水稳层施工方案(完整版)
评论
0/150
提交评论