• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種基于TTCN—3工具的簡單設(shè)計與實現(xiàn)

    2014-04-29 00:00:00陳張榮
    計算機光盤軟件與應用 2014年8期

    摘 要:TTCN-3語言是近年來應用比較廣泛的一致性測試描述語言,本文分析了TTCN-3語法中的特點:作用域、結(jié)構(gòu)化、import機制等內(nèi)容,并根據(jù)一致性測試的一般方法設(shè)計了一個基于TTCN-3的測試工具,并給出了基本的實現(xiàn)原理。

    關(guān)鍵詞:TTCN-3;一致性測試;測試工具

    中圖分類號:TP311.52

    TTCN-3,簡稱測試及測試控制表達法(Testing and Test Control Notation),是國際標準化的測試準用開發(fā)編程語言,用于描述在多種通信端口上的各種響應系統(tǒng)測試。它典型的應用領(lǐng)域包括:移動通信、寬帶技術(shù)、中間件平臺、互聯(lián)網(wǎng)協(xié)議等。

    本文描述了一種簡單的TTCN-3編譯器和執(zhí)行器的設(shè)計和實現(xiàn),能夠提供完整的TTCN-3運行環(huán)境。將其命名為ATR——A TTCN-3 Runner。

    ATR使用的主要開發(fā)工具:JDK 5.0、Eclipse 3.4、Antlr3+StringTemplate3.2+AntlrWorks、SVN

    1 編譯器

    ATR選擇ANTLR3作為編譯器生成器,實現(xiàn)將TTCN-3腳本翻譯為JAVA代碼。同時,為了更好地控制代碼生成,ATR使用了stringtemplate3.2作為代碼生成模板引擎,由于TTCN3允許類型的超前引用,因此ATR采用兩遍掃描來實現(xiàn)語法/詞法分析、語義分析及代碼生成。

    語法/詞法分析:MiniTTCN.g中實現(xiàn)

    語義分析:MiniTTCNtree.g中實現(xiàn)

    代碼生成:MiniTTCNtree.g與MiniTTCN.stg中實現(xiàn)

    1.1 MiniTTCN.g

    首先對TTCN3代碼進行第一遍掃描(輸入為xxx.ttcn源碼文件),分析源文件的語法并指出語法錯誤,構(gòu)造符號表(第一遍掃描只生成type類定義如module/compnent/function/testcase/record…的符號表項),對于function、testcase和control部分定義的局部變量,延遲到第二遍掃描時再加入符號表。同時,MiniTTCN.g根據(jù)輸入構(gòu)造抽象語法樹(AST),在MiniTTCNtree.g中進行的第二遍掃描即在該語法樹的基礎(chǔ)上進行。

    1.2 MiniTTCNtree.g

    該文件根據(jù)MiniTTCN.g寫成,具體編寫規(guī)則可參考antlr3相關(guān)文檔,實現(xiàn)對MiniTTCN.g中生成的AST進行處理,并對TTCN3語義進行檢查,最終調(diào)用MiniTTCN.stg中定義的規(guī)則生成代碼。在該文件中,繼續(xù)完善第一遍掃描時生成的符號表。

    1.3 符號表

    符號表保存了ATR編譯器在編譯TTCN-3文件的過程中,所有標識符的信息,如代碼片斷:

    module m1{

    type component Mtype{ var integer i;const boolean b:=2;}

    function f1(integer v1) runs on Mtype return integer{

    log(“Hello yatr?。躰”,“v1=“,v1);

    return 55+i;

    }

    }

    表1 符號表

    m_name=m1m_attrib=MODULEm_name=im_attrib=VALUE

    m_subAttrib=1 m_subAttrib=VAR

    m_type=1 m_type=(IntegerValueATR)

    m_subTable=1 m_subTable=1

    m_subTypelist=1 m_subTypelist=1

    m_name=Mtypem_attrib=TYPEm_name=bm_attrib=VALUE

    m_subAttrib=COMPONENT m_subAttrib=CONST

    m_type=1 m_type=(BooleanValueATR)

    m_subTable=(i,b) m_subTable=1

    m_subTypelist=1 m_subTypelist=1

    m_name=f1m_attrib=FUNCTION

    m_subAttrib=1

    m_type=(IntegerValueATR)

    m_subTable=(v1)

    m_subTypelist=1

    runsOnComp=Mtype

    主符號表示例子表示例

    主符號表是貫穿整個編譯過程的主要符號的符號表,比如函數(shù)名、組件名的符號表項,各子表是主符號表中某項的子元素構(gòu)成的符號表。

    符號表的主要用途是進行上下文語義檢查,如檢查函數(shù)中return返回的值的類型與函數(shù)原型聲明的返回值類型是否一致,兩個變量進行運算,它們的類型是否一至等,如下代碼片段:

    var integer v2:=1; (1)

    var charstring v3:=“hi”; (2)

    var integer v:=v2+v3; (3)

    這段代碼從語法層面講完全正確!但是第(3)條語句卻有一個語義錯誤,即整數(shù)不能與字符串進行加法運算。當ATR編譯器看到v2+v3這條語句后,它將從符號表中取出v2與v3,并比較兩個符號在表中的各個相關(guān)成員,以確定兩個相加的變量是否類型匹配,該過程通過如下代碼段實現(xiàn):

    expr

    |^(op='+'e1=expr e2=expr) {$t=doE1E2($op.getToken(),$e1.t,$e2.t,TSubAttribTYPE.INTEGER);}

    通過以上方法就可以順利編譯TTCN-3的腳本。

    2 運行時

    ATR的主要實現(xiàn)方式是,將TTCN3語言翻譯為java語言,因此運行時主要是指TTCN3語言中定義的type/value/component/port等概念,使用java語言實現(xiàn)的一個基本庫。因此比較簡單,在此就不再贅述。

    3 結(jié)束語

    通過對ATR的設(shè)計和實現(xiàn)全面深入的了解TTCN-3的構(gòu)造以及執(zhí)行細節(jié)。此工具可以簡單的將TTCN-3測試腳本編譯執(zhí)行,反饋測試結(jié)果。目前已經(jīng)可以運行IPSEC測試套件,LTE測試套件等標準化的測試腳本,對TTCN-3在我國的推廣和發(fā)展起到一定的推動作用。

    參考文獻:

    [1]王冠,吳際,徐珞.面向TTCN-3分布式測試執(zhí)行平臺的測試適配器框架的研究與設(shè)計[J].電子學報,2009(z1).

    [2]蔣凡,季向東,曾凡平.TTCN-3測試系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程,2005(11).

    [3]王晰,楊驊.基于TTCN-3的LTE終端一致性測試集設(shè)計概述[J].移動通信,2013(24).

    作者簡介:陳張榮(1982.05-),男,江蘇蘇州人,碩士,教師,講師,研究方向:嵌入式、物聯(lián)網(wǎng)。

    作者單位:蘇州高等職業(yè)技術(shù)學校,江蘇蘇州 215000

    湘潭市| 涞水县| 玛沁县| 东丰县| 长垣县| 乌拉特前旗| 金乡县| 四子王旗| 无锡市| 宜丰县| 青浦区| 临江市| 东光县| 天祝| 江达县| 沙坪坝区| 盐边县| 黎平县| 天峨县| 天气| 靖西县| 长武县| 宁远县| 大关县| 南康市| 宣化县| 旬邑县| 望江县| 陵川县| 临桂县| 若尔盖县| 泗洪县| 寿阳县| 桐梓县| 马山县| 阿克陶县| 云浮市| 东乌珠穆沁旗| 娄烦县| 通许县| 延寿县|