微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 业界新闻 > WiMAX测试日趋复杂

WiMAX测试日趋复杂

时间:01-24 来源:新电子 点击:

讯端口依据所使用的不同通讯模式,而有不同种类的通讯端口。由信息导向(Message-based)及程序导向(Procedure-based)两种通讯模式可以对应出三种通道口类型,分别是信息、程序及混合。当宣告通讯端口时,测试案例开发者除了标明所想定义的通讯端口类型外,还须指定可以传送的数据型态以及传送该数据型态的方向。一个通讯端口可以不只有一种传送方向,开发人员可以宣告在这个通讯端口上能接收的数据型态有哪些、送出的数据型态又是哪些,更可以宣告某些数据型态是双向传送。此处所指的方向是针对测试系统观点而言。通讯端口的使用范例如下:
type port MyMessagePortType message
{
in MsgType1, MsgType2;
out MsgType3;
inout integer
}

测试单元及测试系统接口

  在TTCN-3测试系统中,测试案例是在测试单元上执行。根据测试案例执行于一个或二个以上测试单元,可以分别称为Non-concurrent TTCN-3和Concurrent TTCN-3。除了测试单元名称,此测试单元所拥有的信道口种类、数量也同时在宣告测试单元时定义。因为测试单元和测试系统接口通常对应着相同形式,所以测试单元也被用来定义测试系统接口。
测试单元的配置如图4所示,范例程序如下:
type component MyPTCType
{
port MyMessagePortType PCO1, PCO4;
port MyProcedurePortType PCO2;
port MyAllMesssagesPortType PCO3
}

通讯设定

  Connect和Map是连接指令,用于两个通讯端口的相连。当一个测试单元上的通讯端口欲与另一个测试单元的通讯端口相连接时,可以使用Connect指令。
同样地,若连接双方的其中一方是测试系统接口上的通讯端口,则使用Map指令,范例如下:
// A component type definition
type component MyCompType {
port PortTypeOne PCO1;
port PortTypeTwo PCO2
}
// Declaring two variables for the handling of references to components of type MyCompType
// and creating a component of this type
var MyCompType MyCompInst := MyCompType.create;

// Usage of component references in configuration operations
// always referring to the component created above
connect(self:MyPCO1, MyCompInst:PCO1);
map(MyCompInst:PCO2, system:ExtPCO1);

信息沟通

  TTCN-3支持信息导向和程序导向两种通讯。信息导向通讯是基于异步(Asynchronous)通讯的信息交换,TTCN-3提供Send、Receive及Trigger三种指令来处理信息交换的行为:Send是指传送信息至待测物,Receive是从待测物收到信息,Trigger则是在满足某种条件之后,就和Receive的行为相同,图5是异步通讯收发信息的情形。

  程序导向通讯是基于同步(Synchronous)通讯的信息交换,而呼叫端和被呼叫端的操作须分开讨论。TTCN-3提供Call、Getcall、Reply、Raise、Getreply和Catch几个操作指令,供程序导向通讯使用。在呼叫端,Call用来呼叫远程通讯,Getreply用来接收响应,而Catch用来做例外处理。在被呼叫端Getcall用来接收来自呼叫端的信息,Reply是用来响应呼叫端,Raise用来丢出例外,图6是同步通讯的传送和接收信息的情形。

  Check是TTCN-3提供用来读取通讯端口中的第一道信息,并且不移除该信息中的数值,配合接收操作指令(Receive、Getcall、Getreply和Catch)一起使用。Check的使用范例如下:
MyPort1.check(receive(5)); // Checks for an integer message of value 5.
MyPort2.check(getcall(MyProc:{5, MyVar}) from MyPartner);
// Checks for a call of MyProc at port MyPort2 from MyPartner

  在控制通讯端口方面,TTCN-3提供Clear、Start和Stop。Clear移去指定通讯端口的输入(Incoming)队列内容;Start启动监听并允许对通讯端口进行存取;Stop停止监听,并不允许在通讯端口上进行Send、Call、Reply和Raise等。

测试案例

  在测试案例中的描述,是用来确定一个待测物是否通过测试所执行的种种行为的流程。测试案例可以被视为测试行为的集合,在TTCN-3中被定义于模块定义部分,并在模块控制部分呼叫。每一个测试案例在执行结束后,会传回测试结果值(Verdict Value),可能是None、Pass、Fail、Inconclusive或Error,因此以纯粹程序语言的观点来看,单一测试案例也可以视为一种特别形式的函数。
testcase MyTestCaseOne()
runs on MyMtcType1 // defines the type
of the MTC
system MyTestSystemType // makes
the port names of the TC1 visible to the MTC
{
: // The behaviour defined here executes
on the mtc when the test case invoked
}
// or, a test case where only the MTC is instantiated
testcase MyTestcaseTwo runs on MyMtcType2
{
: // The behaviour defined here executes on the mtc when the test case invoked
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top