TTCN-3語(yǔ)言看起來(lái)像一個(gè)普通的程序設(shè)計(jì)語(yǔ)言,但是它與普通的程序設(shè)計(jì)語(yǔ)言又有不同。要實(shí)現(xiàn)一個(gè)TTCN-3測(cè)試系統(tǒng),除了TTCN-3語(yǔ)言外,我們還需要加上測(cè)試擴(kuò)展,包括測(cè)試配置、匹配機(jī)制、定時(shí)器支持、測(cè)試判決、通信機(jī)制等。這里簡(jiǎn)要介紹下測(cè)試配置的基本原理并用簡(jiǎn)單的實(shí)例加以說(shuō)明。

  一、測(cè)試配置的基本原理

  TTCN-3支持對(duì)測(cè)試配置的動(dòng)態(tài)定義,測(cè)試配置包括兩部分。第一是一個(gè)帶有良好定義的互連測(cè)試組件,包括一個(gè)主測(cè)試組件MTC和若干并行的測(cè)試組件PTC;第二是定義該測(cè)試系統(tǒng)邊界的明確的測(cè)試系統(tǒng)接口TSI,它負(fù)責(zé)MTC、PTC與被測(cè)系統(tǒng)之間的通信。

  當(dāng)啟動(dòng)測(cè)試?yán)龝r(shí),主測(cè)試組件MTC自動(dòng)創(chuàng)建,負(fù)責(zé)管理和協(xié)調(diào)PTC的測(cè)試行為,生命周期貫穿整個(gè)測(cè)試?yán)膱?zhí)行過(guò)程。所有的PTC都能由Creat、Start、Stop操作來(lái)動(dòng)態(tài)地創(chuàng)建、啟動(dòng)和停止。

  MTC、PTC、TSI都通過(guò)端口交換信息(端口,即測(cè)試組件端口,它可以收發(fā)由TTCN-3所定義的消息)。在測(cè)試?yán)龍?zhí)行過(guò)程中,可以通過(guò)map、unmap、 connect、 disconnect動(dòng)態(tài)地改變各個(gè)端口之間的連接和映射關(guān)系。

  每個(gè)不同的測(cè)試系統(tǒng)都有一個(gè)且僅有一個(gè)主測(cè)試組件和測(cè)試系統(tǒng)接口。它們都是在測(cè)試?yán)龁?dòng)時(shí),系統(tǒng)自動(dòng)創(chuàng)建,測(cè)試?yán)\(yùn)行結(jié)束后銷毀,主測(cè)試組件在測(cè)試行為中通過(guò)關(guān)鍵字mtc引用,測(cè)試系統(tǒng)接口在測(cè)試行為中通過(guò)關(guān)鍵字system引用。

  二、測(cè)試配置的實(shí)現(xiàn)

  介紹了測(cè)試配置的基本原理,那么如何具體實(shí)現(xiàn)測(cè)試配置呢,TTCN-3給出了端口和組件的定義。

  端口的定義:TTCN-3通過(guò)關(guān)鍵字port來(lái)定義端口,支持基于消息或基于過(guò)程的端口,分別通過(guò)關(guān)鍵字message、procedure來(lái)定義。端口是有方向的,關(guān)鍵字in表示輸入方向,關(guān)鍵字out表示輸出方向,關(guān)鍵字in/out表示輸入/輸出方向。例1:

  type port mymsgport message { in msgtype1;out msgtype2;inout integer }上面的這個(gè)例子中,端口名稱定義為mymsgport,是基于消息的端口,用關(guān)鍵字message來(lái)標(biāo)志。該端口可以接收msgtype1和msgtype2類型的數(shù)據(jù),允許接收和發(fā)送integer類型的數(shù)據(jù),其中msgtype1、msgtype2是TTCN-3特有的數(shù)據(jù)類型,如record,set等。

  組件的定義:組件,是用來(lái)執(zhí)行測(cè)試行為的。TTCN-3通過(guò)關(guān)鍵字component來(lái)定義組件。一個(gè)組件中可以包含端口、本地變量、定時(shí)器說(shuō)明等。注意:不同的組件可以使用相同的端口,但是同一組件的端口名字應(yīng)該是的。例2:

  type component mymtc { port mymsgport;var integer mylocalinteger;timer mylocaltimer }上面的這個(gè)例子中,組件名稱定義為mymtc,它包含上面定義的端口mymsgport,一個(gè)本地變量mylocalinteger,還有一個(gè)TTCN-3定義的定時(shí)器變量mylocaltimer.

  注:測(cè)試系統(tǒng)接口定義和組件定義具有相同的形式,但是在定義測(cè)試系統(tǒng)接口時(shí),測(cè)試組件的聲明中不能包含任何常量、變量和定時(shí)器。例如上面的例2只能表示定義的是一個(gè)測(cè)試組件,而不是測(cè)試系統(tǒng)接口。

  三、小結(jié)

  前面兩部分介紹了測(cè)試配置的基本原理和具體的實(shí)現(xiàn),那么針對(duì)一個(gè)具體的被測(cè)系統(tǒng)設(shè)計(jì)TTCN-3測(cè)試系統(tǒng)時(shí),對(duì)于測(cè)試配置的設(shè)計(jì)要考慮我們需要測(cè)試哪些功能,需要幾個(gè)端口,幾個(gè)組件,定義的端口和組件能否滿足我們測(cè)試的需要,然后根據(jù)上面的定義實(shí)現(xiàn)測(cè)試系統(tǒng)的測(cè)試配置可以了。