TTCN-3編譯技術(shù)研究與實現(xiàn)_第1頁
TTCN-3編譯技術(shù)研究與實現(xiàn)_第2頁
TTCN-3編譯技術(shù)研究與實現(xiàn)_第3頁
TTCN-3編譯技術(shù)研究與實現(xiàn)_第4頁
TTCN-3編譯技術(shù)研究與實現(xiàn)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、西南交通大學(xué)研究生學(xué)位論文TCN-3編譯技術(shù)研究與實現(xiàn) TOC o 1-5 h z 年級姓名申請學(xué)位級別專業(yè)指導(dǎo)教師二 O O 級 錢 向 紅 碩士計算機應(yīng)用技術(shù) 曾華燊 教授二OO四年十一月Classified Index: TP314U.D.C: 681.3.06Southwest Jiaotong UniversityMaster Degree ThesisRESEARCH ON TTCN-3 COMPILINGTECHNIQUES AND IMPLEMENTATIONGrade: 2001Candidate: Qian XianghongAcademic Degree Applied

2、for: MasterMajor: Computer ApplicationSupervisor: Prof. Zeng HuashenNov. 2004西南交通大學(xué)碩士研究生學(xué)位論文第II頁西南交通大學(xué)碩士研究生學(xué)位論文第I頁摘要本論文的研究背景是:IPv6協(xié)議集的測試,特別是對IPv6路由器設(shè)備的 測試技術(shù)已經(jīng)成為從現(xiàn)有In ternet向基于IPv6的NGI (Next Ge nerati on In terne) 過渡的關(guān)鍵技術(shù)之一;現(xiàn)代路由器以多端口和高速化為特征,對路由器產(chǎn)品 的符合協(xié)議標(biāo)準(zhǔn)的測試、性能測試難度增加。為了能夠模擬路由器的真實工作 環(huán)境,對路由器的功能與性能指標(biāo)進(jìn)行全

3、面的測試,四川省網(wǎng)絡(luò)通信重點實驗 室開展了對多端口路由器并發(fā)測試技術(shù)的研究和測試系統(tǒng)的開發(fā)工作。本論文 反映的工作是該項目的子系統(tǒng) “雙端口測試系統(tǒng)” (TPT -Two Port Teste)中的 “測試支撐工具研究”,即如何將用TTCN-3語言描述的測試控制數(shù)據(jù)轉(zhuǎn)變?yōu)闇y 試系統(tǒng)中的可執(zhí)行測試數(shù)據(jù)。傳統(tǒng)上這一轉(zhuǎn)換過程可以采用兩種方式:解釋與編譯。目前已有的測試系 統(tǒng)中采用解釋方式的較多,即“邊解釋邊執(zhí)行”的測試方法。筆者及其同事在分析了現(xiàn)代高速路由器的測試需要的基礎(chǔ)上,在存儲空間的占用量和可執(zhí)行代 碼修改的方便性,與測試實時性要求的矛盾中,選擇了“縮短聯(lián)機處理時間” 優(yōu)先的策略,采用對TTC

4、N-3描述的測試控制數(shù)據(jù)進(jìn)行編譯的技術(shù)路線。TTCN-3的編譯過程與傳統(tǒng)的編譯過程類似,包括詞法分析、語法分析、語 義分析和代碼生成4個階段。為了與測試系統(tǒng)中其它部件整合,編譯器采用兩 步編譯的方式,第一步將TTCN-3語言轉(zhuǎn)換成C語言代碼,第二步將C代碼與 測試系統(tǒng)的其它組成部分聯(lián)合編譯,最終生成可執(zhí)行代碼。由于最終的可執(zhí)行 代碼將由C編譯器完成,因此在TTCN-3/C的編譯過程中沒有考慮代碼生成的 優(yōu)化問題。編譯器采用兩遍掃描,第一遍掃描讀入TTCN-3源程序,并對其進(jìn)行詞法分析、語法分析和語義分析。第二遍遍歷第一遍輸出的語法樹,結(jié)合符 號表來生成目標(biāo)C代碼。筆者的工作涉及詞法、語法和語義

5、分析,但研究重點在于代碼生成部分的 設(shè)計與實現(xiàn)。由于TTCN-3編譯器是雙端口測試系統(tǒng)的支撐工具,因此與測試 系統(tǒng)相關(guān)。編譯后的C代碼將與單測試?yán)闅v軟件(Traverser)和編解碼器(E/D - Encoder/Decoder聯(lián)合進(jìn)行C編譯,最終形成可執(zhí)行的單測試?yán)郎y試代碼, 因此 TTCN-3/C編譯器還需要充分考慮與二者的結(jié)合問題。 鑒于研究中的多端口并發(fā) 測試必須依賴雙端口測試器作為基本測試單元,使其能夠集中于對多端口并發(fā)測試的控制問題,而本文反映的工作主要是雙端口測試系統(tǒng)支撐工具的研究與 開發(fā),也是下一階段的多端口并發(fā)測試系統(tǒng)的基礎(chǔ)。關(guān)鍵詞:編譯器;TTCN-3 ;語法分析;代碼生

6、成西南交通大學(xué)碩士研究生學(xué)位論文第IV頁西南交通大學(xué)碩士研究生學(xué)位論文第III 頁AbstractThe backgro und of the research work prese nted in this dissertatio n in elude: A) Testi ng of IPv6 protocol stack, especially IPv6 routers, has become one of the key tech no logies to migrate from the existi ng Internet to the emerg ing Next Gen erat

7、i on Intern et, and B) Existi ng tech niq ues in con forma nee and performa nee test ing for modern high-speed routers with multiple ports are in adequate. In order to test a router thoroughly, it is prerequisite to emulate its external real working conditions. However, existing testing techniques a

