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