幾種基于TTCN的TD-SCDMA終端協(xié)議測(cè)試方法介紹
TTCN(TreeandTabularCombined Notation)樹表結(jié)合表示法,顧名思義,就是采用以樹和表格為表現(xiàn)形式的測(cè)試表示法,其中表格主要用于數(shù)據(jù)類型、原語(yǔ)、協(xié)議觀察點(diǎn)、約束等,樹則用于描述測(cè)試集、測(cè)試例、測(cè)試步。根據(jù)ISO/IEC 9646的定義,TTCN需要滿足以下幾項(xiàng)需求:第一點(diǎn),測(cè)試系統(tǒng)能夠定義、構(gòu)造發(fā)送和接收被測(cè)試實(shí)體(IUT)的抽象服務(wù)原語(yǔ)(ASP);第二點(diǎn),能夠定義和構(gòu)造嵌入在ASP中的協(xié)議數(shù)據(jù)單元(PDU);第三點(diǎn),在指定控制和觀察點(diǎn)(PCO)上,能夠規(guī)定ASP的發(fā)送或接收順序和能夠構(gòu)造測(cè)試?yán)?/P>
二、協(xié)議軟件測(cè)試
目前協(xié)議測(cè)試分成一致性測(cè)試(ConformanceTesting)、互操作性測(cè)試(InteroperabilityTesting)、性能測(cè)試(PerformanceTesting)、堅(jiān)固性測(cè)試(Robustness Testing)和遍歷性測(cè)試(Ergodicity testing)等幾個(gè)方面進(jìn)行研究。
圖1 幾個(gè)測(cè)試階段的關(guān)系
●一致性測(cè)試:驗(yàn)證設(shè)備實(shí)現(xiàn)與相應(yīng)協(xié)議標(biāo)準(zhǔn)的一致性,檢驗(yàn)不同的待
●互操作性測(cè)試:根據(jù)終端芯片與終端開發(fā)的實(shí)際進(jìn)展,驗(yàn)證不同終端與系統(tǒng)之間的互操作能力,并且促進(jìn)不同系統(tǒng)和終端空中接口間的互操作能力,即解決不同終端與不同系統(tǒng)之間的互操作問題。
●性能測(cè)試:主要是通過測(cè)試終端的功能,比如終端長(zhǎ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ù)載工作能力等。
●遍歷性測(cè)試:協(xié)議軟件開發(fā)到尾聲階段,為了盡可能窮盡所有可能的情況,同時(shí)避免重復(fù)勞作而進(jìn)行的測(cè)試。
每個(gè)方面的測(cè)試一般來(lái)說(shuō)又包含單層測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試幾個(gè)階段。幾個(gè)階段測(cè)試之間的關(guān)系如圖1所示。
●單層測(cè)試:主要測(cè)試單層的內(nèi)部結(jié)構(gòu)(如邏輯和數(shù)據(jù)流)以及該層的功能和可觀測(cè)的行為。
●集成測(cè)試:確保各層集成在一起后能夠按既定意圖協(xié)作運(yùn)行,并確保其行為正確。它所測(cè)試的內(nèi)容包括層間的接口以及集成后的功能。
●系統(tǒng)測(cè)試:測(cè)試的最終應(yīng)用將在板級(jí)上進(jìn)行,模擬真實(shí)環(huán)境進(jìn)行測(cè)試。
根據(jù)TTCN的規(guī)則和要求可以構(gòu)造出TTCN的測(cè)試模型,如圖2所示。
圖2 TTCN測(cè)試模型
三、測(cè)試方法
可以看到TTCN的測(cè)試是一種典型的黑盒測(cè)試,把整個(gè)IUT看作一個(gè)測(cè)試實(shí)體來(lái)考慮,采用TTCN作為測(cè)試環(huán)境,TTCN與IUT之間的接口作為測(cè)試觀測(cè)點(diǎn)PCO,運(yùn)行測(cè)試?yán)?,通過觀測(cè)和檢查PCO的ASP和PDU的正確性來(lái)達(dá)到驗(yàn)證測(cè)試?yán)恼_性。測(cè)試?yán)菧y(cè)試的目的和方向所在,而且測(cè)試系統(tǒng)也是通過TTCN編寫測(cè)試?yán)齺?lái)模擬的,因此測(cè)試?yán)木帉懯且粋€(gè)十分重要的環(huán)節(jié),要滿足協(xié)議和應(yīng)用的各種要求,做到十分嚴(yán)謹(jǐn)和精確,這也是測(cè)試人員的主要任務(wù)所在。被測(cè)實(shí)體IUT可以是單層(被測(cè)系統(tǒng)只有一層被測(cè)試)或多層(被測(cè)系統(tǒng)中有一系列相鄰層需要測(cè)試),可以根據(jù)測(cè)試的不同階段來(lái)選擇組合。基于此TTCN的測(cè)試模型我們可以采用幾種測(cè)試方法。
(一)TTCN和SDL的協(xié)仿真
采用一個(gè)集仿真、開發(fā)、測(cè)試于一體的TelelogicABTau的產(chǎn)品SDLand TTCN Suite 4.0作為開發(fā)工具。通過TTCN編寫測(cè)試?yán)?,SDL and TTCN Suite 4.0提供的SDL和TTCN的協(xié)仿真功能來(lái)進(jìn)行測(cè)試。
1.簡(jiǎn)單的TTCN和SDL測(cè)試
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的最基本的測(cè)試方法,所有的數(shù)據(jù)處理都是在TTCN中來(lái)完成的,但是TTCN對(duì)數(shù)據(jù)的計(jì)算能力是有限的。我們?cè)陂_發(fā)中將C源代碼嵌入到SDL中,所有的接口也都是通過C來(lái)定義的,因?yàn)镃的數(shù)據(jù)類型非常豐富,但是TTCN可以識(shí)別的數(shù)據(jù)類型卻是有限的,比如復(fù)雜的指針就無(wú)法處理。因此這種方法只適合測(cè)試數(shù)據(jù)量不大、數(shù)據(jù)類型簡(jiǎn)單的情況,不是很有實(shí)際應(yīng)用的價(jià)值。
圖3 簡(jiǎn)單的TTCN和SDL測(cè)試
2.改進(jìn)后的TTCN和SDL測(cè)試
由于上述方法的缺陷,我們對(duì)它進(jìn)行了改進(jìn),這就是要介紹的第二種測(cè)試方法。將TTCN無(wú)法處理的過程放到SDL中來(lái)完成,用C源代碼完成測(cè)試數(shù)據(jù)的分析和構(gòu)造,并在IUT內(nèi)部增加2個(gè)測(cè)試模塊A'、B'和2個(gè)測(cè)試接口,如圖4所示。2個(gè)測(cè)試模塊可以對(duì)信號(hào)A和B作任何處理,在測(cè)試模塊進(jìn)行數(shù)據(jù)的轉(zhuǎn)化和處理,再將預(yù)處理后的數(shù)據(jù)送到TTCN測(cè)試環(huán)境中處理,從而大大簡(jiǎn)化了TTCN測(cè)試數(shù)據(jù)的編寫和處理。這種方法最大程度的利用C、SDL、TTCN的優(yōu)點(diǎn),在測(cè)試過程中實(shí)現(xiàn)協(xié)仿真,可以生成消息序列流圖(MSC圖),通過觀察IUT內(nèi)部和IUT與環(huán)境之間PCO的消息序列和數(shù)據(jù)流,從而達(dá)到驗(yàn)證開發(fā)正確性的目的,可以認(rèn)為該方法為一種灰箱測(cè)試方法。目前此測(cè)試方法已經(jīng)廣泛地應(yīng)用在終端協(xié)議軟件的一致性測(cè)試、互操作性測(cè)試等測(cè)試的單層和集成測(cè)試中,我們認(rèn)為它是一種非常有效的測(cè)試方法。
圖4 改進(jìn)后的TTCN和SDL測(cè)試IUT
(二)基于TTCN的板級(jí)測(cè)試
TTCN結(jié)合SDL的測(cè)試方法能夠很好地滿足協(xié)議棧軟件開發(fā)初期和中期的要求,但是由于SDL的實(shí)時(shí)性比較差,定時(shí)器,內(nèi)存、接口測(cè)試等都不能很好的模擬現(xiàn)場(chǎng)實(shí)際情況。隨著協(xié)議軟件開發(fā)的逐漸成熟,只采用這種方法也不能很好的滿足要求,并且到了更加需要大量基于實(shí)際環(huán)境的系統(tǒng)測(cè)試階段。如此繁多的系統(tǒng)測(cè)試都到現(xiàn)場(chǎng)進(jìn)行是非常昂貴,也是不可能實(shí)現(xiàn)的,因此需要對(duì)測(cè)試方法做出改進(jìn),找到能夠模擬現(xiàn)場(chǎng)測(cè)試的室內(nèi)系統(tǒng)測(cè)試新方法。
采用TTCN結(jié)合手機(jī)板的板級(jí)測(cè)試方法是一種非常有效的模擬現(xiàn)場(chǎng)測(cè)試的系統(tǒng)測(cè)試的好方法,仍然采用TTCN模擬測(cè)試環(huán)境,編寫測(cè)試?yán)?,但是測(cè)試體不再是嵌入了C代碼的SDL,而是實(shí)實(shí)在在的移植了源代碼的手機(jī)板,測(cè)試模型如圖5所示。
圖5 板級(jí)測(cè)試的IUT
IUT的測(cè)試環(huán)境仍然是在TTCN中編寫測(cè)試?yán)M,也是通過接口與IUT進(jìn)行消息交互,再檢查消息交互的原語(yǔ)、數(shù)據(jù)及對(duì)應(yīng)的MSC圖、TRACE來(lái)驗(yàn)證測(cè)試實(shí)體是否達(dá)到開發(fā)的要求。而消息交互過程仍然存在,因?yàn)門TCN的局限性—無(wú)法識(shí)別復(fù)雜指針和某些數(shù)據(jù)類型的問題。因此IUT和測(cè)試環(huán)境的消息交互還必須要經(jīng)過一個(gè)中間過程來(lái)轉(zhuǎn)化,這個(gè)轉(zhuǎn)化過程可以通過設(shè)立一個(gè)BUFFER來(lái)實(shí)現(xiàn)串口轉(zhuǎn)換,在BUFFER中進(jìn)行數(shù)據(jù)和類型的轉(zhuǎn)化及處理,這個(gè)處理過程的原理實(shí)際上很類似于前面介紹的TTCN結(jié)合SDL的第二種測(cè)試方法的處理原理。
板級(jí)測(cè)試的主要特點(diǎn)就是將測(cè)試模塊(即IUT)源代碼移植到手機(jī)板上運(yùn)行,在具體實(shí)現(xiàn)過程中,及測(cè)試?yán)郎?zhǔn)備就緒的前提下,首先將源代碼加到工程文件中,通過編譯工具(一般采用ARM公司的ARMDeveloperSuite)將工程文件編譯成可以在ARM核芯片上運(yùn)行的目標(biāo)代碼,然后將代碼移植到ARM核芯片上,再通過嵌入式系統(tǒng)的測(cè)試工具(如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í)測(cè)試中,將協(xié)議軟件運(yùn)行在這個(gè)操作系統(tǒng)之上,這樣可以真正的實(shí)現(xiàn)人機(jī)界面的操作,更加真實(shí)地模擬現(xiàn)場(chǎng)測(cè)試。
板級(jí)測(cè)試不僅能夠很好地克服TTCN的實(shí)時(shí)性差的缺點(diǎn),而且基本上能夠達(dá)到在室內(nèi)實(shí)現(xiàn)模擬現(xiàn)場(chǎng)測(cè)試的大部分測(cè)試,就目前來(lái)說(shuō)它是一種非常先進(jìn)的室內(nèi)測(cè)試方法,可以應(yīng)用在各種終端測(cè)試的系統(tǒng)測(cè)試階段。如今一致性測(cè)試互操作性測(cè)試以及性能測(cè)試等已經(jīng)基本完成,但仍然需要做大量的遍歷性測(cè)試,盡可能地發(fā)現(xiàn)以前各種測(cè)試沒有發(fā)現(xiàn)的問題。進(jìn)行遍歷性測(cè)試主要應(yīng)該放到系統(tǒng)測(cè)試階段,因此應(yīng)用板級(jí)測(cè)試將會(huì)起到非常好的效果。
評(píng)論