8、re not fledged for this purpose. Sichuan Network Communication Key Laboratory (SC-NETCOM LAB) has been researchi ng on the tech niq ues for multi-port con curre nt test and develop ing the Con curre nt Multi-Port Test System (CMPTS), of which the Two Port Tester (TPT) forms an important part. The wo

9、rk presented in this dissertation is dedicated to TTCN-3 translation techniques for TPT, which translates the test control data in TTCN-3 to executable codes.There are two typical approaches in tran slati ng specificati ons in program ming Ian guages: in terpreti ng or compili ng, of which in terpre

10、ti ng approach is most widely used in han dli ng TTCN-3 specificatio ns. In view that moder n routers are high-speed devices with multi-ports, therefore short on-line processing time should have higher priority in system desig n compared with other features such as storage requireme nts and flexibil

11、ity in modification of executable codes, and consequently the compiling approach is adopted.Compiling of test specifications in TTCN-3 is similar to other compiling processes,which invoIve lexical analysis, syntax analysis, semantic analysis, and code gen erati on. In order to in corporate the compi

12、led codes with other parts in TPT, a two-stage compiling approach is designed: first the specifications in TTCN-3 is compiled in to C” and the n to compile in to machi ne executable codes. No code-optimization has been considered in TTCN-3/C compiling and left it for the C” compiler. The TTCN-3/C co

13、mpiler first scans the source code in TTCN-3, performs syn tax an alysis and sema ntic an alysis, and fin ally gen erates the C code via seanning through the syntax tree in conjunction with symbol tables.The authors work invoIves lexical analysis, syntax analysis, and semantic an alysis, and an emph

14、asis has bee n give n to tech niq uesof code gen erati on. As the TTCN-3/C compiler is the support tool for TPT, to some exte nt it is tester-depe ndent. Therefore, the resultant C” code for test control data has to be jointly compiled into machine code with C” code for the traverser (which traverse

15、s through a single test case) and with the E/D (Encoder/Decoder) of PDU (Protocol Data Units) of the protocol under test. The significance of work presented in the dissertation not only provides an important tool for TPT but also provides a basis for CMPTS under developme nt, which leaves the burde

16、n of con trol of a pair of ports to TPT.Key words: compiler, TTCN-3, syn tax an alysis, code gen erati on西南交通大學(xué)碩士研究生學(xué)位論文第VII頁西南交通大學(xué)碩士研究生學(xué)位論文第V頁 TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 摘要I HYPERLINK l bookmark8 o Current Document Abstract1U.目錄V. HYPERLINK l bookmark12 o Current Documen

17、t 第1章緒論1. HYPERLINK l bookmark14 o Current Document 1.1本論文的研究背景 1. HYPERLINK l bookmark16 o Current Document 1.1.1研究IPv6網(wǎng)絡(luò)協(xié)議測試技術(shù)的意義 1 HYPERLINK l bookmark18 o Current Document 1.1.2國內(nèi)外IPv6路由器測試技術(shù)現(xiàn)狀 1 HYPERLINK l bookmark20 o Current Document IPv6路由器并發(fā)多端口測試系統(tǒng) 2 HYPERLINK l bookmark22 o Current Docume

18、nt 1.2.1傳統(tǒng)路由器測試技術(shù)與系統(tǒng)的局限性 2 HYPERLINK l bookmark24 o Current Document 1.2.2并發(fā)多端口測試技術(shù)與測試系統(tǒng) 3 HYPERLINK l bookmark26 o Current Document 1.2.3測試控制管理器與測試支撐工具 4 HYPERLINK l bookmark28 o Current Document 1.3本論文反映的研究與開發(fā)工作及主要特點 5 HYPERLINK l bookmark30 o Current Document 1.4論文組織結(jié)構(gòu)6. HYPERLINK l bookmark32 o

19、Current Document 第2章TTCN-3/C編譯程序總體設(shè)計7 HYPERLINK l bookmark34 o Current Document 2.1 TTCN-3的發(fā)展及特點 7. HYPERLINK l bookmark36 o Current Document 2.2國內(nèi)外相關(guān)編譯技術(shù)研究現(xiàn)狀 8. HYPERLINK l bookmark38 o Current Document TTCN-3/C編譯程序的總體設(shè)計 8 HYPERLINK l bookmark40 o Current Document TTCN-3編譯階段劃分.8. HYPERLINK l bookma

20、rk42 o Current Document TTCN-3/C編譯程序設(shè)計范圍的界定 9 HYPERLINK l bookmark44 o Current Document TTCN-3/C編譯程序的階段 9 HYPERLINK l bookmark46 o Current Document 2.3.4編譯過程的“遍數(shù)” 10 HYPERLINK l bookmark48 o Current Document 第3章詞法、語法與語義分析 12 HYPERLINK l bookmark50 o Current Document 3.1詞法分析12 HYPERLINK l bookmark52

21、o Current Document 3.1.1詞法分析簡介 12 HYPERLINK l bookmark54 o Current Document 3.1.2用LEX構(gòu)造詞法分析器 12 HYPERLINK l bookmark56 o Current Document 3.1.3詞法分析器的輸出結(jié)果 13 HYPERLINK l bookmark58 o Current Document 3.1.4詞法分析的錯誤處理 15 HYPERLINK l bookmark60 o Current Document 3.2語法分析15 HYPERLINK l bookmark62 o Curren

22、t Document 321語法分析簡介15 HYPERLINK l bookmark64 o Current Document 322用YACC工具構(gòu)造語法分析器 15 HYPERLINK l bookmark66 o Current Document 3.2.3與詞法分析的結(jié)合 1.6 HYPERLINK l bookmark68 o Current Document 3.2.4語法規(guī)則的沖突處理 17 HYPERLINK l bookmark76 o Current Document 3.2.5語法樹20 HYPERLINK l bookmark86 o Current Document

