專(zhuān)利名稱:一種ttcn語(yǔ)言與數(shù)據(jù)描述語(yǔ)言的集成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及成熟的測(cè)試腳本語(yǔ)言TTCN與其它數(shù)據(jù)描述語(yǔ)言的集成技術(shù),即允許 TTCN引用其它數(shù)據(jù)描述語(yǔ)言的數(shù)據(jù)類(lèi)型和值定義,屬于軟件工程領(lǐng)域。
背景技術(shù):
TTCN作為一項(xiàng)成熟的測(cè)試腳本語(yǔ)言,其應(yīng)用遍布嵌入式測(cè)試、協(xié)議棧測(cè)試、Web Service測(cè)試和電信測(cè)試等領(lǐng)域。TTCN已經(jīng)被看作是實(shí)現(xiàn)高效、低成本評(píng)價(jià)測(cè)試的關(guān)鍵元 素。TTCN標(biāo)準(zhǔn)集,除了定義了 TTCN腳本語(yǔ)言規(guī)范外,還定義了腳本語(yǔ)言的運(yùn)行環(huán)境和可視 化建模方法,使得TTCN工具更加簡(jiǎn)單易用。所以TTCN測(cè)試語(yǔ)言,正在世界各地迅速普及。同時(shí)在電信、互聯(lián)網(wǎng)、嵌入式等領(lǐng)域,隨著標(biāo)準(zhǔn)化進(jìn)程的加快,各種傳輸數(shù)據(jù)的表 示、編碼、傳輸、解碼的數(shù)據(jù)描述語(yǔ)言標(biāo)準(zhǔn)應(yīng)用而生。如ASN. 1被用來(lái)描述電信通信的協(xié)議 數(shù)據(jù)單元,在UMTS的接入和非接入層也有廣泛的應(yīng)用。由于ASN. 1和XML等數(shù)據(jù)描述語(yǔ)言能力非常強(qiáng),并且已經(jīng)成為工業(yè)標(biāo)準(zhǔn),TTCN測(cè) 試語(yǔ)言應(yīng)用在以上領(lǐng)域時(shí),通常需要引用上述數(shù)據(jù)描述語(yǔ)言定義的類(lèi)型和值,因此,需要集 成TTCN和數(shù)據(jù)描述語(yǔ)言。國(guó)內(nèi)TTCN與多種數(shù)據(jù)語(yǔ)言的描述集成、研究和應(yīng)用都還處于起 步階段。只有個(gè)別研究,通過(guò)擴(kuò)展TTCN數(shù)據(jù)表示能力,針對(duì)特定數(shù)據(jù)描述標(biāo)準(zhǔn)集成。但如 此,使得擴(kuò)展后的TTCN通用性降低,復(fù)雜度提高。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)上的缺陷,本發(fā)明目的是提出一種TTCN與多種數(shù)據(jù)描述語(yǔ)言的通 用描述集成方法。該方法回避了針對(duì)不同數(shù)據(jù)描述語(yǔ)言,對(duì)TTCN測(cè)試語(yǔ)言需要進(jìn)行擴(kuò)充的 要求,使TTCN和數(shù)據(jù)描述語(yǔ)言翻譯后的中間代碼保持相互獨(dú)立。該方法不需要針對(duì)具體應(yīng) 用擴(kuò)展TTCN的類(lèi)型表示和定義的語(yǔ)義,只需要將數(shù)據(jù)描述語(yǔ)言的定義序列化,并以此序列 化文件作為T(mén)TCN和數(shù)據(jù)描述語(yǔ)言聯(lián)系的紐帶,即可完成TTCN與數(shù)據(jù)描述語(yǔ)言的集成。為完成上述發(fā)明目的,本發(fā)明采用下述的技術(shù)方案,數(shù)據(jù)描述語(yǔ)言以ASN. 1為例, 其它數(shù)據(jù)描述語(yǔ)言與ASN. 1類(lèi)似。一種TTCN與ASN. 1的集成方法,其特征在于(l)ASN. 1的翻譯與序列化;(2) TTCN的翻譯與引用反序列化ASN. 1 ;(3) ASN. 1定義向TTCN運(yùn)行環(huán)境注冊(cè);(4) TTCN腳本中間代碼執(zhí)行。在步驟(l)ASN. 1的翻譯與序列化中,其特征在于(11)針對(duì)ASN. 1文件構(gòu)建其語(yǔ)法樹(shù);(12)把語(yǔ)法樹(shù)數(shù)據(jù)定義信息,序列化存儲(chǔ)到文件中;(13)根據(jù)語(yǔ)法樹(shù),翻譯ASN. 1文件得到ASN. 1的中間代碼。在步驟(2) TTCN的翻譯與引用反序列化ASN. 1中,其特征在于
(21)針對(duì)TTCN文件構(gòu)建其語(yǔ)法樹(shù);(22)分析語(yǔ)法樹(shù),假如在TTCN中引用ASN. 1類(lèi)型定義,則反序列化(12)的數(shù)據(jù)文 件,根據(jù)TTCN中引用ASN. 1的類(lèi)型與值的規(guī)則,將ASN. 1的相應(yīng)類(lèi)型序列信息轉(zhuǎn)換成TTCN 中的語(yǔ)法樹(shù),并進(jìn)行語(yǔ)法檢查和語(yǔ)義檢查;如果引用的是ASN. 1中定義的值,則記錄其引用 fn息;(23)根據(jù)語(yǔ)法樹(shù),翻譯TTCN文件到TTCN的中間代碼。在步驟(3)ASN. 1定義向TTCN運(yùn)行環(huán)境注冊(cè)中,滿足以下三點(diǎn)(31)當(dāng)ASN. 1文件被引用時(shí),對(duì)應(yīng)的ASN. 1值定義相關(guān)的設(shè)置值函數(shù)、獲取值函數(shù) 和類(lèi)型的編解碼函數(shù)分別在TTCN運(yùn)行環(huán)境注冊(cè);(32)注冊(cè)在TTCN運(yùn)行環(huán)境后,在TTCN中引用的ASN. 1值可以通過(guò)注冊(cè)環(huán)境查詢 其對(duì)應(yīng)的ASN. 1中對(duì)應(yīng)中間代碼獲取值函數(shù)得到其翻譯值;(33)運(yùn)行時(shí)TTCN環(huán)境需要滿足TRI、TCI相關(guān)標(biāo)準(zhǔn)定義,把編解碼信息和傳輸信 息等傳遞給對(duì)應(yīng)模塊;步驟(4) TTCN腳本中間代碼執(zhí)行時(shí),其特征在于發(fā)送抽象數(shù)據(jù)或接收碼流時(shí)(發(fā)送或接收的值都由ASN. 1類(lèi)型定義,TTCN無(wú)編 解碼規(guī)則),采用注冊(cè)的編解碼接口對(duì)抽象數(shù)據(jù)進(jìn)行編碼,或?qū)邮盏拇a流解碼為抽象數(shù)據(jù)值。在(13)翻譯ASN. 1文件為中間代碼時(shí),其特征在于(131)中間代碼對(duì)每種類(lèi)型的類(lèi)型信息如類(lèi)型標(biāo)識(shí)、類(lèi)型約束、類(lèi)型標(biāo)簽(TAG)等 完全保存;(132)中間代碼對(duì)每種值保存時(shí)對(duì)值類(lèi)型標(biāo)識(shí)和抽象值信息完全保存;(133)對(duì)于每種類(lèi)型,都分別生成編碼接口和解碼接口 ;在(31)對(duì)應(yīng)的ASN. 1定義和操作函數(shù)在TTCN運(yùn)行環(huán)境注冊(cè)時(shí),其特征在于(311)當(dāng)ASN. 1類(lèi)型被引用時(shí),其對(duì)應(yīng)的類(lèi)型信息會(huì)在TTCN中生成相應(yīng)的語(yǔ)法樹(shù) 結(jié)點(diǎn),將其對(duì)應(yīng)的編解碼接口注冊(cè)在與此結(jié)點(diǎn)對(duì)應(yīng)的TTCN中間代碼中;(312)當(dāng)引用ASN. 1值時(shí),將此值所對(duì)應(yīng)的類(lèi)型編解碼接口注冊(cè)在TTCN相應(yīng)中間 代碼中;(313)TTCN運(yùn)行環(huán)境可以同時(shí)接受多個(gè)用數(shù)據(jù)描述語(yǔ)言描述的數(shù)據(jù)文件的注冊(cè)。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為本方法針對(duì)TTCN與多種數(shù)據(jù)表示語(yǔ)言的通用描述集成,可以應(yīng)用于如下領(lǐng)域的 單個(gè)或多個(gè)設(shè)備測(cè)試和驗(yàn)證、測(cè)試環(huán)境仿真和驗(yàn)證等>嵌入式測(cè)試;>協(xié)議棧測(cè)試;>電信測(cè)試;> Web Service 測(cè)試;>汽車(chē)電子測(cè)試。
圖1是TTCN與ASN. 1集成方法流程示意圖2是ASN. 1運(yùn)行時(shí)環(huán)境注冊(cè)流程示意圖;圖3是TTCN運(yùn)行時(shí)引用ASN. 1數(shù)據(jù)流程示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作更進(jìn)一步的說(shuō)明為了更清楚地理解本發(fā)明,特此將本方案的具體實(shí)施過(guò)程描述如下(數(shù)據(jù)描述語(yǔ) 言以ASN. 1為例)如圖1所示,TTCN與多種數(shù)據(jù)描述語(yǔ)言的集成方法包括數(shù)據(jù)描述語(yǔ)言描述的數(shù) 據(jù)文件翻譯與序列化、TTCN腳本翻譯與引用反序列化后的數(shù)據(jù)描述文件、數(shù)據(jù)描述語(yǔ)言定 義和操作函數(shù)注冊(cè)、TTCN引用數(shù)據(jù)語(yǔ)言描述數(shù)據(jù)四個(gè)步驟。以下描述中,數(shù)據(jù)描述語(yǔ)言以 ASN. 1為例,但并不只限于ASN. 1,每一步驟的詳細(xì)描述如下(l)ASN. 1翻譯與序列化,需要經(jīng)過(guò)以下三個(gè)步驟(11)針對(duì)ASN. 1文件構(gòu)建其語(yǔ)法樹(shù)。用數(shù)據(jù)描述語(yǔ)言如ASN. 1描述的數(shù)據(jù)文件, 需要經(jīng)過(guò)詞法分析和語(yǔ)法分析,根據(jù)數(shù)據(jù)描述語(yǔ)言的詞法語(yǔ)法規(guī)則,構(gòu)建其數(shù)據(jù)文件的語(yǔ) 法樹(shù),以便語(yǔ)義提取和翻譯。(12)根據(jù)(11)的語(yǔ)法樹(shù)信息,提取所有的語(yǔ)義信息,例如類(lèi)型定義、變量定義、傳 輸方式等,按照某種格式規(guī)范如XML等,把這些語(yǔ)義信息存儲(chǔ)到指定文件中。(13)根據(jù)(12)的語(yǔ)義信息,和預(yù)定義的語(yǔ)義動(dòng)作,把ASN. 1描述的數(shù)據(jù)文件,翻譯 為中間語(yǔ)言描述的中間代碼。中間代碼需要滿足的特征在于(131)中間代碼對(duì)ASN. 1文件中定義的每種類(lèi)型的類(lèi)型信息如類(lèi)型標(biāo)識(shí)、類(lèi)型約 束、類(lèi)型標(biāo)簽(TAG)等完全保存;(132)中間代碼對(duì)ASN. 1文件中定義的每種值保存時(shí)對(duì)值類(lèi)型標(biāo)識(shí)和抽象值信息 完全保存;(133)對(duì)于每種類(lèi)型,都分別生成編碼接口和解碼接口 ;在步驟(2) TTCN的翻譯與引用反序列化ASN. 1中,其特征在于(21)針對(duì)TTCN文件構(gòu)建其語(yǔ)法樹(shù)。假如在TTCN中引用ASN. 1類(lèi)型定義,則反序 列化(12)的數(shù)據(jù)文件,根據(jù)TTCN中引用ASN. 1的類(lèi)型與值的規(guī)則,將ASN. 1的相應(yīng)類(lèi)型序 列信息轉(zhuǎn)換成TTCN中的語(yǔ)法樹(shù),并進(jìn)行語(yǔ)法檢查和語(yǔ)義檢查;如果引用的是ASN. 1中定義 的值,則記錄其引用信息;(22)根據(jù)(21)的生成,和預(yù)定義的語(yǔ)義動(dòng)作,把TTCN文件,翻譯為中間語(yǔ)言描述 的中間代碼。(3) ASN. 1定義向TTCN運(yùn)行環(huán)境注冊(cè),主要特征如下(31)當(dāng)ASN. 1文件被TTCN引用時(shí),ASN. 1在TTCN文件中被引用的定義,對(duì)其引用 的類(lèi)型的編解碼接口在TTCN運(yùn)行環(huán)境注冊(cè)。注冊(cè)要滿足以下基本約束(311)當(dāng)引用ASN. 1類(lèi)型時(shí),其對(duì)應(yīng)的類(lèi)型信息會(huì)在TTCN中生成相應(yīng)的語(yǔ)法樹(shù)結(jié) 點(diǎn),將其對(duì)應(yīng)的編解碼接口注冊(cè)在與此結(jié)點(diǎn)對(duì)應(yīng)的TTCN中間代碼中;(312)當(dāng)引用ASN. 1值時(shí),將此值所對(duì)應(yīng)的類(lèi)型編解碼接口注冊(cè)在TTCN相應(yīng)中間 代碼中;(313)TTCN運(yùn)行環(huán)境可以同時(shí)接受,同構(gòu)或者異構(gòu)的多個(gè)用數(shù)據(jù)描述語(yǔ)言描述的數(shù)據(jù)文件的注冊(cè)。例如TTCN文件同時(shí)引用了 XML和ASN. 1描述的數(shù)據(jù)文件,則TTCN環(huán)境 必須可以同時(shí)接受兩者數(shù)據(jù)定義注冊(cè),此為異構(gòu)多數(shù)據(jù)文件注冊(cè);例如多個(gè)ASN. 1文件注 冊(cè)在運(yùn)行環(huán)境中,即是同構(gòu)注冊(cè)。(32)注冊(cè)在TTCN運(yùn)行環(huán)境后,被TTCN引用的ASN. 1類(lèi)型和值,可以查詢其對(duì)應(yīng)的 編解碼和傳輸函數(shù)。即在運(yùn)行環(huán)境中,實(shí)現(xiàn)了數(shù)據(jù)基本定義,和其對(duì)應(yīng)的操作函數(shù)的映射。(33)運(yùn)行時(shí)環(huán)境需要滿足TRI、TCI相關(guān)標(biāo)準(zhǔn)定義,把編解碼信息和傳輸信息等傳 遞給對(duì)應(yīng)模塊。其中編解碼信息傳遞到TCI定義的CD模塊(編解碼模塊),傳輸信息傳遞 到TRI定義的SA模塊(系統(tǒng)適配器模塊)上面對(duì)本發(fā)明所述的一種TTCN與多種數(shù)據(jù)描述語(yǔ)言的集成方法進(jìn)行了詳細(xì)的說(shuō) 明,但顯然仍然可以做出各種修改和變換而不背離本發(fā)明的精神和范圍,因此,說(shuō)明書(shū)應(yīng)被 認(rèn)為是說(shuō)明性的而非限制性的,其中的各個(gè)接口的解釋是示意性的,完成類(lèi)似功能的接口 仍然屬于本方法的精神和權(quán)力要求范圍。對(duì)于本技術(shù)領(lǐng)域的一般技術(shù)人員來(lái)說(shuō),在不背離 本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對(duì)它進(jìn)行的各種顯而易見(jiàn)的改變都在本 發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種TTCN語(yǔ)言與數(shù)據(jù)描述語(yǔ)言的集成方法,其步驟為1)構(gòu)建待集成數(shù)據(jù)描述語(yǔ)言文件的語(yǔ)法樹(shù);2)將該數(shù)據(jù)描述語(yǔ)言文件語(yǔ)法樹(shù)的數(shù)據(jù)定義信息序列化存儲(chǔ)到一指定文件,并采用一中間語(yǔ)言對(duì)該數(shù)據(jù)描述語(yǔ)言文件進(jìn)行翻譯,得到該數(shù)據(jù)描述語(yǔ)言文件的中間代碼文件;3)構(gòu)建TTCN語(yǔ)言文件的語(yǔ)法樹(shù);4)根據(jù)TTCN語(yǔ)言文件的語(yǔ)法樹(shù),采用所選中間語(yǔ)言對(duì)TTCN語(yǔ)言文件進(jìn)行翻譯,得到TTCN語(yǔ)言文件的中間代碼文件;5)將該數(shù)據(jù)描述語(yǔ)言文件的數(shù)據(jù)定義信息向TTCN運(yùn)行環(huán)境注冊(cè);6)執(zhí)行TTCN語(yǔ)言文件的中間代碼文件,采用注冊(cè)的編解碼接口,對(duì)接收的碼流解碼為抽象數(shù)據(jù)值,或?qū)Τ橄髷?shù)據(jù)進(jìn)行編碼后發(fā)送。
2.如權(quán)利要求1所述的方法,其特征在于進(jìn)行序列化存儲(chǔ)的方法為提取該數(shù)據(jù)描述 語(yǔ)言文件語(yǔ)法樹(shù)中所有的語(yǔ)義信息,并按照設(shè)定格式將其存儲(chǔ)到所述指定文件中。
3.如權(quán)利要求2所述的方法,其特征在于根據(jù)提取的語(yǔ)義信息和該數(shù)據(jù)描述語(yǔ)言文件 語(yǔ)法樹(shù)中預(yù)定義的語(yǔ)義動(dòng)作,對(duì)該數(shù)據(jù)描述語(yǔ)言文件進(jìn)行翻譯,得到該數(shù)據(jù)描述語(yǔ)言文件 的中間代碼文件。
4.如權(quán)利要求1或3所述的方法,其特征在于所述中間代碼保存的信息包括該數(shù)據(jù) 描述語(yǔ)言文件中每種類(lèi)型的類(lèi)型信息、每種值信息;對(duì)于每種類(lèi)型,所述中間代碼分別生成 一編碼接口和一解碼接口。
5.如權(quán)利要求4所述的方法,其特征在于所述類(lèi)型信息包括類(lèi)型標(biāo)識(shí)、類(lèi)型約束、類(lèi) 型標(biāo)簽;所述值信息包括值類(lèi)型標(biāo)識(shí)及其抽象值信息。
6.如權(quán)利要求1所述的方法,其特征在于構(gòu)建所述TTCN語(yǔ)言文件的語(yǔ)法樹(shù)時(shí),如果 TTCN語(yǔ)言文件中引用該數(shù)據(jù)描述語(yǔ)言文件的類(lèi)型定義,則將相應(yīng)類(lèi)型的序列信息轉(zhuǎn)換成 TTCN中的語(yǔ)法樹(shù);如果引用的是該數(shù)據(jù)描述語(yǔ)言文件中定義的值,則記錄對(duì)應(yīng)值的引用信 肩、ο
7.如權(quán)利要求6所述的方法,其特征在于將相應(yīng)類(lèi)型序列信息轉(zhuǎn)換成TTCN中的語(yǔ)法樹(shù) 的方法為首先反序列化所述指定文件,然后根據(jù)TTCN中引用該數(shù)據(jù)描述語(yǔ)言文件的類(lèi)型 與值的規(guī)則,將該數(shù)據(jù)描述語(yǔ)言文件中相應(yīng)類(lèi)型序列信息轉(zhuǎn)換成TTCN中的語(yǔ)法樹(shù),并對(duì)語(yǔ) 法樹(shù)進(jìn)行語(yǔ)法檢查和語(yǔ)義檢查。
8.如權(quán)利要求1所述的方法,其特征在于將該數(shù)據(jù)描述語(yǔ)言文件的數(shù)據(jù)定義信息向 TTCN運(yùn)行環(huán)境注冊(cè)的方法為1)將該數(shù)據(jù)描述語(yǔ)言文件中被引用的值定義和類(lèi)型的編解碼函數(shù)分別在TTCN運(yùn)行環(huán) 境注冊(cè);2)TTCN運(yùn)行環(huán)境將編解碼信息傳遞到TCI定義的編解碼模塊,將傳輸信息傳遞到TRI 定義的系統(tǒng)適配器模塊。
9.如權(quán)利要求8所述的方法,其特征在于當(dāng)該數(shù)據(jù)描述語(yǔ)言文件中的類(lèi)型被引用時(shí), 將其對(duì)應(yīng)的類(lèi)型信息在TTCN中生成相應(yīng)的語(yǔ)法樹(shù)結(jié)點(diǎn),然后將其對(duì)應(yīng)的編解碼接口注冊(cè) 在與此語(yǔ)法樹(shù)結(jié)點(diǎn)對(duì)應(yīng)的TTCN中間代碼中。
10.如權(quán)利要求8所述的方法,其特征在于當(dāng)該數(shù)據(jù)描述語(yǔ)言文件中的值被引用時(shí),將 其對(duì)應(yīng)的類(lèi)型編解碼接口注冊(cè)在TTCN相應(yīng)中間代碼中。
全文摘要
本發(fā)明公開(kāi)了一種TTCN語(yǔ)言與數(shù)據(jù)描述語(yǔ)言的集成方法,屬于軟件工程領(lǐng)域。本發(fā)明的方法為1)待集成數(shù)據(jù)描述語(yǔ)言文件的翻譯與序列化;2)采用所選中間語(yǔ)言對(duì)TTCN語(yǔ)言文件進(jìn)行翻譯,得到TTCN語(yǔ)言文件的中間代碼文件;3)將該數(shù)據(jù)描述語(yǔ)言文件的數(shù)據(jù)定義信息向TTCN運(yùn)行環(huán)境注冊(cè);4)執(zhí)行TTCN語(yǔ)言文件的中間代碼文件,采用注冊(cè)的編解碼接口,對(duì)接收的碼流解碼為抽象數(shù)據(jù)值,或?qū)Τ橄髷?shù)據(jù)進(jìn)行編碼后發(fā)送。本方法提供了TTCN與多種數(shù)據(jù)表示語(yǔ)言的通用描述集成,可以應(yīng)用于多個(gè)領(lǐng)域中單個(gè)或多個(gè)設(shè)備測(cè)試和驗(yàn)證、測(cè)試環(huán)境仿真和驗(yàn)證等。
文檔編號(hào)G06F9/44GK101930362SQ20101024705
公開(kāi)日2010年12月29日 申請(qǐng)日期2010年8月6日 優(yōu)先權(quán)日2010年8月6日
發(fā)明者侯瑋瑋, 薛云志, 趙琛, 郭亮 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所