<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 幾種基于TTCN的TD-SCDMA終端協(xié)議測試方法介紹

          幾種基于TTCN的TD-SCDMA終端協(xié)議測試方法介紹

          ——
          作者:姚明菊 李小文 時(shí)間:2007-04-16 來源:通信世界 收藏
          一、概述

          (TreeandTabularCombined Notation)樹表結(jié)合表示法,顧名思義,就是采用以樹和表格為表現(xiàn)形式的表示法,其中表格主要用于數(shù)據(jù)類型、原語、協(xié)議觀察點(diǎn)、約束等,樹則用于描述集、例、測試步。根據(jù)ISO/IEC 9646的定義,需要滿足以下幾項(xiàng)需求:第一點(diǎn),測試系統(tǒng)能夠定義、構(gòu)造發(fā)送和接收被測試實(shí)體(IUT)的抽象服務(wù)原語(ASP);第二點(diǎn),能夠定義和構(gòu)造嵌入在ASP中的協(xié)議數(shù)據(jù)單元(PDU);第三點(diǎn),在指定控制和觀察點(diǎn)(PCO)上,能夠規(guī)定ASP的發(fā)送或接收順序和能夠構(gòu)造測試?yán)?/P>

          二、協(xié)議軟件測試

          目前協(xié)議測試分成一致性測試(ConformanceTesting)、互操作性測試(InteroperabilityTesting)、性能測試(PerformanceTesting)、堅(jiān)固性測試(Robustness Testing)和遍歷性測試(Ergodicity testing)等幾個(gè)方面進(jìn)行研究。

          幾個(gè)測試階段的關(guān)系

          圖1 幾個(gè)測試階段的關(guān)系

          ●一致性測試:驗(yàn)證設(shè)備實(shí)現(xiàn)與相應(yīng)協(xié)議標(biāo)準(zhǔn)的一致性,檢驗(yàn)不同的待

          測設(shè)備是否能夠滿足統(tǒng)一的要求,從而在相同的外部條件下進(jìn)行相同的動(dòng)作,并且輸出相同的結(jié)果。一致性測試的開展是為了保證不同廠家的產(chǎn)品表現(xiàn)一致并能夠互聯(lián)互通,保證開發(fā)人員有據(jù)可依,從而保證質(zhì)量。

          ●互操作性測試:根據(jù)終端芯片與終端開發(fā)的實(shí)際進(jìn)展,驗(yàn)證不同終端與系統(tǒng)之間的互操作能力,并且促進(jìn)不同系統(tǒng)和終端空中接口間的互操作能力,即解決不同終端與不同系統(tǒng)之間的互操作問題。

          ●性能測試:主要是通過測試終端的功能,比如終端長時(shí)間穩(wěn)定進(jìn)行某項(xiàng)功能的能力,終端重復(fù)穩(wěn)定地運(yùn)行某項(xiàng)功能的能力,終端同時(shí)進(jìn)行多項(xiàng)業(yè)務(wù)時(shí)表現(xiàn)出的處理能力以及系統(tǒng)的負(fù)載工作能力等。

          ●遍歷性測試:協(xié)議軟件開發(fā)到尾聲階段,為了盡可能窮盡所有可能的情況,同時(shí)避免重復(fù)勞作而進(jìn)行的測試。

          每個(gè)方面的測試一般來說又包含單層測試、集成測試、系統(tǒng)測試幾個(gè)階段。幾個(gè)階段測試之間的關(guān)系如圖1所示。

          ●單層測試:主要測試單層的內(nèi)部結(jié)構(gòu)(如邏輯和數(shù)據(jù)流)以及該層的功能和可觀測的行為。

          ●集成測試:確保各層集成在一起后能夠按既定意圖協(xié)作運(yùn)行,并確保其行為正確。它所測試的內(nèi)容包括層間的接口以及集成后的功能。

          ●系統(tǒng)測試:測試的最終應(yīng)用將在板級(jí)上進(jìn)行,模擬真實(shí)環(huán)境進(jìn)行測試。

          根據(jù)TTCN的規(guī)則和要求可以構(gòu)造出TTCN的測試模型,如圖2所示。

          TTCN測試模型

          圖2 TTCN測試模型

          三、測試方法

          可以看到TTCN的測試是一種典型的黑盒測試,把整個(gè)IUT看作一個(gè)測試實(shí)體來考慮,采用TTCN作為測試環(huán)境,TTCN與IUT之間的接口作為測試觀測點(diǎn)PCO,運(yùn)行測試?yán)?,通過觀測和檢查PCO的ASP和PDU的正確性來達(dá)到驗(yàn)證測試?yán)恼_性。測試?yán)菧y試的目的和方向所在,而且測試系統(tǒng)也是通過TTCN編寫測試?yán)齺砟M的,因此測試?yán)木帉懯且粋€(gè)十分重要的環(huán)節(jié),要滿足協(xié)議和應(yīng)用的各種要求,做到十分嚴(yán)謹(jǐn)和精確,這也是測試人員的主要任務(wù)所在。被測實(shí)體IUT可以是單層(被測系統(tǒng)只有一層被測試)或多層(被測系統(tǒng)中有一系列相鄰層需要測試),可以根據(jù)測試的不同階段來選擇組合?;诖薚TCN的測試模型我們可以采用幾種測試方法。

          (一)TTCN和SDL的協(xié)仿真

          采用一個(gè)集仿真、開發(fā)、測試于一體的TelelogicABTau的產(chǎn)品SDLand TTCN Suite 4.0作為開發(fā)工具。通過TTCN編寫測試?yán)琒DL and TTCN Suite 4.0提供的SDL和TTCN的協(xié)仿真功能來進(jìn)行測試。

          1.簡單的TTCN和SDL測試

          ASP和PDU的接口定義使用SDL工具的TTCN-LINK(利用SDL的功能,可以將SDL描述的數(shù)據(jù)結(jié)構(gòu)直接轉(zhuǎn)換到TTCN中使用)功能直接轉(zhuǎn)換得到。在協(xié)仿真中TTCN收到SDL發(fā)送的數(shù)據(jù),經(jīng)過IUT處理后送回到SDL中去,SDL輸出的數(shù)據(jù)和TTCN發(fā)送到SDL的數(shù)據(jù)存在一定的關(guān)系。通過驗(yàn)證其正確性以確定IUT開發(fā)的正確性。這是基于TTCN的最基本的測試方法,所有的數(shù)據(jù)處理都是在TTCN中來完成的,但是TTCN對(duì)數(shù)據(jù)的計(jì)算能力是有限的。我們?cè)陂_發(fā)中將C源代碼嵌入到SDL中,所有的接口也都是通過C來定義的,因?yàn)镃的數(shù)據(jù)類型非常豐富,但是TTCN可以識(shí)別的數(shù)據(jù)類型卻是有限的,比如復(fù)雜的指針就無法處理。因此這種方法只適合測試數(shù)據(jù)量不大、數(shù)據(jù)類型簡單的情況,不是很有實(shí)際應(yīng)用的價(jià)值。

          TTCN測試模型

          圖3 簡單的TTCN和SDL測試

          2.改進(jìn)后的TTCN和SDL測試

          由于上述方法的缺陷,我們對(duì)它進(jìn)行了改進(jìn),這就是要介紹的第二種測試方法。將TTCN無法處理的過程放到SDL中來完成,用C源代碼完成測試數(shù)據(jù)的分析和構(gòu)造,并在IUT內(nèi)部增加2個(gè)測試模塊A'、B'和2個(gè)測試接口,如圖4所示。2個(gè)測試模塊可以對(duì)信號(hào)A和B作任何處理,在測試模塊進(jìn)行數(shù)據(jù)的轉(zhuǎn)化和處理,再將預(yù)處理后的數(shù)據(jù)送到TTCN測試環(huán)境中處理,從而大大簡化了TTCN測試數(shù)據(jù)的編寫和處理。這種方法最大程度的利用C、SDL、TTCN的優(yōu)點(diǎn),在測試過程中實(shí)現(xiàn)協(xié)仿真,可以生成消息序列流圖(MSC圖),通過觀察IUT內(nèi)部和IUT與環(huán)境之間PCO的消息序列和數(shù)據(jù)流,從而達(dá)到驗(yàn)證開發(fā)正確性的目的,可以認(rèn)為該方法為一種灰箱測試方法。目前此測試方法已經(jīng)廣泛地應(yīng)用在終端協(xié)議軟件的一致性測試、互操作性測試等測試的單層和集成測試中,我們認(rèn)為它是一種非常有效的測試方法。

          改進(jìn)后的TTCN和SDL測試IUT

          圖4 改進(jìn)后的TTCN和SDL測試IUT

          (二)基于TTCN的板級(jí)測試

          TTCN結(jié)合SDL的測試方法能夠很好地滿足協(xié)議棧軟件開發(fā)初期和中期的要求,但是由于SDL的實(shí)時(shí)性比較差,定時(shí)器,內(nèi)存、接口測試等都不能很好的模擬現(xiàn)場實(shí)際情況。隨著協(xié)議軟件開發(fā)的逐漸成熟,只采用這種方法也不能很好的滿足要求,并且到了更加需要大量基于實(shí)際環(huán)境的系統(tǒng)測試階段。如此繁多的系統(tǒng)測試都到現(xiàn)場進(jìn)行是非常昂貴,也是不可能實(shí)現(xiàn)的,因此需要對(duì)測試方法做出改進(jìn),找到能夠模擬現(xiàn)場測試的室內(nèi)系統(tǒng)測試新方法。

          采用TTCN結(jié)合手機(jī)板的板級(jí)測試方法是一種非常有效的模擬現(xiàn)場測試的系統(tǒng)測試的好方法,仍然采用TTCN模擬測試環(huán)境,編寫測試?yán)?,但是測試體不再是嵌入了C代碼的SDL,而是實(shí)實(shí)在在的移植了源代碼的手機(jī)板,測試模型如圖5所示。

          板級(jí)測試的IUT

          圖5 板級(jí)測試的IUT

          IUT的測試環(huán)境仍然是在TTCN中編寫測試?yán)M,也是通過接口與IUT進(jìn)行消息交互,再檢查消息交互的原語、數(shù)據(jù)及對(duì)應(yīng)的MSC圖、TRACE來驗(yàn)證測試實(shí)體是否達(dá)到開發(fā)的要求。而消息交互過程仍然存在,因?yàn)門TCN的局限性—無法識(shí)別復(fù)雜指針和某些數(shù)據(jù)類型的問題。因此IUT和測試環(huán)境的消息交互還必須要經(jīng)過一個(gè)中間過程來轉(zhuǎn)化,這個(gè)轉(zhuǎn)化過程可以通過設(shè)立一個(gè)BUFFER來實(shí)現(xiàn)串口轉(zhuǎn)換,在BUFFER中進(jìn)行數(shù)據(jù)和類型的轉(zhuǎn)化及處理,這個(gè)處理過程的原理實(shí)際上很類似于前面介紹的TTCN結(jié)合SDL的第二種測試方法的處理原理。

          板級(jí)測試的主要特點(diǎn)就是將測試模塊(即IUT)源代碼移植到手機(jī)板上運(yùn)行,在具體實(shí)現(xiàn)過程中,及測試?yán)郎?zhǔn)備就緒的前提下,首先將源代碼加到工程文件中,通過編譯工具(一般采用ARM公司的ARMDeveloperSuite)將工程文件編譯成可以在ARM核芯片上運(yùn)行的目標(biāo)代碼,然后將代碼移植到ARM核芯片上,再通過嵌入式系統(tǒng)的測試工具(如Lauterbach公司出品的通用調(diào)試軟件TRACE-32ICD速度很快,但是價(jià)格昂貴,可根據(jù)實(shí)際情況決定)把目標(biāo)代碼下載到目標(biāo)板上運(yùn)行調(diào)試,最后通過觀察PCO是否得到預(yù)期的結(jié)果。另外我們還可以將實(shí)時(shí)操作系統(tǒng)應(yīng)用到板級(jí)測試中,將協(xié)議軟件運(yùn)行在這個(gè)操作系統(tǒng)之上,這樣可以真正的實(shí)現(xiàn)人機(jī)界面的操作,更加真實(shí)地模擬現(xiàn)場測試。

          板級(jí)測試不僅能夠很好地克服TTCN的實(shí)時(shí)性差的缺點(diǎn),而且基本上能夠達(dá)到在室內(nèi)實(shí)現(xiàn)模擬現(xiàn)場測試的大部分測試,就目前來說它是一種非常先進(jìn)的室內(nèi)測試方法,可以應(yīng)用在各種終端測試的系統(tǒng)測試階段。如今一致性測試互操作性測試以及性能測試等已經(jīng)基本完成,但仍然需要做大量的遍歷性測試,盡可能地發(fā)現(xiàn)以前各種測試沒有發(fā)現(xiàn)的問題。進(jìn)行遍歷性測試主要應(yīng)該放到系統(tǒng)測試階段,因此應(yīng)用板級(jí)測試將會(huì)起到非常好的效果。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();