23、 3.2.6語法分析的錯誤處理24 HYPERLINK l bookmark88 o Current Document 3.3語義分析24 HYPERLINK l bookmark90 o Current Document 3.3.1語義分析簡介24 HYPERLINK l bookmark92 o Current Document 3.3.2在YACC中實現(xiàn)語義分析 24 HYPERLINK l bookmark94 o Current Document 3.3.3符號表25 HYPERLINK l bookmark98 o Current Document 3.3.4語義分析的輸出27 H

24、YPERLINK l bookmark108 o Current Document 3.3.5語義分析的錯誤處理28 HYPERLINK l bookmark110 o Current Document 第4章代碼生成29 HYPERLINK l bookmark112 o Current Document 4.1代碼生成簡介 29 HYPERLINK l bookmark114 o Current Document 4.2目標(biāo)代碼的形式29 HYPERLINK l bookmark116 o Current Document 4.3代碼生成的基本思路30 HYPERLINK l bookma

25、rk118 o Current Document 4.4與編解碼器的接口 31 HYPERLINK l bookmark120 o Current Document 4.5與單測試?yán)?qū)動程序的接口問題 32 HYPERLINK l bookmark122 o Current Document 4.6語法結(jié)構(gòu)的實現(xiàn)33 HYPERLINK l bookmark124 o Current Document TTCN-3類型的實現(xiàn).33 HYPERLINK l bookmark126 o Current Document TTCN-3聲明的實現(xiàn) .35 HYPERLINK l bookmark128

26、 o Current Document TTCN-3函數(shù)和可選步的實現(xiàn)37 HYPERLINK l bookmark136 o Current Document TTCN-3程序語句和操縱的實現(xiàn) 38 HYPERLINK l bookmark194 o Current Document TTCN-3預(yù)定義函數(shù)的實現(xiàn) 43 HYPERLINK l bookmark202 o Current Document 4.7語法規(guī)則的篩選45 HYPERLINK l bookmark204 o Current Document 第5章編譯程序的調(diào)試46 HYPERLINK l bookmark206 o

27、Current Document 5.1詞法和語法調(diào)試46 HYPERLINK l bookmark230 o Current Document 5.2編譯程序調(diào)試 49 HYPERLINK l bookmark242 o Current Document 5.3編譯程序的執(zhí)行 50 HYPERLINK l bookmark248 o Current Document 第6章總結(jié)與展望52 HYPERLINK l bookmark250 o Current Document 6.1論文工作總結(jié) 52 HYPERLINK l bookmark252 o Current Document 6.2后

28、續(xù)工作展望52 HYPERLINK l bookmark254 o Current Document 致謝54.參考文獻(xiàn)55攻讀碩士學(xué)位期間發(fā)表的論文及科研成果 58西南交通大學(xué)碩士研究生學(xué)位論文第 頁第1章緒論1.1本論文的研究背景1.1.1研究IPv6網(wǎng)絡(luò)協(xié)議測試技術(shù)的意義隨著In ternet的飛速發(fā)展,原有的IPv4協(xié)議集逐漸顯露出其IP地址匱乏、 存在網(wǎng)絡(luò)安全漏洞、不能適應(yīng)面向流的應(yīng)用數(shù)據(jù)傳輸?shù)娜秉c。為了解決In ternet目前和將來可能遇到的問題,In ternet Engin eeri ng Task Force (IETF)定義了新的 網(wǎng)絡(luò)層協(xié)議“IPv6” 2 o IPv6

29、的出現(xiàn)使網(wǎng)絡(luò)層內(nèi)部的相關(guān)協(xié)議及網(wǎng)絡(luò)層以上的 協(xié)議,如與路徑信息交換和網(wǎng)絡(luò)管理相關(guān)的傳送層協(xié)議等也需要做相應(yīng)的適應(yīng) 性改造。以IPv6為基礎(chǔ)的網(wǎng)絡(luò)即被視為下一代In ternet (NGI)。網(wǎng)絡(luò)設(shè)計與運行實踐表明,由于多方面原因,即使是同一協(xié)議或協(xié)議集的 實現(xiàn)并不一定完全符合相關(guān)的協(xié)議,也不一定能夠正確地交換信息,因此需要 對協(xié)議進(jìn)行是否符合相關(guān)標(biāo)準(zhǔn)的測試(Conformance Test)。對于重要的網(wǎng)絡(luò)設(shè)備 如路由器等,還需要對其性能指標(biāo)進(jìn)行測試。為此,從上世紀(jì)80年代初期,國際上就開展了對網(wǎng)絡(luò)協(xié)議實現(xiàn)進(jìn)行測試的技術(shù)研究。國際標(biāo)準(zhǔn)化組織ISO并于80年代中期制訂了“ OSI協(xié)議測試框架”標(biāo)

30、準(zhǔn),即ISO IS 96463。我國網(wǎng)絡(luò)建設(shè)的發(fā)展需要大量的網(wǎng)絡(luò)產(chǎn)品,特別是路由器和交換機產(chǎn)品, 而過去由于我國自身缺少檢測手段,對外國產(chǎn)品只能全盤接受。目前我國正進(jìn) 行下一代In ternet的建設(shè),并進(jìn)行了大量的基于IPv6的產(chǎn)品開發(fā)工作,迫切需 要對相關(guān)網(wǎng)絡(luò)產(chǎn)品的檢驗手段和網(wǎng)絡(luò)檢測與維護(hù)手段。因此,研究相關(guān)測試技 術(shù)、獨立開發(fā)我國的網(wǎng)絡(luò)產(chǎn)品測試系統(tǒng)和建立我國的網(wǎng)絡(luò)產(chǎn)品測試中心,就具 有十分重要的意義。1.1.2國內(nèi)外IPv6路由器測試技術(shù)現(xiàn)狀路由器作為In ternet的核心設(shè)備,在網(wǎng)絡(luò)產(chǎn)業(yè)的發(fā)展和網(wǎng)絡(luò)建設(shè)中占有舉足 輕重的地位,因此對以IPv6為基礎(chǔ)的路由器產(chǎn)品的測試技術(shù)的研究就具有特

