第4章:单组件TTCN-3-笔记

本文详细介绍了TTCN-3测试语言的基本概念,涵盖了Port端口、Components组件、TestCase测试例等核心元素的功能及使用方法,并探讨了Message-Based Communication、Timer定时器、Alt步骤等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适用于

  • message-based communication
  • 单组件
  • 非并行

1、Port端口

  • 无时延的发送信息
  • 接收的信息存储在信息队列,信息队列无长度无上限,实际操作中会加限制
  • 实例的端口类型确定可以收发的信息类型,以相对测试系统0的 信息方向决定inout
  • 支持几种信息类型从一个端口交互

2、Components组件

  • 给定组件的端口描述它的接口,组件有本地声明,包括常数、变量和定时器
  • 一种端口类型可以被多个端口对象实现,端口对象命名需不同、

3、Test Case测试例

  • 描述怎么模拟SUT和SUT预期的回应

主测试组件

  • 测试系统接口由端口完全定义,不额外定义TSI

判决

  • 初始verdict=none,一但置值,TTCN-3不能更改该值
  • setverdict不能置入error,error只因run-time error更改。

调用

  • control中使用execute调用test case,隐藏的第二参数可以设置时间上限,超时置为error。一些test case设置error时,后面的test case还可以继续执行。
  • timer有两种方式:在control part中设置;在test case中设置。control中的timer独立于test case的潜在错误;test case中的timer可以定义超时后的特殊行为,以及定义一个更小的安全界限。

结束

testcase.stop操作写入error在verdict中,终止单个操作;类似于setverdict使用方法反馈错误原因。

4、Template模板

  • 保证一致性,和value不同,不能用在表达式中
  • 可以被用于in

5、Massage-Based Communication

send

  • 利用template格式在特定端口向SUT发送信息
  • 也可以发送value,需要带数据类型。e.g. send(integer:50)

receive

  • 参数可以使用template格式
  • 阻塞操作机制,只比较队列头template
  • 匹配的话,移除信息
  • 信息重定向:port.receive(template)->value.v

check

  • 比对队列头的信息,不移除
  • 队列无消息或队列头部match时,阻塞

多端口接收

  • any port用于接收不用于send
  • 多个端口有信息队列时,any port.receive随机选择端口队列

6、Timer

  • 非负float值,单位秒
  • 用于:组件type定义、test case、module的控制部分、函数、altstep;作为altstep/函数的参数,不是test case的参数。
  • 操作:start、stop、timeout、running、read,可以log

7、Alt

  • 从上至下的顺序,两个alt都满足时选择第一个执行

Boolean保护

  • []中可以加入内容,[else]可以没有timeout和receive
  • 几个[]可以都判true,也可以都不true。都不true的时候,若保护独立于snapshot快照且后续不改变,则error;若不独立或后续可改变,则可能再次判定为true。
  • 建议避免使用该机制

repeat

  • 重复alt,只能在alt和altstep中使用

8、Altstep

  • 多个alt被不同alt所使用时,复用代码,类似函数
  • 可以带参数和本地定义,也可runs on

9、缺省altstep

  • 缺省altstep必须activite
  • default作为reference
  • value和template中,altstep带有out/inout时不能作为缺省;timer和port必须使用inout,并且可以作为缺省
  • 频繁激活/停止altstep对代码可读性不好

10、函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值