




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 樹(shù)表描畫(huà)言語(yǔ) OSI/ITU組織公布的協(xié)議一致性測(cè)試根本框架和方法規(guī)范(ISO/IEC 9646 (ITU X.290 series)由五大部分構(gòu)成,樹(shù)表描畫(huà)言語(yǔ)(Tree Tabular Combine Notation or Testing and Test Control Notation)是其中的第三部分,即ISO/IEC 9646-3。 3.1 協(xié)議一致性測(cè)試框架UTIUTUnderLying ServiceLTASPsPDUs圖 3.1一致性測(cè)試體系構(gòu)造CTMFTCPPCOPCO IUT: 在一致性測(cè)試中一個(gè)被測(cè)試部分Implement Under Test簡(jiǎn)稱(chēng)IUT是一個(gè)
2、OSI協(xié)議實(shí)體。 SUT: IUT所在的系統(tǒng)稱(chēng)為被測(cè)試系統(tǒng)System Under Test簡(jiǎn)稱(chēng)SUT。 UT和LT: IUT有一個(gè)上層測(cè)試Upper Test接口和下層測(cè)試(Low Test)接口。 PCO: 控制察看點(diǎn)Points of Control and Observation簡(jiǎn)稱(chēng)PCOs,UT和LT經(jīng)過(guò)控制察看點(diǎn)對(duì)系統(tǒng)進(jìn)展測(cè)試。通常LT是遠(yuǎn)程可訪問(wèn)接口,因此IUT定義一個(gè)遠(yuǎn)端的PCO,即底層接口被設(shè)置在遠(yuǎn)端 。 輸入輸出隊(duì)列: 通訊被以為是異步通訊,所以在每一個(gè)PCO都對(duì)應(yīng)兩個(gè)隊(duì)列FIFO,一個(gè)是輸入,另一個(gè)是輸出。 ASPs: IUT和UT之間經(jīng)過(guò)籠統(tǒng)效力元語(yǔ)Abstract S
3、ervice Primitives簡(jiǎn)稱(chēng)ASPs進(jìn)展通訊。 PDUs: 從概念角度,IUT和LT經(jīng)過(guò)協(xié)議數(shù)據(jù)單元Protocol Data Units簡(jiǎn)稱(chēng)PDUs交換數(shù)據(jù); 兩者的聯(lián)絡(luò): 從實(shí)踐角度,PDUs 采用ASPs 對(duì)根本效力動(dòng)作進(jìn)展編碼,即PDUs不是直接進(jìn)展交互,而是CTMF 允許根據(jù)PDUs的編碼進(jìn)展交互,即在一個(gè)籠統(tǒng)的測(cè)試中運(yùn)用PDUs進(jìn)展交換,所以ASPs與PDUs不再加以區(qū)分。 TCP: 測(cè)試協(xié)調(diào)過(guò)程Test Coordination Procedures 簡(jiǎn)稱(chēng)TCP來(lái)協(xié)調(diào)LT和UT的動(dòng)作,這在LT和UT是兩個(gè)獨(dú)立的過(guò)程時(shí)非常必要 。 測(cè)試方法分類(lèi): 在CTMF中測(cè)試方法可分
4、為部分的、分布的、協(xié)調(diào)的和遠(yuǎn)程的測(cè)試幾種 。它們的主要不同是對(duì)LT和UT的協(xié)調(diào)以及對(duì)它們的控制與察看程度不同。 執(zhí)行過(guò)程形狀機(jī)Stable stateTest stateEnd state(Test Body)End State(Verification)postamblepreambleTest BodyVerification圖3-2 測(cè)試?yán)桨笀?zhí)行過(guò)程描畫(huà) 圖3.2是一個(gè)基于CTMF的測(cè)試過(guò)程。一個(gè)IUT首先由測(cè)試?yán)挠|發(fā)條件激活,并從穩(wěn)定形狀進(jìn)入被測(cè)試形狀;經(jīng)過(guò)測(cè)試用例在測(cè)試體中運(yùn)轉(zhuǎn),進(jìn)入終了形狀;假設(shè)執(zhí)行的結(jié)果不獨(dú)一,那么需求經(jīng)檢查步分析結(jié)果中存在的問(wèn)題,從而進(jìn)入End StateV
5、erification形狀;根據(jù)檢查結(jié)果提出反響,進(jìn)入下一次的測(cè)試階段。在上面的測(cè)試過(guò)程中,假設(shè)測(cè)試?yán)慕K了形狀一樣,那么直接進(jìn)入到下一次測(cè)試過(guò)程。3.1.2 X-協(xié)議一致性測(cè)試結(jié)合CTMF的X-協(xié)議執(zhí)行腳本如下:MTCMaster Tester Component首先經(jīng)過(guò)產(chǎn)生PTCs(Parallel Tester Components)對(duì)測(cè)試系統(tǒng)進(jìn)展初始化。對(duì)于X-協(xié)議產(chǎn)生一個(gè)低端PTC(LT)和一個(gè)高端PTC(UT)。經(jīng)過(guò)IUT,低端PTC建立一個(gè)與高端PTC的一個(gè)X-銜接。出于簡(jiǎn)單思索,我們假定一個(gè)N網(wǎng)絡(luò)銜接曾經(jīng)建立,即不會(huì)出現(xiàn)一個(gè)X_CONNECTrequest被回絕該假定是為了解釋
6、TTCN特性; 低端PTC發(fā)送一個(gè)數(shù)據(jù)包,該數(shù)據(jù)包將經(jīng)過(guò)IUT在高端PTC前往,這個(gè)數(shù)據(jù)包將在一個(gè)指定的時(shí)間間隔內(nèi)前往,該過(guò)程反復(fù)多次; 在完成數(shù)據(jù)傳送后,低端PTC斷開(kāi),并發(fā)送它的最初結(jié)果給MTC后,計(jì)算最終結(jié)論并終止測(cè)試。配置和相關(guān)描畫(huà):LT將用N-SERVICE 元語(yǔ)和N-PDUs加以闡明,分別用N_DATArequest和CR_PDU等進(jìn)展闡明;/UT將用X-SERVICE元語(yǔ)加以闡明,運(yùn)用X_CONNECTrequest等進(jìn)展闡明;/TTCN提供了一個(gè)最小的功能集合 提供可以經(jīng)過(guò)測(cè)試系統(tǒng)發(fā)送和/或接納ASPs的才干;提供嵌在ASPs中PDUs的描畫(huà)才干;闡明ASPs在PCOs被發(fā)送和
7、/或被接納的次序;TTCN采用以下方法提供上述功能:聲明ASP和PDU的類(lèi)型; 聲明PCOs闡明實(shí)踐的ASPs和PDUs闡明行為實(shí)例本測(cè)試?yán)倪\(yùn)用有兩種意義 :IUT在限定的時(shí)間內(nèi)經(jīng)過(guò)X-協(xié)議,接納并前往指定數(shù)量的數(shù)據(jù)包。 3.2 測(cè)試系統(tǒng)行為描畫(huà)測(cè)試?yán)c測(cè)試套:為了測(cè)試IUT,我們需求建立一個(gè)仿真測(cè)試事件集合或交互行動(dòng)序列。這個(gè)用于描畫(huà)測(cè)試義務(wù)的事件或行動(dòng)的序列稱(chēng)為測(cè)試?yán)齮est case,一個(gè)特定協(xié)議的測(cè)試?yán)戏Q(chēng)為測(cè)試套。TTCN闡明:TTCN就是一種用于闡明測(cè)試?yán)姆?hào)集,它可以建立一個(gè)實(shí)踐被測(cè)系統(tǒng)的籠統(tǒng)模型,并闡明測(cè)試?yán)膱?zhí)行過(guò)程。籠統(tǒng)的測(cè)試?yán)ㄒ磺械腎UT所支持的被測(cè)目的。 TT
8、CN表現(xiàn)方式: 在ISO/IEC 9646-3中定義了兩種TTCN的圖表,一種是圖形符號(hào),另一種是語(yǔ)義符號(hào)。圖形符號(hào)采用表格的方式描畫(huà)測(cè)試?yán)膬?nèi)容。這種表現(xiàn)方式比較直觀,所以稱(chēng)為T(mén)TCN-GR,它適宜于測(cè)試?yán)姆治雠c設(shè)計(jì)。語(yǔ)義符號(hào)采用巴氏克斯范式Backus-Naur Form簡(jiǎn)稱(chēng)BNF)方式闡明TTCN測(cè)試?yán)运m宜于計(jì)算機(jī)處置,所以把這種方式的表示稱(chēng)為T(mén)TCN-MP(TTCN-machine processable)。在本教材中主要采用TTCN-GR來(lái)描畫(huà)測(cè)試用例。3.2.1 行為樹(shù)定義:一致性測(cè)試框架下的測(cè)試只關(guān)懷控制與察看點(diǎn)上的交互,所以系統(tǒng)行為用一顆樹(shù)來(lái)表示比較自然,這棵樹(shù)就稱(chēng)
9、之為行為樹(shù)。 行為樹(shù)語(yǔ)義:在行為樹(shù)中,每一個(gè)樹(shù)枝表示兩個(gè)協(xié)議形狀之間能夠發(fā)生交互。在TTCN中,為了與表格方式一致,把行為樹(shù)的分支隨著時(shí)間逐層橫向縮排,并寫(xiě)在一個(gè)表框內(nèi)。TreeBCADIEFGHJABCFDGEJI圖3-3 TTCN行為樹(shù)TimeHTime序號(hào) 標(biāo)號(hào) 行為描述(聲明) 約束 結(jié)論注釋12345678910A C F G H D E I JB3.2.2 TTCN行為描畫(huà)行為表:在TTCN中,一切的行為用動(dòng)態(tài)行為表來(lái)闡明。行為表類(lèi)型:測(cè)試?yán)齽?dòng)態(tài)行為表測(cè)試步動(dòng)態(tài)行為表缺省動(dòng)態(tài)行為表 動(dòng)態(tài)行為表構(gòu)成: 行號(hào)、標(biāo)簽、行為描畫(huà)、約束條件、結(jié)論、注釋 聲明行與聲明: 在一個(gè)動(dòng)態(tài)行為表中,聲
10、明行在行為描畫(huà)欄中定義,它用于闡明事件發(fā)生順序 。在聲明行中描畫(huà)測(cè)試系統(tǒng)的行為,如發(fā)送和接受ASPs等等 聲明分成三個(gè)不同的類(lèi)型事件行動(dòng)條件 事件一個(gè)聲明的發(fā)生稱(chēng)為事件。聲明成立也稱(chēng)為事件匹配。兩類(lèi)事件:輸入事件input events:是一個(gè)到達(dá)指定PCO的ASP,或者是指定CP協(xié)同點(diǎn)coordination points簡(jiǎn)稱(chēng)CP)的音訊。時(shí)間事件(timer events):是一個(gè)協(xié)議時(shí)間終了時(shí)辰。 事件包括:RECEIVE OTHERWISE TIMEOUT 行動(dòng) 活動(dòng): 有時(shí)聲明總是成立的,也就是說(shuō)它是可執(zhí)行的,我們把這種聲明稱(chēng)之為活動(dòng) 。 行動(dòng)類(lèi)型: SEND IMPLICIT_SE
11、ND /內(nèi)部交互,如Keep alive包 ASSIGNMENT_LIST TIMER_OPERATION GOTO 條件 聲明行也可以包括條件聲明,即布爾表達(dá)式,把這個(gè)聲明行稱(chēng)為條件聲明行。假設(shè)沒(méi)有事件匹配,也就沒(méi)有行動(dòng)被執(zhí)行,除非聲明行中的條件的值為T(mén)rue。假設(shè)一個(gè)聲明行不包括條件,那么為非條件聲明行。 一個(gè)TTCN條件就是布爾表達(dá)式:BOOLEAN_EXPRESSION 例如: L! N_DATArequest B=13.2.2.2 執(zhí)行與匹配交換:在同一縮排的聲明行的集合中,有一樣父節(jié)點(diǎn)的節(jié)點(diǎn)稱(chēng)為可交換聲明行,簡(jiǎn)稱(chēng)交換。例如:在圖1-1中 (A,B), (C, D, E), (F,
12、G), (I, J) 和 (H)是一切的交換。闡明規(guī)那么:由于一個(gè)交換集合中不同交換的前后次序是非常重要的,所以必需把一切事件和條件在一個(gè)沒(méi)有激活的行動(dòng)之前聲明。 行為樹(shù)的執(zhí)行 行為樹(shù)的執(zhí)行從樹(shù)根開(kāi)場(chǎng)。首先第一個(gè)交換集合被循環(huán)執(zhí)行,每一個(gè)交換均以他們?cè)诩现谐霈F(xiàn)的先后次序被賦值。假設(shè)一個(gè)交換不勝利,那么執(zhí)行下一個(gè)交換;假設(shè)交換勝利,那么執(zhí)行該交換的下一級(jí)交換集。在執(zhí)行到葉結(jié)點(diǎn)后,該交換集合的循環(huán)停頓,這時(shí)將得出結(jié)論。 例子首先被執(zhí)行的是交換集合A,B。假設(shè)A勝利,那么下一個(gè)交換集合C,D,E被激活;假設(shè)A不勝利,B勝利,那么執(zhí)行終止。如今假定C和D不勝利,而E勝利,那么下一個(gè)交換集合是I,J。
13、留意:假設(shè)在恣意一個(gè)交換集合中沒(méi)有聲明是勝利的,那么執(zhí)行將“死鎖。3.3 TTCN數(shù)據(jù)類(lèi)型和取值 數(shù)據(jù)類(lèi)型的含義: TTCN所包含的數(shù)據(jù)類(lèi)型用來(lái)闡明行為描畫(huà)中所涉及到的數(shù)據(jù),如在ASPs中數(shù)據(jù)類(lèi)型闡明等等。 數(shù)據(jù)類(lèi)型種類(lèi): 簡(jiǎn)單類(lèi)型定義表 構(gòu)造類(lèi)型定義表一個(gè)類(lèi)型定義運(yùn)用一個(gè)表3.3.1 預(yù)定義數(shù)據(jù)類(lèi)型 TTCN的數(shù)據(jù)類(lèi)型如下: HEX STRING/16進(jìn)制位串,如0FH BOOLEN INTEGER BIT STRING/位串,如1001B OCTET STRING/ASN.1 16進(jìn)制串,如0FO IA5String/Character String ENUMERATED/枚舉類(lèi)型 OBJ
14、ECT IDENTIFIER/對(duì)象標(biāo)識(shí)符,由規(guī)范化組織定義的整數(shù)序列,如ttcn-standard OBJECT IDENTIFIER := iso (1) standard (0) 9646 3 REAL/用科學(xué)計(jì)數(shù)法表示的實(shí)數(shù),如10*2-2 NULL/空 其它ASN.1類(lèi)型 取值: TTCN預(yù)定義數(shù)據(jù)類(lèi)型的值與ASN.1數(shù)據(jù)類(lèi)型的值具有一樣的取值范圍,參見(jiàn)ASN.1 。 簡(jiǎn)單用戶定義類(lèi)型 簡(jiǎn)單用戶類(lèi)型的定義,通常是對(duì)預(yù)定義數(shù)據(jù)類(lèi)型或前面曾經(jīng)定義的用戶定義類(lèi)型的進(jìn)一步闡明,這些闡明往往是施加一些約束。 TTCN的簡(jiǎn)單用戶定義類(lèi)型采用簡(jiǎn)單類(lèi)型定義表對(duì)數(shù)據(jù)類(lèi)型進(jìn)展描畫(huà),并可以在測(cè)試套中的任何地
15、方運(yùn)用 。3.3.4 構(gòu)造類(lèi)型 TTCN有公用的表來(lái)定義構(gòu)造類(lèi)型數(shù)據(jù)。構(gòu)造數(shù)據(jù)好像簡(jiǎn)單數(shù)據(jù)類(lèi)型一樣可以在測(cè)試?yán)娜魏我粋€(gè)地方運(yùn)用。但他們主要在ASPs和PDUs的子構(gòu)造中運(yùn)用。詳細(xì)細(xì)節(jié)參見(jiàn)ASPs 、PDUs和CM取值。3.4 PCOs和CPs TTCN支持異步通訊模型,在測(cè)試組件和被測(cè)軟件之間的通訊是經(jīng)過(guò)控制和察看點(diǎn)PCOs實(shí)現(xiàn)的,而不同測(cè)試組件之間是經(jīng)過(guò)測(cè)試協(xié)作點(diǎn)Coordination Points 簡(jiǎn)稱(chēng)CPs進(jìn)展交互。 3.4.1 通訊模型 隊(duì)列模型: 在通訊模型中,我們將運(yùn)用隊(duì)列模型描畫(huà)PCOs和CPs。每一個(gè)PCO/CP有兩個(gè)先進(jìn)先出的隊(duì)列,與程序中的隊(duì)列不同,這里的隊(duì)列沒(méi)有邊境。
16、 隊(duì)列構(gòu)成: 一個(gè)隊(duì)列用于存放發(fā)送SENDASP的對(duì)列 另一個(gè)用于存放接納RECEIVEASP信息 兩個(gè)隊(duì)列在一個(gè)PCO或CP進(jìn)展銜接 一個(gè)用于PCO/CP的輸入,另一個(gè)用于PCO/CP的輸出。3.4.2 發(fā)送一個(gè)ASP 發(fā)送一個(gè)ASP,是經(jīng)過(guò)SEND行作把一個(gè)ASP追加到PCO隊(duì)列中去。PCO的SEND隊(duì)列是無(wú)約束長(zhǎng)度的隊(duì)列,所以它總可以接受來(lái)自于LT或UT的音訊。 3.4.3 接受(receipt)一個(gè)ASP 接受的含義: 一個(gè)有效的接受從RECEIVE隊(duì)列中取出ASP,并檢查其內(nèi)容。 普通接受有兩個(gè)步驟 : 接納ASP 檢查其內(nèi)容 3.4.4 聲明PCO類(lèi)型 測(cè)試套中運(yùn)用的PCO類(lèi)型必需
17、在PCO類(lèi)型聲明中進(jìn)展。 每一個(gè)PCO類(lèi)型聲明需求以下信息: PCO類(lèi)型名 與PCO通訊的對(duì)象LT或UT 3.4.5 運(yùn)用PCOs和CPs 運(yùn)用規(guī)那么: 假設(shè)測(cè)試套僅運(yùn)用PCO,那么PCO名在TTCN聲明中可以省略。假設(shè)有多個(gè)PCO和CP被運(yùn)用,那么PCO和CP必需在TTCN聲明中加以闡明。3.4.6 PCO和CP快照 定義:在每一次交換循環(huán)的最初,從輸入隊(duì)列中取出PCO或CP的當(dāng)前值稱(chēng)為一個(gè)快照。執(zhí)行過(guò)程:每一個(gè)聲明的值取決于這個(gè)快照,而不是PCO或CP隊(duì)列的實(shí)踐值。這樣交換被執(zhí)行的時(shí)間將會(huì)凍結(jié),即阻止兩個(gè)快照之間的事件發(fā)生。經(jīng)過(guò)這種方法一個(gè)ASP、PDU或CM的到達(dá)只需在快照更新后才被登記
18、。3.4.7 聲明CPs CPs在CP聲明表中聲明 每一個(gè)CP需求以下信息: CP名 CP角色 3.5 發(fā)送語(yǔ)句 TTCN行為樹(shù)中的主要行為之一是經(jīng)過(guò)PCO/CP向IUT發(fā)送ASPs或PDUs。下面我們討論發(fā)送(SEND)行為的描畫(huà)和運(yùn)用。 3.5.1 發(fā)送ASP 發(fā)送行為聲明允許一個(gè)測(cè)試套闡明一個(gè)經(jīng)過(guò)PCO發(fā)送的ASP類(lèi)型。 發(fā)送語(yǔ)句格式如下: PCO_Identifier ! ASP_Identifier S E N D 3 Q U A L I F I E R 1 A S S I G N M E N T _ L I S T 2 TIMER_OPERATION4 3.5.2 執(zhí)行發(fā)送語(yǔ)句 執(zhí)
19、行過(guò)程: 假設(shè)一個(gè)條件QUALIFIER是FALSE,那么過(guò)程停頓,并且發(fā)送語(yǔ)句為假;假設(shè)QUALIFIER是TRUE,那么ASSIGNMENT_LIST被執(zhí)行。最后TIMER_OPERATION 被執(zhí)行。 例子: 例如:L! N_DATArequest /送網(wǎng)絡(luò)數(shù)據(jù)懇求效力原語(yǔ)給名為L(zhǎng)的PCO L! N_DATArequest B=1 /假設(shè)B=1,那么執(zhí)行SEND L! N_DATArequest B=1 (X:=3) /假設(shè)B=1,那么把X賦值為3,并且執(zhí)行SEND3.5.3 發(fā)送一個(gè)PDU 發(fā)送描畫(huà): 通常一個(gè)PDUs 數(shù)據(jù)被包含在ASPs中,在聲明SEND語(yǔ)句時(shí)并不顯式闡明。然而,并
20、不是一切的協(xié)議有效力定義如X.25,所以TTCN提供了顯式聲明PDUs的語(yǔ)句格式,而不用ASPs 。 一個(gè)發(fā)送PDU的語(yǔ)句如下: PCO_Identifier ! PDU_Identifie 該語(yǔ)句中還可以包含其它輔助信息,這些信息與PDU數(shù)據(jù)一同被處置,他們的闡明格式與規(guī)范SEND語(yǔ)句一樣。3.5.4 發(fā)送協(xié)同信息 發(fā)送語(yǔ)句也可以在CP上發(fā)送一條協(xié)同信息(Coordination Message簡(jiǎn)稱(chēng)CM)。格式如下: CP_Identifier ! CM_Identifier 該語(yǔ)句中還可以包含其它輔助信息,這些信息與CM數(shù)據(jù)一同被處置,他們的闡明格式與規(guī)范SEND語(yǔ)句一樣。3.6 接納語(yǔ)句
21、 接納語(yǔ)句是用于描畫(huà)一個(gè)測(cè)試組件從測(cè)試系統(tǒng)IUT接納音訊事件的根本語(yǔ)句。 3.6.1 接納ASP 接納語(yǔ)句的語(yǔ)法如下: PCO_Identifier ? ASP_Identifier R E C E I V E 1 Q U A L I F I E R 2 ( A S S I G N M E N T _ L I S T ) 3 TIMER_OPERATION4 3.6.2 執(zhí)行接納語(yǔ)句 執(zhí)行過(guò)程: 語(yǔ)句的行號(hào)具有時(shí)間性質(zhì),它表達(dá)了語(yǔ)句執(zhí)行的先后次序。通常一個(gè)接納語(yǔ)句的執(zhí)行次序?yàn)椋杭僭O(shè)一個(gè)條件QUALIFIER是FALSE,那么過(guò)程停頓,并且接納語(yǔ)句為假;假設(shè)QUALIFIER是TRUE,那么AS
22、SIGNMENT_LIST被執(zhí)行。最后TIMER_OPERATION 被執(zhí)行。 例子: L? N_DATArequest/一個(gè)網(wǎng)絡(luò)數(shù)據(jù)懇求效力原語(yǔ)在名為L(zhǎng)的PCO匹配 L? N_DATArequest B=1/一個(gè)網(wǎng)絡(luò)數(shù)據(jù)懇求效力原語(yǔ)在名為L(zhǎng)的PCO匹配,并且B=1 L? N_DATArequest B=1 (X:=3)/一個(gè)網(wǎng)絡(luò)數(shù)據(jù)懇求效力原語(yǔ)在名為L(zhǎng)的PCO匹配,并且B=1時(shí),ASSIGNMENT_LIST被執(zhí)行。3.6.3 接納PDU 一個(gè)接納PDU的語(yǔ)句如下: PCO_Identifier ? PDU_Identifier 3.6.4 接納協(xié)同信息 接納語(yǔ)句也可以在CP上發(fā)送一條協(xié)同信
23、息(Coordination Message簡(jiǎn)稱(chēng)CM)。與句格式如下: CP_Identifier ?CM_Identifier 該語(yǔ)句中還可以包含其它輔助信息,這些信息與CM數(shù)據(jù)一同被處置,他們的闡明格式與規(guī)范RECEIVE語(yǔ)句一樣。3.6.5 OTHERWISE語(yǔ)句 OTHERWISE語(yǔ)句是描畫(huà)一個(gè)測(cè)試組件在PCO接納任何類(lèi)型ASP或PDU的接納語(yǔ)句。該語(yǔ)句強(qiáng)調(diào)恣意ASP或PDU的類(lèi)型,而并不是規(guī)范的類(lèi)型。這是由于有時(shí)IUT并不是正常任務(wù),所以對(duì)這種情況的處置都?xì)w結(jié)為OTHERWISE語(yǔ)句處置。 下面引見(jiàn)OTHERWISE語(yǔ)句的語(yǔ)法 PCO_Identifier ? OTHERWISE 需
24、求留意的是OTHERWISE語(yǔ)句不能在CP上運(yùn)用。 在實(shí)踐運(yùn)用過(guò)程中,OTHERWISE常作為一個(gè)可交換的接納事件。 3.7 定義ASP、PDU和CM類(lèi)型 前言: ASPs是分布式系統(tǒng)中的第N層與第N-1層效力的規(guī)范化定義,所以要測(cè)試這種效力的一致性,首先要在測(cè)試套中定義相應(yīng)的ASPs。 PDUs是網(wǎng)絡(luò)層次構(gòu)造中,層與層之間交互的格式闡明,它與相關(guān)的協(xié)議闡明有關(guān)。所以在測(cè)試套中也應(yīng)該定義相應(yīng)的PDUs。從一致性測(cè)試的角度,PDUs的定義應(yīng)思索非常規(guī)的PDUs數(shù)據(jù)格式,而不是規(guī)范的交互格式。 另一個(gè)需求定義的是協(xié)同音訊。 TTCN中提供了上述三種數(shù)據(jù)的定義表格,也可以運(yùn)用ASN.1方式定義。3.
25、7.1 TTCN復(fù)合類(lèi)型 TTCN提供了聲明以下復(fù)合類(lèi)型的表格: ASP 類(lèi)型定義 PDU 類(lèi)型定義 Structured 類(lèi)型定義 CM 類(lèi)型定義 ASP、PDU或structured類(lèi)型關(guān)系: 一個(gè)ASP可以有參數(shù),而參數(shù)可以是任何非ASP類(lèi)型。 一個(gè)PDU可以有不同的域,而域的類(lèi)型可以是任何非ASP類(lèi)型。 一個(gè)structured類(lèi)型有構(gòu)成元素,而構(gòu)成元素的類(lèi)型可以是任何非ASP類(lèi)型。 3.7.2 類(lèi)型鏈Chaining 3.7.3 ASN.1復(fù)合類(lèi)型 在ASN.1中構(gòu)造器SEQUENCE和SET可以被用來(lái)構(gòu)造恣意的復(fù)合類(lèi)型。ASN.1復(fù)合類(lèi)型定義可以運(yùn)用下面的表格來(lái)定義: ASN.1類(lèi)
26、型定義 ASN.1 ASP類(lèi)型定義 ASN.1 PDU類(lèi)型定義 ASN.1 CM類(lèi)型定義 3.7.6 定義 ASPs 3.3.7 定義PDUs 3.3.8 構(gòu)造ASPs和PDUs的子集 3.3.9 定義CM類(lèi)型 3.3.10在行為樹(shù)中運(yùn)用ASPs和PDUs IUTUTUnderLying ServiceLT1.N-DATARequest圖 3.5 ASP和PDU運(yùn)用實(shí)例4.N-DATAindication2.X-ConnectIndication3.X-ConnectresponseL 例1.1測(cè)試步驟為: 測(cè)試組件在低端經(jīng)過(guò)控制察看點(diǎn)L向IUT發(fā)出一個(gè)數(shù)據(jù)懇求N-DATA request;
27、在高端測(cè)試組件UT經(jīng)過(guò)控制察看點(diǎn),接納到一個(gè)銜接指示X-Connect indication或其它信息; UT發(fā)出建立銜接的應(yīng)對(duì)X-Connect response; LT接納一個(gè)銜接指示N-DATA indication或其它信息。 3.8 TTCN表達(dá)式 TTCN的表達(dá)式有: 文本 變量和常量標(biāo)識(shí)符 方式化參數(shù)標(biāo)識(shí)符 ASP參數(shù) PDU或CM域 構(gòu)造元素 預(yù)定義的和用戶定義的操作符 由上述表達(dá)式經(jīng)過(guò)組合而成是TTCN表達(dá)式3.8.1 TTCN運(yùn)算符 TTCN表達(dá)式中支持以下運(yùn)算符: 算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符算術(shù)運(yùn)算 TTCN僅支持可以對(duì)整數(shù)或整數(shù)的導(dǎo)出類(lèi)型運(yùn)算的運(yùn)算符。這些運(yùn)算符
28、有:+、-、*、 /和MOD關(guān)系運(yùn)算 相等“=和不等“運(yùn)算符可以用于任何一種數(shù)據(jù)類(lèi)型。由等號(hào)和不等號(hào)構(gòu)成的表達(dá)式的值為BOOLEAN類(lèi)型。 其它關(guān)系運(yùn)算TTCN支持可以對(duì)整數(shù)或整數(shù)的導(dǎo)出類(lèi)型運(yùn)算的關(guān)系運(yùn)算符,它們是、=和=,例如X = 3*Y。 與等號(hào)運(yùn)算符的運(yùn)算構(gòu)造類(lèi)型一樣,上述關(guān)系表達(dá)式的結(jié)果也為BOOLEAN類(lèi)型。邏輯運(yùn)算TTCN 支持對(duì)布爾類(lèi)型或布爾的導(dǎo)出類(lèi)型運(yùn)算的邏輯運(yùn)算符,它們是AND、OR和NOT。例如,邏輯運(yùn)算表達(dá)式A AND NOT (B OR C),其中A、B和C均為布爾變量。 條件 一個(gè)條件是包含在括號(hào)內(nèi)的表達(dá)式, expression 這個(gè)表達(dá)式的值為布爾值。如一個(gè)包含
29、條件的表達(dá)式如下: X 6 AND H_string FFH 賦值運(yùn)算一 個(gè) T T C N 語(yǔ) 句 可 以 是 一 個(gè)ASSIGNMENT_LIST,即一個(gè)賦值運(yùn)算列表,表中的賦值運(yùn)算用省略號(hào)分開(kāi),賦值運(yùn)算被放到一個(gè)小括弧內(nèi)。(assignment1, . . . ., assignmentn ) 例如:(X := 3, A := “a string, Y := 3*(Z+9), H := FFH) 3.8.2 TTCN函數(shù) 預(yù)定義函數(shù): HEX_TO_INT (data_object_reference) 實(shí)現(xiàn)HEXSTRING到INTEGER轉(zhuǎn)換的函數(shù)。 BIT_TO_INT (data
30、_object_reference) 位串到整數(shù)轉(zhuǎn)換的函數(shù)。 INT_TO_HEX (data_object_reference) INTEGER到HEXSTRING的轉(zhuǎn)換函數(shù)。 INT_TO_BIT (data_object_reference) INTEGER到BITSTRING的轉(zhuǎn)換函數(shù)。 LENGTH_OF (data_object_reference) 前往串類(lèi)型數(shù)據(jù)對(duì)象的長(zhǎng)度。 NUMBER_OF_ELEMENTS (data_object_reference) 前往SEQUENCE或SET類(lèi)型的元素?cái)?shù)量。 IF_PRESENT (data_object_reference) 假設(shè)
31、OPTIONAL或DEFAULT數(shù)據(jù)對(duì)象在接納端的PDU出現(xiàn),那么為真;否那么為假。 IS_CHOSEN (data_object_reference) 該函數(shù)被用于從CHOICE中接納一個(gè)指定元素。假設(shè)一個(gè)數(shù)據(jù)對(duì)象(如PDU域)與接納值匹配,那么前往真。 用戶定義函數(shù) 3.9 闡明ASP、PDU和CM值 在前面的章節(jié)中我們?cè)?jīng)引見(jiàn)了ASP、PDU和CM類(lèi)型的定義。在實(shí)踐測(cè)試過(guò)程中,當(dāng)發(fā)送或接納一個(gè)數(shù)據(jù)時(shí),這些數(shù)據(jù)類(lèi)型定義還應(yīng)指定一個(gè)詳細(xì)的值,我們把這些值稱(chēng)為變量的約束。 TTCN的約束定義表有: ASP約束定義 PDU約束定義 Structured類(lèi)型約束聲明 CM約束聲明3.9.1 Sta
32、tic和Dynamic鏈 靜態(tài)銜接Static chaining: 這種銜接是把PDU約束或structure 約束作為ASP的參數(shù)、PDU域或structure的元素。 動(dòng)態(tài)銜接Dynamic chaining: 與靜態(tài)銜接不同,它只發(fā)生在實(shí)踐約束作為參數(shù)傳送給約束援用的時(shí)候。3.9.2 復(fù)合ASN.1 值 無(wú)論是靜態(tài)鏈,還是動(dòng)態(tài)鏈它們都是由ASN.1數(shù)據(jù)類(lèi)型構(gòu)成,雖然在鏈表中沒(méi)有運(yùn)用相關(guān)的術(shù)語(yǔ),但其本質(zhì)依然是運(yùn)用類(lèi)型的援用構(gòu)造鏈表所定義的數(shù)據(jù)。假設(shè)一個(gè)援用采用鏈的方式,那么就有相應(yīng)的約束。3.9.3 ASP約束 通常,每一個(gè)ASP類(lèi)型定義至少有一個(gè)ASP約束的定義。然而,在一些效力元語(yǔ)中定
33、義的效力沒(méi)有參數(shù),在這種情況下,約束是沒(méi)有必要的,對(duì)CM也是如此。然而,對(duì)于PDUs就不是這樣的情況,一個(gè)沒(méi)有域的PDU是沒(méi)有意義的。 ASP約束與PDU約束非常類(lèi)似,有關(guān)內(nèi)容將在下面的章節(jié)中引見(jiàn)。運(yùn)用于PDU約束的規(guī)那么同樣可以運(yùn)用于ASP約束。 3.9.4 PDU的約束 3.9.5 構(gòu)造類(lèi)型的約束3.9.6 CM約束 3.10 約束援用 TTCN的SEND和RECEIVE語(yǔ)句明確規(guī)定,只需ASP或PDU類(lèi)型被發(fā)送和接納。在動(dòng)態(tài)的行為表中,約束被用來(lái)明確定義什么樣的ASP或PDU值被發(fā)送或被接納。也就是說(shuō),SEND或RECEIVE語(yǔ)句必需有一個(gè)約束援用。3.10.1 參數(shù)化的約束 動(dòng)態(tài)鏈 通
34、常,ASPs、PDUs 和structures類(lèi)型的參數(shù)化約束是動(dòng)態(tài)的,而不是靜態(tài)的。當(dāng)一個(gè)約束援用的參數(shù)用實(shí)踐約束交換時(shí),它們之間就構(gòu)成一個(gè)動(dòng)態(tài)的鏈。3.10.2 發(fā)送和接納約束 約束和發(fā)送語(yǔ)句 一個(gè)發(fā)送語(yǔ)句中指明的約束是將要經(jīng)過(guò)網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)。在TTCN中,被發(fā)送的對(duì)象被稱(chēng)為送對(duì)象Send Object,它由相關(guān)的約束信息來(lái)構(gòu)成。留意,賦值語(yǔ)句可以使變量給發(fā)送對(duì)象賦予新值,這就是為什么在ASSIGNMENT_LIST之前是BUILD短語(yǔ)。 SEND4BUILD2QUALIFIER1 ASSIGNMENT_LIST3 TIMER_OPERATION5 約束值和發(fā)送 在SEND語(yǔ)句中,我們將運(yùn)
35、用被接納的約束值received constraint value表示測(cè)試組件希望發(fā)送的值,該值是一個(gè)ASP參數(shù)值、PDU或CM約束中PDU或CM域。它們都曾經(jīng)在相關(guān)的ASP、PDU或CM定義中聲明過(guò)。 約束和RECEIVE語(yǔ)句 接受一個(gè)ASP、PDU或CM比接納一個(gè)ASP、PDU或CM值更復(fù)雜。這是由于要接受一個(gè)ASP、PDU或CM要進(jìn)展正確性檢驗(yàn)。這項(xiàng)任務(wù)應(yīng)該經(jīng)過(guò)在TTCN中闡明必需匹配的約束值來(lái)加以確認(rèn)。一個(gè)RECEIVE事件僅當(dāng)一切的條件被滿足時(shí),才以為勝利。為此一個(gè)擴(kuò)展的RECEIVE語(yǔ)句為: RECEIVE1 MATCH2 QUALIFIER3 ASSIGNMENT_LIST4 T
36、IMER_OPERATION5Execute SENDAlternativeiQUALIFIERis true?Actions1.Build Send Object2.Execute ASSIGMMENTS(if any)3.Execute Timer OPS(if any)4.CONFORMANCE LOGreturnYes no QualifierReturn value=FALSEReturn value=TURE圖3.6 執(zhí)行一個(gè)對(duì)SEND約束的交換Execute RECEIVEAlternativeQUALIFIERis true ?Actions1.Execute ASSIGNME
37、NT 2.Execute Timer OPS(if any)3.POP receive object 4.CONFORMANCE LOGreturnYes or no QualifiernoReturn value=TURE3.7 執(zhí)行一個(gè)有約束RECEIVE的交換Constraint matches?Received ObjectOf correct type?yesyesReturn value= FALSE 接納對(duì)象 在TTCN中運(yùn)用接納對(duì)象Received Object一詞表示PCO或CP隊(duì)列頂端的ASP、PDU 或CM接納值,并且在RECEIVE語(yǔ)句執(zhí)行時(shí)被檢驗(yàn)。 約束值和接納 在R
38、ECEIVE語(yǔ)句中,我們將運(yùn)用被接納的約束值received constraint value表示測(cè)試組件希望接納的值,該值是一個(gè)ASP參數(shù)值、ASP、PDU或CM約束中PDU或CM域。它們都曾經(jīng)在相關(guān)的ASP、PDU或CM定義中聲明過(guò)。 接受值 我們將運(yùn)用接受值received value表示一個(gè)接納對(duì)象元素的值。一個(gè)接受值是一個(gè)與相關(guān)類(lèi)型定義相一致的值。如ASP、PDU或CM定義等。 3.10.3 約束與OTHERWISE語(yǔ)句 在OTHERWISE 語(yǔ)句中不能運(yùn)用約束。切記OTHERWISE語(yǔ)句總是匹配非空的PCO輸入隊(duì)列,并不進(jìn)展任何正確性檢測(cè)。Execute RECEIVEAltern
39、ativeActions1.Execute ASSIGNMENT2.Execute Timer OPS(if any)3.POP receive object4.CONFORMANCE LOGreturnnoReturn value=TURE3.8 執(zhí)行一個(gè)約束的OTHERWISE的交換QUALIFIER=trueReceived ObjectOf any type?yesYes or no QualifierReturn value= FALSE3.11 接受約束值匹配 在這一個(gè)節(jié)中我們將仔細(xì)分析RECEIVE語(yǔ)句的執(zhí)行過(guò)程,并分析如何檢測(cè)一個(gè)接納值與指定的約束值匹配等問(wèn)題。 3.11.1
40、指定值specific value 在大多數(shù)情況下,一個(gè)約束值就是一個(gè)指定值,該值并不一定是一個(gè)文字literal值。在TTCN中,一個(gè)指定值是一個(gè)與ASP、PDU或CM定義中的類(lèi)型兼容的表達(dá)式的值。 TTCN允許在指定值中運(yùn)用的運(yùn)算符: 文字 變量和常量標(biāo)識(shí)符 方式化參數(shù)標(biāo)識(shí)符 預(yù)定義的和用戶定義的操作符 由上述表達(dá)式經(jīng)過(guò)組合而成是TTCN表達(dá)式 當(dāng)一個(gè)指定值用作約束值時(shí),一個(gè)勝利的匹配意味著所接納的值與約束表達(dá)式的值完全相等。 省略值(Omitting Values) 在許多情況下,需求對(duì)ASP參數(shù)或PDU域省略。在TTCN表中,一切的參數(shù)或域都是可選擇的,或者是可省略的。省略的方法是運(yùn)用
41、一個(gè)“-符號(hào)來(lái)替代實(shí)踐值。 3.11.2 匹配機(jī)制 在大多數(shù)情況下,對(duì)一個(gè)接納到的PDU值與一個(gè)指定值完全一樣是不能夠的。而一個(gè)接納到的PDU值落入一個(gè)值區(qū)間或滿足一定條件是普遍的景象。TTCN支持多種值匹配機(jī)制,這些機(jī)制有: 符號(hào)匹配(matching symbols), 操作匹配(matching operations) 屬性匹配(matching attributes)。 詳細(xì)的匹配機(jī)制有: 值列表lists of values 補(bǔ)值列表complemented lists of values 整數(shù)范圍ranges of INTEGER values 恣意值any value 恣意值或省
42、略值any value or omit value 統(tǒng)配符wildcards 條件屬性if_present attribute 長(zhǎng)度屬性length attributes 匹配一個(gè)值列表: 一個(gè)約束值可以是一個(gè)或多個(gè)指定值的列表指定值可以是一個(gè)表達(dá)式,所以列表中的元素能夠非常復(fù)雜。列表匹配是一個(gè)這樣的匹配,假設(shè)一個(gè)接納到的值與列表中的恣意一個(gè)元素匹配,那么匹配成立;否那么匹配失敗。例如,接納到的值00B 或11B,這與列表(00B, 11B)匹配。 補(bǔ)值列表匹配: 補(bǔ)值列表匹配是這樣的一種匹配,假設(shè)接納到的值與列表中的恣意一個(gè)值都不相等,那么匹配勝利;否那么匹配失敗。補(bǔ)值列表是在一個(gè)列表前加上
43、一個(gè)關(guān)鍵字COMPLEMENT。與列表一樣,列表中可以運(yùn)用任何數(shù)據(jù)類(lèi)型的值。 例如,接納到的值01B或10B,與 COMPLEMENT (00B,11B)匹配。這里的COMPLEMENT (00B, 11B)列表(NOT 00B, NOT 11B)等價(jià)。 范圍匹配Matching Ranges 范圍匹配僅在與INTEGER兼容類(lèi)型的數(shù)據(jù)匹配。運(yùn)用關(guān)鍵字INFINITY和-INFINITY表示正數(shù)和負(fù)數(shù)方向的范圍。假設(shè)接納到的值落入一個(gè)指定的范圍之內(nèi),那么匹配勝利,否那么失敗。 例如: 一個(gè)范圍(8 . INFINITY)與恣意大于7的整數(shù)值匹配。 匹配恣意值Matching Any Value
44、 在許多情況下,測(cè)試套只接納一個(gè)域的恣意一個(gè)單值,并且該值與定義的相對(duì)應(yīng)的值兼容。恣意值匹配是基于這種情況下的匹配,當(dāng)所接納到的值與所希望的值兼容,那么匹配勝利;否那么失敗。恣意值運(yùn)用?表示。 例如,00B、01B、10B 和11B與定義的2位長(zhǎng)的BITSTRING串匹配。 匹配恣意值或完全省略 匹配恣意值或完全省略AnyOrOmit用“*表示。它與匹配恣意值非常類(lèi)似,只是所要匹配的值可以省略。假設(shè)一個(gè)值出現(xiàn),并且所接納的值與指定的類(lèi)型兼容,那么匹配勝利;否那么值被省略。匹配恣意值和完全省略?xún)H用于可選域的匹配。 例如,假設(shè)曾經(jīng)聲明了一個(gè)長(zhǎng)度為2的BITSTRING類(lèi)型的域,那么接納到的00B、
45、01B、10B 和11B和空與該域匹配。再如,我們?cè)?jīng)聲明了一個(gè)SEQUENCE OF INTEGER類(lèi)型的域,那么SEQUENCE OF INTEGER和空序列與其匹配。 值內(nèi)統(tǒng)配符 值內(nèi)統(tǒng)配符有兩種: 恣意一個(gè)AnyOne匹配 :恣意一個(gè)匹配用符號(hào)“?表示,它表示數(shù)據(jù)中的?可以用恣意同類(lèi)型的單一元素交換。 恣意一個(gè)或無(wú)AnyOrNone匹配:數(shù)據(jù)類(lèi)型可以是String、SEQUENCE、SEQUENCE OF、SET和SET OF類(lèi)型。然而,要匹配的元素不能被省略。 例如: ?0B與00B或10B匹配。 ab?z將與任何長(zhǎng)度為4的,并且以ab開(kāi)頭,以z結(jié)尾的字符串匹配。 一個(gè)SEQUENC
46、E OF INTEGER類(lèi)型,如1, 2, ?, 3與任何第3個(gè)元素為任何整數(shù)的4元素元組匹配。 恣意一個(gè)或無(wú)匹配用符號(hào)“*表示,它用于實(shí)現(xiàn)單一元素和一個(gè)延續(xù)元素交換的匹配,匹配元素還可以省略??梢赃M(jìn)展該匹配的數(shù)據(jù) 類(lèi) 型 有 : S t r i n g 、 S E Q U E N C E 、SEQUENCE OF、SET和SET OF類(lèi)型。 例如: *0B將與任何以0結(jié)尾的BITSTRING類(lèi)型值匹配。 ab*z將與任何以ab 開(kāi)頭,以z結(jié)尾的恣意字符串,也包括abz。 一個(gè)SEQUENCE OF INTEGER類(lèi)型的值,如1, 2, *, 3與任何SEQUENCE OF INTEGER類(lèi)型
47、的以1, 2為第一、二元素,3為第四個(gè)元素的與元組匹配,也與1,2,3匹配。If_Present屬性匹配If_Present屬性匹配是專(zhuān)門(mén)為可選擇域匹配所設(shè)計(jì)的一種類(lèi)型的匹配。這是一種常見(jiàn)的情況,一個(gè)測(cè)試套事先不知道一個(gè)IUT能否包含一個(gè)可選擇值,或者協(xié)議能否包含一個(gè)特殊的PDU,所以測(cè)試套必需闡明一個(gè)可選擇的值,并檢測(cè)該值。例如,3 IF_PRESENT表示假設(shè)整數(shù)值3出現(xiàn)那么被接納。留意:在TTCN表中,一切的域都被以為是可選擇的,這意味著所接納的恣意一個(gè)指定的類(lèi)型值都將進(jìn)展匹配。在ASN.1中就不是這樣,它必需嚴(yán)厲的加以闡明。 長(zhǎng)度限制Length Restrictions 長(zhǎng)度限制可以
48、運(yùn)用在以下類(lèi)型: BITSTRING HEXSTRING OCTETSTRING /ASN.1 16進(jìn)制串 CharacterString SEQUENCE OF SET OF 例如: HEXSTRING 8 3.12 編碼 原TTCN規(guī)范中不涉及網(wǎng)絡(luò)傳送信息的編碼。改版的TTCN添加了編碼功能。它允許TTCN用戶在下面的運(yùn)用中闡明編碼。 編碼類(lèi)型: 一切的ASP和/或PDU; 單獨(dú)的ASP類(lèi)型和/或PDU類(lèi)型; 單獨(dú)的ASP參數(shù)和/或PDU域; 單獨(dú)的ASP約束和/或PDU約束; 單獨(dú)的ASP約束參數(shù)和/或PDU約束域; ASPs編碼 : 作為一個(gè)規(guī)范并不關(guān)懷如何闡明ASP參數(shù)的構(gòu)成,對(duì)AS
49、P參數(shù)的描畫(huà)是實(shí)現(xiàn)范疇的內(nèi)容,不在規(guī)范討論的范圍之內(nèi)。TTCN作為一個(gè)規(guī)范并不思索ASP類(lèi)型的綁定,即在測(cè)試套中給出一致的表示。也就是說(shuō),檢查ASP參數(shù)與ASP實(shí)現(xiàn)的一致性目的,而不是TTCN的闡明。 PDUs編碼 : 與ASP不同,PDU域在相關(guān)的協(xié)議規(guī)范中有類(lèi)型定義。這些類(lèi)型是ETS中正確實(shí)現(xiàn)的根底。就編碼而言,TTCN服從與PDU有關(guān)的規(guī)范。例如,是運(yùn)用ASN.1,那么ASN.1的編碼規(guī)那么BER就可以運(yùn)用。當(dāng)然,也可以不采用。假設(shè)采用該規(guī)那么,那么其它任務(wù)就應(yīng)該服從該編碼規(guī)那么中的條款。3.13 援用復(fù)合類(lèi)型元素 TTCN允許在表達(dá)式中把單個(gè)復(fù)合類(lèi)型元素作為操作數(shù)運(yùn)用,或者作為賦值語(yǔ)句
50、的值。這些元素有: 一個(gè)ASP參數(shù) 一個(gè)PDU域 一個(gè)structure的元素 一個(gè)CM域 在ASN.1中,援用可以訪問(wèn)以下元素: 在一個(gè)BITSTRING中的單個(gè)BIT; 在一個(gè)SEQUENCE或SEQUENCE OF的元素; 在一個(gè)SET或SET OF的元素; 在一個(gè)CHOICE中的選擇。 這些援用可以產(chǎn)生在: SEND或RECEIVE語(yǔ)句;或 撲獲一個(gè)接納到的為后來(lái)運(yùn)用的ASP或PDU3.13.1 在SEND和RECEIVE語(yǔ)句的上下文中援用 SEND和RECEIVE語(yǔ)句中存在對(duì)ASP參數(shù)、PDU域或構(gòu)造類(lèi)型的元素的援用,不僅如此,這些援用與約束相關(guān)。這些援用可以用以下簡(jiǎn)單的符號(hào)表示:
51、ASP_Identifier . ParameterIdentifier PDU_Identifer . FieldIdentifier CM_Identifer . FieldIdentifier StructuredTypeIdentifier . ElementIdentifier 例如:假設(shè)一個(gè)子構(gòu)造PDU被銜接到一個(gè)ASP,要在一個(gè)語(yǔ)句行中援用構(gòu)造中第k個(gè)元素,我們可以寫(xiě)成:A S P _ I d e n t i f i e r . P a r a m e t e r i . PDU_Identifier . fieldj . StructureIdentifier . elemen
52、tk 然而,由于ASP、PDU和structure的標(biāo)示符在測(cè)試套中是單一的,所以它可以化簡(jiǎn)成:StructureIdentifier . elementk 例如: A := N_DATAindication . user_data . DT_PDU . user_data A := DT_PDU . user_data 表3-35意味著約束的第三個(gè)域被重載,并且發(fā)送對(duì)象a_pdu以第三個(gè)域?yàn)镕ALSE值被發(fā)送。 假設(shè)我們想重載field2的值為22,那么我們可以簡(jiǎn)單的表示為: BIT STRING可以按位訪問(wèn),假設(shè)我們想把field1中的第3位改成1 。3.13.3 撲獲接納到的ASPs 和
53、PDUs 一個(gè)接納到的ASP或PDU僅在RECEIVE語(yǔ)句期間被保管,即被接納的對(duì)象不能被后來(lái)的接納事件所訪問(wèn)。在實(shí)踐中把ASP、PDU或structure type變量作為接納對(duì)象可以處理問(wèn)題。3.14 判決Verdicts TTCN提供了兩種判決機(jī)制: 初步結(jié)果 最終結(jié)果 一個(gè)初步結(jié)果或最終結(jié)果都經(jīng)過(guò)TTCN語(yǔ)句給出,但以下語(yǔ)句除外: IMPLICIT SEND; ATTACH; GOTO; REPEAT。3.14.1 結(jié)果變量 結(jié)果變量,簡(jiǎn)稱(chēng)R。該變量即可以在表達(dá)式中運(yùn)用,又可以在行為樹(shù)的判決列中運(yùn)用。結(jié)果變量用來(lái)存放初步的結(jié)果,特性如下: 一個(gè)初步判決不能終止測(cè)試?yán)膱?zhí)行; 它可以作為
54、一個(gè)只讀變量在表達(dá)式中出現(xiàn)。 它僅能取pass、fail、inconc 或類(lèi)型定義中的一個(gè)值。這些值都是預(yù)定義的標(biāo)識(shí)符,并且嚴(yán)厲區(qū)分大小寫(xiě)。 它的值可以在判決列中被改動(dòng) 在測(cè)試?yán)_(kāi)頭,R與一個(gè)類(lèi)型定義綁定。 3.14.2 初步結(jié)果 判決列中R的值由記錄更新為一個(gè)初步結(jié)果,一個(gè)初步結(jié)果能夠是以下之一: (P)或(PASS),闡明測(cè)試目的在一些方面曾經(jīng)到達(dá)。 (I)或(INCONC),闡明一些測(cè)試目的之外的景象在測(cè)試?yán)谐霈F(xiàn)。/在謀時(shí)辰發(fā)出一個(gè)N_DISCONNECTindication是絕對(duì)合法的ASP. (F)或(FAIL),闡明協(xié)議有錯(cuò)誤或測(cè)試目的沒(méi)有到達(dá)。 例如: 假設(shè)R的值為FAIL并且
55、初步結(jié)果PASS在判決列中,那么R不能改動(dòng)成PASS,它還是FAIL。反之,假設(shè)R的值是PASS并且一個(gè)初步結(jié)果FAIL在判決列中出現(xiàn),那么R的值是FAIL。下表是R按優(yōu)先級(jí)改動(dòng)的情況。3.14.3 最終結(jié)果 一個(gè)測(cè)試?yán)谝韵聨追N情況下被終止: 一個(gè)測(cè)試?yán)男袨闃?shù)到達(dá)葉節(jié)點(diǎn); 在一個(gè)行為行判決列中有一個(gè)明確的最終判決(fail or inconc )。 一個(gè)最終的判決能夠是下面幾種情況: P或PASS,闡明一個(gè)pass結(jié)果被記錄; I或INCONC,闡明一個(gè)例外結(jié)果被記錄; F或FAIL,闡明一個(gè)fail結(jié)果被記錄; 預(yù)定義變量R表示最終結(jié)果,除非一個(gè)測(cè)試?yán)诲e(cuò)誤的記錄,這時(shí)R的值是none,
56、而不是最終結(jié)果。 例如: 假設(shè)R的值是fail并且最終結(jié)果pass在判決列中出現(xiàn),那么最終結(jié)果fail將被記錄。反之,假設(shè)R有值pass并且一個(gè)最終判決fail在判決列中出現(xiàn),那么一個(gè)最終結(jié)果fail將被記錄。3.15 GOTO語(yǔ)句 為了用簡(jiǎn)單的方式表達(dá)循環(huán)過(guò)程,TTCN允許在語(yǔ)句前加標(biāo)號(hào),并運(yùn)用GOTO語(yǔ)句實(shí)現(xiàn)過(guò)程轉(zhuǎn)移。GOTO語(yǔ)句格式如下: - LabelIdentifier 或 GOTO LabelIdentifier 運(yùn)用GOTO時(shí)應(yīng)遵守以下規(guī)那么: 一個(gè)GOTO只允許在行為描畫(huà)中的一棵子樹(shù)中出現(xiàn), 在一個(gè)行為描畫(huà)中一個(gè)標(biāo)號(hào)必需是獨(dú)一的; 一個(gè)標(biāo)號(hào)必需是一個(gè)交換集的第一個(gè)語(yǔ)句,也就是說(shuō)
57、,GOTO語(yǔ)句實(shí)現(xiàn)的轉(zhuǎn)移不應(yīng)該是交換集的中間語(yǔ)句; 一個(gè)GOTO語(yǔ)句不能轉(zhuǎn)移到最上一層的交換測(cè)試步的根節(jié)點(diǎn)語(yǔ)句; 在行為樹(shù)中,一個(gè)GOTO語(yǔ)句只可以轉(zhuǎn)移到它的祖先節(jié)點(diǎn),即僅能轉(zhuǎn)移到曾經(jīng)執(zhí)行過(guò)的節(jié)點(diǎn); 在GOTO語(yǔ)句中不能運(yùn)用其它語(yǔ)句。 3.16 定時(shí)器語(yǔ)句 TTCN定時(shí)器被用來(lái)測(cè)試IUT中的定時(shí)器事件。一個(gè)定時(shí)器語(yǔ)句通常用于對(duì)IUT應(yīng)對(duì)的時(shí)間設(shè)置,并發(fā)出START命令和TIMEOUT事件。另一個(gè)與定時(shí)器相關(guān)的命令是CANCEL,它用來(lái)終止一個(gè)定時(shí)器。一切的定時(shí)器必需在定時(shí)器描畫(huà)表中定義。Duration是從定時(shí)器啟動(dòng)時(shí)辰到定時(shí)器停頓的時(shí)間間隔,該間隔可以用以下單位計(jì)量。 該間隔可以用以下單位計(jì)
58、量: ps皮(可)秒,悄然秒,百億分之一秒 ns十億分之一秒 us (一百萬(wàn)分之一秒,微秒) ms (毫秒) s (秒) min (分)。 超時(shí)列表 TTCN維持一個(gè)超時(shí)列表。假設(shè)一個(gè)定時(shí)器期滿,那么該定時(shí)器被參與到列表中,有三種方法可以把定時(shí)器從表移出: 一個(gè)勝利的TIMEOUT語(yǔ)句 運(yùn)用定時(shí)器啟動(dòng)命令START 運(yùn)用定時(shí)器終止命令CANCEL TIMEOUT語(yǔ)句 在TTCN測(cè)試套中可以定義一個(gè)定時(shí)器,用于檢查一個(gè)應(yīng)對(duì)能否超時(shí)。語(yǔ)句格式如下: ?TIMEOUT TimerIdentifier 當(dāng)執(zhí)行到該語(yǔ)句時(shí),測(cè)試套將檢查該定時(shí)器能否在超時(shí)列表中,假設(shè)與超時(shí)列表中的一個(gè)定時(shí)器匹配,那么TIM
59、EOUT發(fā)生,否那么TIMEOUT不發(fā)生。 該語(yǔ)句的另一中格式是: ?TIMEOUT 即沒(méi)有指定timerIdentifier。在這種情況下 只 需 超 時(shí) 列 表 不 空 , 就 以 為T(mén)IMEOUT匹配勝利。 TIMEOUT可以與條件組成帶條件的TIMEOUT語(yǔ)句,該語(yǔ)句可以后接A S S I G N M E N T _ L I S T 、TIMER_OPERATION等命令,格式如下: T I M E O U T 2 Q U A L I F I E R 1 A S S I G N M E N T _ L I S T 3 TIMER_OPERATION4 其中:方括號(hào)內(nèi)為可選擇項(xiàng)。該語(yǔ)句中
60、的各分量的執(zhí)行順序是一定的。 注:TIMEOUT不能被用于阻止一個(gè)IUT部件發(fā)送應(yīng)對(duì)。定時(shí)器快照 定時(shí)器快照指的是定時(shí)器的當(dāng)前值。每一次開(kāi)場(chǎng)執(zhí)行交換集循環(huán)時(shí),當(dāng)執(zhí)行到一個(gè)TIMEOUT事件,那么該超時(shí)快照時(shí)辰被檢查,假設(shè)匹配,那么TIMEOUT發(fā)生。定時(shí)器啟動(dòng)命令START 一個(gè)定時(shí)器經(jīng)過(guò)START激發(fā)。格式如下: START TimerIdentifier 在定時(shí)器被啟動(dòng)后,可以顯示地指明定時(shí)器的區(qū)間。假設(shè)指定,那么該區(qū)間將覆蓋原有的定時(shí)器時(shí)間區(qū)間。顯示聲明時(shí)間區(qū)間的語(yǔ)句格式如下: START TimerIdentifier ( Duration ) START_TIMER語(yǔ)句也可以是有條件
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五金機(jī)械店鋪收租合同范本
- 辦公合租協(xié)議合同范本
- 農(nóng)村包租合同范本
- 出售大棚棉被合同范本
- 2025年社交大數(shù)據(jù)項(xiàng)目合作計(jì)劃書(shū)
- 農(nóng)村園子出售合同范本
- 合作經(jīng)營(yíng)開(kāi)店合同范例
- 合同范本橫線去掉
- 司機(jī)服務(wù)合同范本
- 醫(yī)院物業(yè)疫情防控合同范本
- 20以?xún)?nèi)的加法口算練習(xí)題4000題 284
- 單位工程施工進(jìn)度計(jì)劃?rùn)M道圖表
- Nikon尼康D3100中文說(shuō)明書(shū)
- 2023年廣西職業(yè)院校技能大賽高職組《Python程序開(kāi)發(fā)》賽項(xiàng)競(jìng)賽樣題
- LY/T 3141-2024文物建筑木構(gòu)件檢測(cè)方法
- 08J907 潔凈廠房建筑構(gòu)造
- 財(cái)務(wù)管理學(xué)(第10版)課件 第1章 總論
- 2024年南京旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- MOOC 職業(yè)生涯開(kāi)發(fā)與管理-南京郵電大學(xué) 中國(guó)大學(xué)慕課答案
- 春節(jié)的那些事作文6篇
- DB32T3610.3-2019道路運(yùn)輸車(chē)輛主動(dòng)安全智能防控系統(tǒng)技術(shù)規(guī)范第3部分:通訊協(xié)議
評(píng)論
0/150
提交評(píng)論