31、殊 的意義。為了實現(xiàn)從IPv4向IPv6網(wǎng)絡(luò)的過渡,路由器對IPv6的支持大體上采 用兩種模式:一種是IPv6 over IPv4的模式,另一種是無IPv4的獨立IPv6模式。前者借助于已有的IPv4平臺,將IPv6協(xié)議分組包裝在IPv4報文之中。這種模 式的優(yōu)點是IPv6網(wǎng)絡(luò)的實現(xiàn)可以依托現(xiàn)有的IPv4網(wǎng)絡(luò)進(jìn)行,其典型代表是IETF 的“ 6 bone Project。后者直接在數(shù)據(jù)鏈路層之上實現(xiàn)IPv6協(xié)議及其上層協(xié) 議,代表全新的一代產(chǎn)品,國際上有代表的大型系統(tǒng)包括歐美合作的MoonV6,我國八部委宣布在2005年聯(lián)合建設(shè)我國的基于IPv6的試驗網(wǎng)也屬于這類新一 代的網(wǎng)絡(luò)。因此,對IPv

32、6路由器的測試也基于上述兩種模式進(jìn)行,即基于 IPv4 平臺的包裝測試(Encapsulation Test和直接在IPv6平臺上進(jìn)行測試。迄今為止對IP路由器測試大都采用ISO 9646規(guī)定的兩種抽象測試法,即回 繞測試法(LTM - Loop-back Test Method)和穿越測試法(TTM - Transverse Test Method)。后者是由我國學(xué)者在英國工作期間提出來, 經(jīng)英國ISO對口工作組 建議,被ISO接納為測試網(wǎng)絡(luò)中繼系統(tǒng)的標(biāo)準(zhǔn)測試法之一 。從80年代中期開始我國也逐步開始涉足網(wǎng)絡(luò)協(xié)議測試技術(shù)的研究以及測試 系統(tǒng)的開發(fā),過去大量的工作是針對端系統(tǒng)(End-Syst

33、em)進(jìn)行的。國內(nèi)對路由器的測試工作近年才進(jìn)行,包括清華大學(xué)、中科大IPv6小組9、北京郵電大學(xué)的IPv6研究小組10、中山大學(xué)IPv6學(xué)生實驗網(wǎng)11、蘭州大學(xué)IPv6實驗床 12等,多數(shù)采用基于IPv4的“包裝”測試。1.2 IPv6路由器并發(fā)多端口測試系統(tǒng)1.2.1傳統(tǒng)路由器測試技術(shù)與系統(tǒng)的局限性如圖1-1所示,ISO 9646建議的回繞測試方法(LTM )進(jìn)行測試時,測 試器將測試數(shù)據(jù)的目的地址填為測試器的地址,被測路由器收到該數(shù)據(jù)時,查 詢路徑表后會將該測試數(shù)據(jù)返回到測試器,因此,這種測試方法稱為回繞測試 法。LTM實現(xiàn)簡單,但一次只能測試到單個端口的相關(guān)協(xié)議實現(xiàn),因此測試能 力不強。

34、曾華燊教授在對LTM進(jìn)行深入研究后提出的穿越測試法(TTM )能夠同 時對一對端口進(jìn)行測試,如圖1-2。該測試法要求兩個測試器各自觀察一個路由 器端口,因此從測試器1發(fā)出的測試控制數(shù)據(jù)經(jīng)被測路由器轉(zhuǎn)發(fā)到另一端口, 再到達(dá)測試器2。實際上,在In ternet環(huán)境中,只要將兩個測試器置于同一測試 系統(tǒng)之中,兩個測試器分別使用不同的IP地址,便很容易實現(xiàn)對一對IP路由器端口的嚴(yán)格控制下的測試,也容易實現(xiàn)測試器1和2之間的協(xié)調(diào)。由于在同一測試過程中涉及被測路由器的兩個端口,因而能夠測試模擬路由器一對端口工作狀態(tài)和外部行為的情況。由于該方法的測試路徑穿過了路由器,因此被稱 為“穿越測試法”。考慮到路由

35、器的端口數(shù)通常大于 2,采用TTM僅能夠?qū)σ粚Χ丝谶M(jìn)行受控 測試;而采用多個雙端口測試器對路由器分別進(jìn)行測試,現(xiàn)有的測試技術(shù)中尚 缺少:多個測試器間的協(xié)調(diào)與同步機制。路由器實質(zhì)上是包括應(yīng)用層協(xié)議在內(nèi) 的信令控制平面和管理平面的協(xié)議集,單對端口測試技術(shù)不能反映不同端口之 間在三個平臺上協(xié)議活動的相互影響。現(xiàn)有的測試控制數(shù)據(jù)描述語言TTCN-3不具備描述測試并行性,特別是 并發(fā)特征的能力。正因為如此,目前的測試難以模擬多端口路由器的外部實際工作環(huán)境、夕卜 部網(wǎng)絡(luò)信息流的分布和最低性能指標(biāo),因而測試功能不全面。被測路由器測試器1 測試器2中繼/測試器1測試器2被測路由器說明:測試器1和測試器2在物理

