|
一、TTCN概述
TTCN(TreeandTabularCombined Notation)树表结合表示法,顾名思义,就是采用以树和表格为表现形式的测试表示法,其中表格主要用于数据类型、原语、协议观察点、约束等,树则用于描述测试集、测试例、测试步。根据ISO/IEC 9646的定义,TTCN需要满足以下几项需求:第一点,测试系统能够定义、构造发送和接收被测试实体(IUT)的抽象服务原语(ASP);第二点,能够定义和构造嵌入在ASP中的协议数据单元(PDU);第三点,在指定控制和观察点(PCO)上,能够规定ASP的发送或接收顺序和能够构造测试例。
二、协议软件测试
目前协议测试分成一致性测试(ConformanceTesting)、互操作性测试(InteroperabilityTesting)、性能测试(PerformanceTesting)、坚固性测试(Robustness Testing)和遍历性测试(Ergodicity testing)等几个方面进行研究。
图1 几个测试阶段的关系
●一致性测试:验证设备实现与相应协议标准的一致性,检验不同的待
测设备是否能够满足统一的要求,从而在相同的外部条件下进行相同的动作,并且输出相同的结果。一致性测试的开展是为了保证不同厂家的产品表现一致并能够互联互通,保证开发人员有据可依,从而保证质量。
●互操作性测试:根据终端芯片与终端开发的实际进展,验证不同终端与系统之间的互操作能力,并且促进不同系统和终端空中接口间的互操作能力,即解决不同终端与不同系统之间的互操作问题。
●性能测试:主要是通过测试终端的功能,比如终端长时间稳定进行某项功能的能力,终端重复稳定地运行某项功能的能力,终端同时进行多项业务时表现出的处理能力以及系统的负载工作能力等。
●遍历性测试:协议软件开发到尾声阶段,为了尽可能穷尽所有可能的情况,同时避免重复劳作而进行的测试。
每个方面的测试一般来说又包含单层测试、集成测试、系统测试几个阶段。几个阶段测试之间的关系如图1所示。
●单层测试:主要测试单层的内部结构(如逻辑和数据流)以及该层的功能和可观测的行为。
●集成测试:确保各层集成在一起后能够按既定意图协作运行,并确保其行为正确。它所测试的内容包括层间的接口以及集成后的功能。
●系统测试:测试的最终应用将在板级上进行,模拟真实环境进行测试。
根据TTCN的规则和要求可以构造出TTCN的测试模型,如图2所示。
图2 TTCN测试模型
三、测试方法
可以看到TTCN的测试是一种典型的黑盒测试,把整个IUT看作一个测试实体来考虑,采用TTCN作为测试环境,TTCN与IUT之间的接口作为测试观测点PCO,运行测试例,通过观测和检查PCO的ASP和PDU的正确性来达到验证测试例的正确性。测试例是测试的目的和方向所在,而且测试系统也是通过TTCN编写测试例来模拟的,因此测试例的编写是一个十分重要的环节,要满足协议和应用的各种要求,做到十分严谨和精确,这也是测试人员的主要任务所在。被测实体IUT可以是单层(被测系统只有一层被测试)或多层(被测系统中有一系列相邻层需要测试),可以根据测试的不同阶段来选择组合。基于此TTCN的测试模型我们可以采用几种测试方法。
(一)TTCN和SDL的协仿真
采用一个集仿真、开发、测试于一体的TelelogicABTau的产品SDLand TTCN Suite 4.0作为开发工具。通过TTCN编写测试例,SDL and TTCN Suite 4.0提供的SDL和TTCN的协仿真功能来进行测试。
1.简单的TTCN和SDL测试
ASP和PDU的接口定义使用SDL工具的TTCN-LINK(利用SDL的功能,可以将SDL描述的数据结构直接转换到TTCN中使用)功能直接转换得到。在协仿真中TTCN收到SDL发送的数据,经过IUT处理后送回到SDL中去,SDL输出的数据和TTCN发送到SDL的数据存在一定的关系。通过验证其正确性以确定IUT开发的正确性。这是基于TTCN的最基本的测试方法,所有的数据处理都是在TTCN中来完成的,但是TTCN对数据的计算能力是有限的。我们在开发中将C源代码嵌入到SDL中,所有的接口也都是通过C来定义的,因为C的数据类型非常丰富,但是TTCN可以识别的数据类型却是有限的,比如复杂的指针就无法处理。因此这种方法只适合测试数据量不大、数据类型简单的情况,不是很有实际应用的价值。 |
|