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