36、 上可以設(shè)計在一個系統(tǒng)之中。圖1-1回繞測試法示意圖圖1-2穿越測試法示意圖1.2.2并發(fā)多端口測試技術(shù)與測試系統(tǒng)四川省網(wǎng)絡(luò)通信技術(shù)重點實驗室為了解決以上問題,著手研究多端口路由器的并發(fā)測試技術(shù)。實驗室首先提出了多端口同步并行穿越測試法(MSP-TTM-Multi-port Synchronized Parallel -Transverse Test Method并定義了并發(fā)多端口 測試定義語言(CMP-TDL - Concurrent Multi-Port Test Definition Language) 13-15。 MSP-TTM要求測試系統(tǒng)能夠在嚴(yán)格的控制下,對多個雙端口測試器(TP

37、T -Two-Port Tester)進(jìn)行協(xié)調(diào)和同步,實現(xiàn)對多個端口對的并行測試。由于相關(guān)的 測試系統(tǒng)具有完整的并行測試和并發(fā)測試的同步與協(xié)調(diào)機制,因而能夠?qū)崿F(xiàn)對 路由器的多個端口的輸入數(shù)據(jù)的并發(fā)特征的模擬和各類數(shù)據(jù)到達(dá)率的模擬,從而使多端口并發(fā)測試系統(tǒng)能夠完整地模擬多端口路由器的實際工作的外部環(huán) 境。鑒于TTCN-3不能描述并行測試之間的同步協(xié)調(diào)和控制的機制,因此需要 一種新的測試控制數(shù)據(jù)定義語言,我們稱之為并發(fā)多端口測試定義語言 CMP-TDL。CMP-TDL的核心功能是描述端口對的并行測試進(jìn)程間的任務(wù)指派、 協(xié)調(diào)和同步,相關(guān)的單對端口的測試控制數(shù)據(jù)將借用增強后的 TTCN-3來描述Coo

38、rdination commands & responsesml三:e : :cmpTM 團(tuán)席i諭時際窗翻畫翕蟲iCoordination commands & responsesMultiple test-threadC- CompilerUTTCN-3 CompilerMATS in :Two-P Testeort r iTw( Teb-Port ster kTwo-POrt Tester 1Two-Port Tester nTest Data &Test Data &responsesresponsesRouter Under Test (RUT)Test Data & J respon

39、sesTest Data & responsesTestCMPTSTools;:;TTCN-3 一:CMPTDLCompilerATS inI I -I 9 I:CMPTDL圖1-3 CMPTE系統(tǒng)結(jié)構(gòu)與測試?yán)喂ぞ呓柚贛SP-TTM測試方法和CMP-TDL語言,目前實驗室正在開發(fā)多端口 IP 路由器的并發(fā)測試系統(tǒng)(CMPTS - Concurrent Multi-Port Test System 14。CMPTS具有如圖1-3左邊所示的兩級結(jié)構(gòu),上級為并發(fā)多端口測試管理器(CMPTM Concurrent Multi-Port Test Manage)處理并行測試同步與協(xié)調(diào)問題; 下級多

40、個TPT分別處理一對端口的測試問題。TPT既可以在CMPTM控制下對 指定的端口對進(jìn)行測試,也可以獨立地作為便攜式雙端口測試器。CMPTM與TPT之間通過局域網(wǎng)進(jìn)行通信。并發(fā)多端口測試系統(tǒng)由于能夠模擬多端口路由器的實際運行環(huán)境,因而可 克服單對端口測試系統(tǒng)不能全面測試和評價多端口路由器的缺點。經(jīng)過查新, 至今尚未見國內(nèi)、外有類似的研究工作報道。1.2.3測試控制管理器與測試支撐工具如圖1-3所示,并發(fā)多端口測試環(huán)境 (CMPTE -Concurrent Multi-Port TestEnvironment)由 CMPTS 和測試支撐工具(Test Support Tools兩部分組成。CMPT

41、S 是測試過程控制器,由CMPTM控制可執(zhí)行測試控制數(shù)據(jù)(MTET - MultipleTest-thread Executable Test )的多線程運行來實現(xiàn)并行測試過程的同步與協(xié)調(diào)。 MTET是用CMP-TDL語言描述的測試控制數(shù)據(jù)中與并行測試相關(guān)的部分經(jīng)過 編譯后形成的可執(zhí)行程序。測試支撐工具的任務(wù)是將用某種語言描述的抽象測試數(shù)據(jù)(Abstract Tests)轉(zhuǎn)變?yōu)榭蓤?zhí)行的測試數(shù)據(jù)(Executable Tests)。在CMPTE中,測試支撐工具包 括 CMP-TDL、TTCN-3、CMP-TDL編譯程序和 TTCN-3/C 編譯程序。其中 CMP-TDL編譯的結(jié)果包括與并行測試相

42、關(guān)部分的 C代碼和TTCN-3測試數(shù)據(jù)兩 部分,本文不涉及 CMP-TDL編譯程序,筆者的工作是關(guān)于 TTCN-3/C編譯程 序的設(shè)計與實現(xiàn)。TTCN-3(Test and Test Control Notation version 3) 16是 TTCN (Tree and Table Combined Notation) 17的第三版。TTCN是ISO定義的“樹表結(jié)合的標(biāo)記語言”, 它是用樹表結(jié)構(gòu)來描述測試集和測試?yán)陌胄问交Z言。與其它高級程序設(shè)計語言類似,用 TTCN-3描述的抽象測試數(shù)據(jù)不能直接 用于實際測試,需要將其轉(zhuǎn)換成可執(zhí)行的測試數(shù)據(jù)。這一轉(zhuǎn)換過程通??捎蓛?類程序來完成:TT

43、CN-3編譯器(Compiler)和TTCN-3解釋器(Interpreter)。目前 已有的測試系統(tǒng)中采用解釋方式的較多,即“邊解釋邊執(zhí)行”的測試方式。解 釋方式的優(yōu)點是:因為每次測試都要重新掃描和解釋用TTCN-3描述的測試控制數(shù)據(jù),因此修改和調(diào)試測試控制數(shù)據(jù)較為方便。但也正因為如此,聯(lián)機處理 時花在解釋上的時間較多,不利于提高測試效率,也不適合實時性要求較高的 測試場合。筆者及其同事在分析了現(xiàn)代高速路由器的測試需要的基礎(chǔ)上,在存儲空間 的占用量和“可執(zhí)行代碼”修改的方便性,與測試實時性要求的矛盾中,選擇 了“縮短聯(lián)機處理時間”優(yōu)先的策略,采用對 TTCN-3描述的測試控制數(shù)據(jù)進(jìn) 行編譯的

44、技術(shù)路線。1.3本論文反映的研究與開發(fā)工作及主要特點以多端口路由器的并發(fā)測試技術(shù)的研究為背景,本論文所反映的工作是筆 者參與并初步完成的TTCN-3/C語言的編譯程序。在完成本論文相關(guān)的研究與 開發(fā)工作中,筆者的工作涉及以下幾個方面:1)研究TTCN-3核心語言,掌握其語法和語義規(guī)則。這是實現(xiàn)TTCN-3編 譯程序的必備基礎(chǔ)。2)研究編譯原理和技術(shù),結(jié)合TTCN-3的特點,與王文娟同學(xué)一道完成了 TTCN-3/C編譯程序的總體設(shè)計。3)研究詞法分析技術(shù),與王文娟同學(xué)一起,利用LEX工具實現(xiàn)了詞法分析器。4)研究語法分析技術(shù),以王文娟同學(xué)為主,利用YACC工具共同實現(xiàn)了語 法分析器。5)重點研究

45、目標(biāo)代碼生成技術(shù),設(shè)計并實現(xiàn)了 TTCN-3語法規(guī)則的一個子 集的編譯。本論文研究工作的主要特點在于:1)在國內(nèi)外對 TTCN/TTCN-3 描述的抽象測試集(ATS - Abstract Test Suite)大多采用解釋方式執(zhí)行的情況下,本論文探索性地采用編譯方式來執(zhí)行, 更加適應(yīng)對高速路由設(shè)備進(jìn)行測試,特別是并發(fā)和性能測試的需要。2)采用兩步編譯的方式,將 TTCN-3描述的ATS編譯成C代碼,以便與測試系統(tǒng)的其它部分代碼聯(lián)合編譯,最終生成可執(zhí)行測試集ETS。3)在國內(nèi)首次探索關(guān)于TTCN-3語言的編譯技術(shù)。盡管國外已有了 TTCN-3/C18和TTCN-3/Java19編譯器的研究與開

46、發(fā),但國 內(nèi)除中科院成都計算機應(yīng)用研究所在 20世紀(jì)80年代末期,進(jìn)行過第一版TTCN 的編譯程序的開發(fā)工作20外,至今尚無人開發(fā)過TTCN-3的編譯程序。TTCN-3 在第一版TTCN的基礎(chǔ)上增加了許多新的功能和特點21,因此該編譯器的設(shè)計 與開發(fā)仍有較大的價值。1.4論文組織結(jié)構(gòu)本論文的后續(xù)章節(jié)主要反映筆者所涉及的研究工作,其組織結(jié)構(gòu)如下:第2章在簡要地介紹了 TTCN-3語言及其發(fā)展和相關(guān)編譯技術(shù)現(xiàn)狀之后, 介紹了筆者參與的TTCN-3/C編譯程序的總體設(shè)計方案,確立了兩遍掃描的編 譯結(jié)構(gòu)。第3章討論TTCN-3/C編譯程序的詞法、語法和語義分析技術(shù),以及 相關(guān)程序的設(shè)計。該章的重點是用

47、LEX構(gòu)造詞法分析器,以及用YACC構(gòu)造語 法分析器的方法;對解決語法沖突、構(gòu)造語法樹和維護(hù)符號表等問題也作了相 應(yīng)的討論。第4章詳細(xì)討論了代碼生成的設(shè)計,重點在于其基本思路和各類語 法結(jié)構(gòu)的實現(xiàn)。第5章簡要地討論了對編譯程序的調(diào)試方法和調(diào)試實踐。最后, 第6章在對論文工作進(jìn)行總結(jié)的基礎(chǔ)上,對后續(xù)研究工作進(jìn)行了分析和展望。第2章TTCN-3/C編譯程序總體設(shè)計2.1 TTCN-3的發(fā)展及特點TTCN17是一種通過樹表結(jié)構(gòu)來描述測試集和測試?yán)陌胄问交Z言,其最早于1992年被列入ISO/IEC 9646-3和CCITT Rec.X.292標(biāo)準(zhǔn)文本中。TTCN以 其友好的表格形式、判決系統(tǒng)和一致

48、性匹配機制逐漸成為了協(xié)議一致性測試的 規(guī)范語言,并廣泛應(yīng)用于各大標(biāo)準(zhǔn)化組織和工業(yè)領(lǐng)域。由于第一版的TTCN不能描述測試系統(tǒng)內(nèi)部、被測系統(tǒng)內(nèi)部以及他們之間的并發(fā)行為,1998年ISO/IEC 和ITU-T發(fā)布了第二版TTCN(TTCN-2)22,它在前一版本的基礎(chǔ)上提出了并 發(fā)機制和許多新的概念,實現(xiàn)了模塊的重用和封裝,同時還以一種簡單的聲明 實現(xiàn)了 ASN.1 (Abstract Syntax Notation 1)23,24的解碼。由于 TTCN-2 仍然是基于 OSI ( Open Systems Interconnectior)一致性測試 設(shè)計開發(fā),因而不能應(yīng)用于其它類型的測試,如互操作

49、性測試、健壯性測試、 回歸測試、系統(tǒng)測試和集成測試等,和更廣泛的技術(shù)領(lǐng)域。ETSI于2000年10月發(fā)布的第三代TTCN標(biāo)準(zhǔn)(TTCN-3) 16是一種更靈活,功能更強大的測試描 述語言,同時將之列入了 ITU-T Z.140系列。最初的TTCN-3標(biāo)準(zhǔn)分3個部分:核心語言(Core Language)16、類似于 TTCN 的表格表示形式(Tabular Presentation Format,TFT25、基于 MSC(Message SequenceChart)的圖形化表示形式(Graphical Presentation Format,GFT) 26。 2003年3月16 日,ETSI發(fā)

50、布的TTCN-3修訂版不僅對原有三部分進(jìn)行了改進(jìn) 和提高,還提出三個新的部分:TTCN-3的操作語法27、運行接口( TTCN-3Run time In terface,TRI)28和控制接口( TTCN-3 Control In terface ,TCI) 29。TTCN-3使用靈活、功能強大,能通過各種通信接口應(yīng)用于不同的測試系統(tǒng), 它在TTCN-2的基礎(chǔ)上增加了許多新的功能21,比如:不同的表示形式。動態(tài)并發(fā)的測試配置。同步和異步通信操作。信息編碼和其它屬性的描述。數(shù)據(jù)和簽名模板具有功能強大的匹配機制。類型和值的參數(shù)化。測試判決的制定和處理。測試集的參數(shù)化和測試?yán)倪x擇機制。TTCN-3

51、與ASN.1以及其它語言(如IDL30、UML 31)的聯(lián)合使用2.2國內(nèi)外相關(guān)編譯技術(shù)研究現(xiàn)狀早在80年代,在TTCN標(biāo)準(zhǔn)剛制定后不久,國內(nèi)外就有一些研究機構(gòu)對 TTCN支撐工具進(jìn)行研究。一些研究機構(gòu)把用TTCN描述的測試集轉(zhuǎn)換為各自的測試描述語言的形式,再轉(zhuǎn)換為可執(zhí)行測試集。比如英國國家物理實驗室將 TTCN轉(zhuǎn)換為測試描述語言TDL32,加拿大IDICOM公司將TTCN轉(zhuǎn)換為其專 用測試語言ITL 0 TDL通過編譯而ITL則采用解釋的形式來執(zhí)行測試集。而另 外一些研究機構(gòu)則直接將TTCN描述的測試集進(jìn)行解釋或編譯。比如國際上有 的研究機構(gòu)曾對TTCN的直接解釋執(zhí)行做了嘗試33,34;國內(nèi)

52、對TTCN的支撐工 具開發(fā)得比較成功和完善的是中科院成都計算機應(yīng)用研究所在開發(fā)OSI第4類傳送層協(xié)議測試系統(tǒng)時所開發(fā)的 TTCN編譯器20 o近些年,隨著TTCN-3的普及和IPv6測試系統(tǒng)的出現(xiàn),一些研究機構(gòu)正在 研究開發(fā)TTCN-3支撐工具。例如18公司開發(fā)出的TTthree系列 工具,實現(xiàn)了對TTCN 3到C語言的編譯以及TTCN-3至到 JAVA語言的編譯; 35公司開發(fā)的 OpenTTCN測試儀工具中的 TTCN 3編譯 器;國內(nèi)的TTCN-3支撐工具的開發(fā)多為TTCN-3解釋器33。2.3 TTCN-3/C編譯程序的總體設(shè)計2.3.1 TTCN-3編譯階段劃分TTCN-3描述的測試

53、控制數(shù)據(jù)(測試?yán)?組/集)到可執(zhí)行測試數(shù)據(jù)的編譯過 程,一般分為兩個步驟。第一個步驟是將 TTCN-3描述的測試控制數(shù)據(jù)編譯成 某種程序設(shè)計語言的表達(dá)形式,第二步再利用該程序設(shè)計語言的編譯程序編譯 成可執(zhí)行測試數(shù)據(jù)。這樣做具有多方面的優(yōu)點。首先,它可以利用現(xiàn)有的程序 設(shè)計語言的編譯程序?qū)崿F(xiàn)向機器代碼的轉(zhuǎn)換功能,因而不必與機器代碼打交道, 將研究的重點放在TTCN-3和高級語言的轉(zhuǎn)換上。其次,它容易實現(xiàn)將編譯的 中間結(jié)果,即某種程序設(shè)計語言表達(dá)的代碼,與用同種程序設(shè)計語言開發(fā)的測試系統(tǒng)其它部件的實現(xiàn)代碼進(jìn)行聯(lián)合編譯,得到完整的可執(zhí)行測試程序。最后, 由于大眾化的程序設(shè)計語言都具有較好的可移植性,

54、因此TTCN-3編譯程序和編譯中間代碼都便于在多種平臺之間移植。本編譯器采用的就是這種設(shè)計思路,即設(shè)計為TTCN-3到C語言的編譯器。 TTCN-3測試?yán)?jīng)過編譯生成完整的 C程序文件,再用通用的C編譯器及相關(guān) 鏈接、裝載工具,生成最終可執(zhí)行的程序。232 TTCN-3/C編譯程序設(shè)計范圍的界定TTCN-3是一個相當(dāng)復(fù)雜的測試控制描述語言,其中許多功能在測試實踐中 可以不用或難于理解。從IPv6路由器測試的需要和開發(fā)周期上的考慮,我們界 定第一版的TTCN-3/C編譯程序只支持TTCN-3功能的一個子集。由于我們選 擇了 C語言作為中間語言,因此,在滿足測試需要的前提下,盡量選擇了 TTCN-

55、3 中其語法和語義較容易在C中找到對應(yīng)關(guān)系的語法結(jié)構(gòu),特別是那些容易實現(xiàn) 直接轉(zhuǎn)換或者通過構(gòu)造C語言的類(Class)結(jié)構(gòu)來實現(xiàn)的語法結(jié)構(gòu)。對于錯誤處理,在詞法和語法分析階段,我們簡單地報告出錯地點,然后 停止編譯。而在語義分析階段,我們報告出錯地點和具體的錯誤類型,但并不 停止編譯。2.3.3 TTCN-3/C編譯程序的階段編譯器36-38是將一種語言翻譯為另一種語言的計算機程序。編譯器以某種 語言(Source Language )編寫的程序作為輸入(源程序),經(jīng)過處理生成與源 程序等價的用目標(biāo)語言(Target Language表達(dá)的程序。編譯程序的工作一般可以分為五個主要階段:詞法分析

56、、語法分析、語義 分析、中間代碼產(chǎn)生、目標(biāo)代碼生成36。TTCN-3/C編譯程序的設(shè)計可以參照這 五個階段劃分相關(guān)的功能模塊。編譯程序中一般還應(yīng)包括“表格管理”和“出 錯處理”兩部分內(nèi)容。在編譯程序中最重要的表格是符號表,它記錄源程序中 定義的所有名字以及其各種屬性36。根據(jù)需要,編譯程序還可能包括對生成的 代碼進(jìn)行優(yōu)化的過程。不過考慮到在本設(shè)計中功能盡可能簡化,加上后續(xù)的C編譯器大多具有代碼優(yōu)化的功能,所以目前的TTCN-3/C編譯器中未考慮代碼優(yōu)化的問題。圖2-1為典型編譯程序的編譯階段和功能劃分示意圖36。源程序目標(biāo)程序圖2-1典型編譯器程序階段和功能劃分234編譯過程的“遍數(shù)”上一節(jié)討

57、論的編譯程序的五個階段,是按邏輯功能進(jìn)行劃分的。具體實現(xiàn) 時,考慮到源語言的差異、設(shè)計要求以及實際處理的方便性和合理性等因素, 往往很難一次完成全部的編譯工作,而需要從頭到尾對源程序或源程序的中間 結(jié)果進(jìn)行多次掃描,每一次掃描僅完成部分加工處理,并生成中間結(jié)果或目標(biāo) 程序。掃描一次在編譯術(shù)語中稱為一 “遍”(PASS)36。編譯器掃描遍數(shù)的確定主要是在時間和空間效率上進(jìn)行權(quán)衡37,此外也涉及算法復(fù)雜度的問題,因 此在一遍掃描過程中,可能會處理圖 2-1中的多個階段功能。如果只采用一遍掃描,編譯程序在設(shè)計和實現(xiàn)上難度太大,生成的編譯器 難以維護(hù);多遍掃描對路由器的測試效率影響較大;而兩遍掃描,由

58、于前后兩 遍的設(shè)計相對獨立而本編譯器由兩個小組成員分別完成,可以較明確地進(jìn)行小 組分工與合作,因此本編譯器采用了兩遍掃描處理的方式。如圖2-2所示,第一遍掃描讀入TTCN-3源程序,并對其進(jìn)行詞法分析、語法分析和語義分析, 其輸出為語法樹和符號表。第二遍掃描的輸入是第一遍生成的語法樹,通過對 語法樹的遍歷,結(jié)合符號表登記的信息來生成C代碼。筆者的研究重點是第二遍掃描,即C代碼生成方面的工作。圖2-2 TTCN-3/C編譯器的遍第3章詞法、語法與語義分析3.1詞法分析3.1.1詞法分析簡介詞法分析是編譯過程的第一個階段。這個階段的主要任務(wù)是從左到右逐個字符地讀入TTCN-3源程序,產(chǎn)生單詞符號序

59、列,以提交給語法分析使用38。詞法分析還可以完成一些相關(guān)的輔助任務(wù)37,個是濾掉源程序中的注釋、空 格、制表符和換行符等不影響程序執(zhí)行的代碼,另一個是使編譯器能將發(fā)現(xiàn)的 錯誤信息與源程序的出錯位置聯(lián)系起來。編譯技術(shù)發(fā)展到現(xiàn)在,詞法分析已經(jīng)非常成熟,并有了很多通用的工具, 因為詞法分析通常與編譯程序的源語言和目標(biāo)語言無關(guān)。詞法分析的基礎(chǔ)是源 語言的詞法規(guī)則,一般用正則表達(dá)式36來表示。3.1.2用LEX構(gòu)造詞法分析器最具代表性的詞法分析器生成工具是LEX39-42系列,本編譯器采用其中的FLEX42版本。如圖3-1所示,LEX的輸入為LEX語言的程序,它包含對源語 言詞法構(gòu)成的正規(guī)式描述,詞法分

60、析器對詞法結(jié)構(gòu)識別匹配后的即時處理動作, 以及其它輔助過程三大部分。經(jīng)過LEX工具的編譯,將該LEX語言的程序轉(zhuǎn)換為一個C宿主語言的程序yylex。將yylex加入到我們的編譯器中,就是我們 的詞法分析器。FLEX的通用性、可靠性和以 C為宿主語言等特點是我們選擇 的主要原因。LEX源程序輸入串圖3-1 LEX在編譯系統(tǒng)中的作用LEX源程序的格式如下38:說明部分%轉(zhuǎn)換規(guī)則%輔助過程在本編譯器中,LEX的輸入文件為TTCN.L。在TTCN.L的說明部分定義 了 29個正規(guī)式,它們決定了 TTCN-3的詞法構(gòu)成,并區(qū)分了換行符和其它的空 白字符;轉(zhuǎn)換規(guī)則部分定義了單詞識別的即時處理,通常是返回一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論