郭默燃 侯衛(wèi)兵 趙顯瓊
從確定CTCS-3級列車運(yùn)行控制系統(tǒng)做為我國統(tǒng)一的技術(shù)平臺體系以來,各鐵路行業(yè)研究機(jī)構(gòu)開展的對CTCS-3級關(guān)鍵部件和系統(tǒng)的測試平臺研究,其基本思路是分布式仿真測試平臺。這一方法的優(yōu)點(diǎn)是:能夠仿真真實(shí)的運(yùn)營環(huán)境、各部件的真實(shí)處理邏輯,適于系統(tǒng)聯(lián)合測試等。但是同時存在如下缺點(diǎn):測試系統(tǒng)復(fù)雜度高,開發(fā)周期長,維護(hù)困難,測試數(shù)據(jù)配置繁瑣等。而復(fù)雜分布式測試系統(tǒng)本身也存在一些問題,如:各部件調(diào)度策略復(fù)雜和各部件間通信實(shí)時問題等。解決這些問題成本高、性價比低,特別是針對于部件功能測試這樣的專向性測試。
通過對歐洲ETCS規(guī)范中車載設(shè)備測試規(guī)范子集 “車載設(shè)備測試功能需求”(Subset094)及法國E.R.S.A公司的車載設(shè)備測試平臺的分析、學(xué)習(xí)和研究,提出基于TTCN-3語言的虛擬分布式測試執(zhí)行框架,在符合Subset094測試規(guī)范的基礎(chǔ)上,將TTCN-3語言應(yīng)用于CTCS-3級車載設(shè)備的測試執(zhí)行實(shí)現(xiàn)中,在一定程度上解決了分布式仿真測試平臺自身同步與交互的問題,同時對于部件級測試有著很好的通用性。
TTCN-3語言,即測試和測試控制符號語言(the testing and test control notation),是一種測試描述和測試執(zhí)行語言。它支持分布式系統(tǒng)所有各類的黑盒測試,是由歐洲電信標(biāo)準(zhǔn)協(xié)會于1999年到2002年開發(fā),它實(shí)際上是重新設(shè)計了 “基于樹和表的符號語言標(biāo)準(zhǔn) (TTCN)”。TTCN-3語言以一種核心語言的方式提供與不同的數(shù)據(jù)描述語言的接口,并且提供用戶多種測試行為描述方式,這使得TTCN-3語言具有廣泛的適用性和應(yīng)用獨(dú)立性。TTCN-3語言已經(jīng)在標(biāo)準(zhǔn)ITU-T Rec.Z.140系列中發(fā)布。
由于TTCN-3支持多種類型的測試,近年來TTCN-3語言的應(yīng)用越來越廣,已經(jīng)發(fā)展到航空、汽車、銀行系統(tǒng)、IP系統(tǒng)、醫(yī)療設(shè)備、移動和寬帶通信、鐵路、空間和遠(yuǎn)程通信、遙感勘測、Web服務(wù)等各個領(lǐng)域當(dāng)中。
相對于其他的測試腳本語言,TTCN-3具有如下優(yōu)點(diǎn):
1.簡單易學(xué),容易上手。
2.具有完善句法定義及靜態(tài)語義和操作語義的定義;具有強(qiáng)大的內(nèi)建的匹配機(jī)制和匹配表達(dá)式;具有快照語義,保護(hù)外部事件到達(dá)的順序,同時每個外部事件可以和多個可選參數(shù)進(jìn)行核對。
3.允許定義并發(fā)測試并且支持同步通信和異步通信。
4.支持動態(tài)測試配置。在測試過程中,測試組件可以隨意創(chuàng)建,多次映射和多次連接,在TTCN-3語言模塊中可以創(chuàng)建多個并行測試組件(PTCs),各PTC之間可以通信,每個PTC都可以通過特定的接口與被測系統(tǒng)通信,如圖1所示。
圖1 動態(tài)并發(fā)測試系統(tǒng)
5.支持時鐘設(shè)置。在測試組件或測試案例描述中都可以進(jìn)行設(shè)置時鐘、開啟時鐘、關(guān)閉時鐘的操作,同時時鐘內(nèi)部還可以開啟其他的時鐘。
6.能夠?qū)崿F(xiàn)全自動執(zhí)行測試。測試執(zhí)行順序可以通過TTCN-3中的控制部分描述,測試執(zhí)行能夠通過TTCN-3的控制接口 (TCI)由外部源驅(qū)動。
7.支持TTCN-3語言的工具資源豐富,包括:瑞典IBM Telelogic公司的Tau Tester;德國Testing Technologies公司的TTworkbench;西班牙MTP公司的Exhaustif/TTCN等。
車載設(shè)備的測試是一個數(shù)據(jù)驅(qū)動的測試過程,主要是看列車在收到特定數(shù)據(jù)時能否發(fā)出正確處理的數(shù)據(jù)結(jié)果,這與TTCN-3的基于消息的測試優(yōu)勢一致;其次,車載設(shè)備是一個多交互設(shè)備,在列車實(shí)際行駛過程中會和RBC、應(yīng)答器、軌道電路、列車速度傳感器和司機(jī)等多個對象進(jìn)行交互,如圖2所示,如果測試環(huán)境完全按照真實(shí)環(huán)境來搭建,會造成測試環(huán)境復(fù)雜、維護(hù)困難,并產(chǎn)生分布性和實(shí)時性等相關(guān)問題,而這些問題運(yùn)用TTCN-3語言在一定程度上都能得到解決。
圖2 車載設(shè)備交互框圖
基于TTCN-3的測試框架分為三個部分:如圖3所示,仿真列車的動力學(xué)模塊、TTCN-3測試執(zhí)行模塊和事件記錄數(shù)據(jù)庫。其中,仿真列車的動力學(xué)模塊根據(jù)給定的列車信息 (包括列車長度,列車重量等)和線路信息 (包括曲率,坡度和限速信息等)及運(yùn)行速度距離曲線信息,實(shí)時計算得到速度、加速度及列車運(yùn)行距離信息,并傳遞給被測車載設(shè)備和TTCN-3測試執(zhí)行模塊;TTCN-3測試執(zhí)行模塊是測試執(zhí)行主體,通過多個虛擬部件來模擬與被測車載設(shè)備交互的外部設(shè)備,每個部件各自完成所虛擬的系統(tǒng)需要完成的收發(fā)信息功能,同時完成各虛擬部件之間的通信及將事件記錄信息傳輸給事件記錄數(shù)據(jù)庫的功能;事件記錄數(shù)據(jù)庫存儲由TTCN-3測試執(zhí)行模塊傳遞來的測試事件記錄信息,用于測試評估分析。
圖3 測試平臺框圖
整個測試框架的運(yùn)行過程描述如下:在測試開始之前配置列車的動力學(xué)模型,包括列車信息和線路信息,及速度距離曲線;配置TTCN-3測試執(zhí)行模塊中的虛擬部件,完成消息的發(fā)送收集功能,即在特定條件下通過特定的接口向車載設(shè)備發(fā)送相應(yīng)的數(shù)據(jù),然后檢測列車回應(yīng)是否正確并收集數(shù)據(jù)。以BTM模擬為例,設(shè)定列車在運(yùn)行到500m時會經(jīng)過一個應(yīng)答器組,則通過列車動力學(xué)模型,將根據(jù)速度和加速度信息實(shí)時計算列車的距離,將速度、加速度和距離的信息傳給車載設(shè)備的同時,將距離信息發(fā)給TTCN-3測試執(zhí)行單元 (MTC),MTC檢測距離是否等于500m,一旦相等則觸發(fā)BTM模擬,通過特定的接口發(fā)送相應(yīng)的應(yīng)答器信息到車載設(shè)備,這樣車載設(shè)備就在特定的位置接收到應(yīng)答器的信息。觸發(fā)條件除了可以是距離信息外,還可以是速度信息、時間信息等,可以根據(jù)不同的情況來設(shè)定。通過這樣的方式,可以生成CTCS-3級車載設(shè)備功能所需要規(guī)范中的所有場景,以滿足功能測試的目的。在這個測試框架下,只要完成測試行為的描述工作,之后的主要工作就是測試數(shù)據(jù)的維護(hù)和管理了。
圖4描述了基于TTCN-3的虛擬分布式測試平臺組成,可以看出,與車載設(shè)備交互的模塊:RBC、軌道電路、應(yīng)答器及DMI等設(shè)備全部是由TTCN-3語言配置的6個組件來模擬,其完成的功能是根據(jù)觸發(fā)條件來通過不同的接口向車載設(shè)備發(fā)送相應(yīng)的信息,從而完成測試場景的構(gòu)造。TTCN-3測試語言完成的測試平臺,還針對每一條來自車載設(shè)備的信息進(jìn)行匹配判定,給出參考判定結(jié)果。同時,各個測試組件通過數(shù)據(jù)接口,將各組件上發(fā)送和收到的信息及相應(yīng)的時間信息等數(shù)據(jù),發(fā)送給數(shù)據(jù)記錄單元,以供測試分析驗(yàn)證器使用。
圖4 基于TTCN-3的虛擬分布式測試平臺框圖
這個測試框架中,TTCN-3測試執(zhí)行單元中虛擬地完成了分布式的多組件交互協(xié)同測試功能,各個組件除了要各自完成對SUT的測試功能外,還要完成相互之間的交互與協(xié)作,保證整個測試流程滿足一定的順序,這就是虛擬分布式測試,與真實(shí)的分布式仿真測試相比,這種虛擬分布式節(jié)省了分布式各單元之間的網(wǎng)絡(luò)通信同步的開銷,并保證了各組件之間無延遲通信及通信過程的準(zhǔn)確無誤。同時大大降低了系統(tǒng)的復(fù)雜性、維護(hù)難度和成本。
針對 《CTCS-3級列控系統(tǒng)總體技術(shù)方案》功能中的 “列車喚醒的注冊”需求,提取了1個小的測試案例,在基于TTCN-3語言的虛擬分布式測試框架下,完成對實(shí)驗(yàn)室仿真車載設(shè)備的測試及數(shù)據(jù)采集分析。
首先對 “列車喚醒與注冊”功能進(jìn)行需求分析,畫出需求框圖如圖5所示。選取虛線箭頭標(biāo)示路徑作為測試案例,再使用TTCN-3語言完成測試案例行為描述及數(shù)據(jù)描述。案例描述如下。
從車載設(shè)備上電開始檢測,測試內(nèi)容包括:車載設(shè)備在完成自檢后是否自動置為待機(jī)模式(SB);在駕駛臺激活后,車載設(shè)備是否給出提示,提示司機(jī)進(jìn)行制動測試;制動測試是否正確完成;車載設(shè)備是否能夠正常呼叫RBC;完成RBC呼叫,在接收到RBC相應(yīng)參數(shù)后是否及時報告RBC位置信息;整個過程是否滿足每個信息的收發(fā)周期都為200ms(這是根據(jù)實(shí)驗(yàn)室仿真設(shè)備的實(shí)現(xiàn)周期而定,實(shí)際設(shè)備的消息周期可以重定義)。
針對提取的幾條功能需求,對實(shí)驗(yàn)室仿真車載設(shè)備進(jìn)行測試。由以上需求分析,測試過程中需要與車載設(shè)備交互的幾個部件為,DMI、RBC和列車。
圖5 列車喚醒與注冊場景
選用德國 Testing Technologies公司的TTWorkbench作為TTCN-3的開發(fā)平臺和執(zhí)行平臺。在該環(huán)境中,測試過程最終可以生成消息序列圖 (MSC),包含測試過程中各個行為發(fā)生的順序及每一個行為與上一行為的間隔時間,如圖6所示。在TTCN-3中,可以自由的定義時鐘來做為判定條件,圖6中定義了一個200ms的時鐘,在接收下一條信息前開啟,如果DMI在時鐘規(guī)定時間之內(nèi)收到來自車載設(shè)備的正確信息,則判定為pass。從圖6中可以看出,在113ms時,DMI收到來自車載設(shè)備的正確信息。
圖6中Component表示組件,systemPort表示被測系統(tǒng)接口,mtcPort表示DMI模擬接口,F(xiàn)rameContent表示框架內(nèi)容,localtimer1表示本地時鐘。測試結(jié)果見表1。從表1可以看出,整個測試是通過的,但在DMI接收車載設(shè)備發(fā)來的請求輸入司機(jī)ID時,出現(xiàn)超時現(xiàn)象,即在完成上一信息接收后,經(jīng)過262ms后才收到車載發(fā)來的司機(jī)ID請求消息,故需要在設(shè)計上對此進(jìn)行調(diào)整。
圖6 TTCN-3時鐘設(shè)置與判定
在整個測試過程中,測試系統(tǒng)需要從車載設(shè)備接收8條有效消息,每條消息都處理正確,由此可以得出,被測車載設(shè)備基本能夠完成功能需求規(guī)范的要求。本例中只有一條接收時間超過了200ms,經(jīng)過調(diào)整車載設(shè)備程序,這一條已經(jīng)糾正,并通過同一測試案例的回歸測試得到驗(yàn)證。
完成以上測試后,故意將仿真實(shí)現(xiàn)的車載設(shè)備調(diào)整至故障狀態(tài),使其不能完成制動測試,再對其進(jìn)行測試,測試系統(tǒng)檢測出了這一故障,并給出檢測到故障的判定和日志記錄。
表1 測試行為時間分析
通過本文的討論分析可以得出,TTCN-3測試語言是一種很高效的測試語言,能夠非常有效地完成基于消息的測試執(zhí)行,同時降低工作量、開發(fā)周期和開發(fā)成本等。
由于TTCN-3語言具有動態(tài)配置并發(fā)測試組件特性和支持多接口適配等特性,對于CTCS-3級列車控制系統(tǒng),由測試系統(tǒng)本身的復(fù)雜性、分布性和實(shí)時性等特點(diǎn)造成的問題,都可以在一定程度上解決。同時,由于TTCN-3語言相對于其他測試腳本語言具有簡單易學(xué),完善的句法定義,豐富的數(shù)據(jù)類型及與其他數(shù)據(jù)描述語言的多種接口,平臺獨(dú)立性等優(yōu)良特性,使得測試工作重點(diǎn)從測試執(zhí)行實(shí)現(xiàn)上轉(zhuǎn)移到測試行為描述上,有效降低了工作量、成本投入、開發(fā)周期和維護(hù)難度。TTCN-3語言完善的消息記錄接口能夠?qū)崿F(xiàn)數(shù)據(jù)收集功能。
下一步工作的重點(diǎn),在進(jìn)一步完善本文框架研究的基礎(chǔ)上,研究測試案例的自動生成技術(shù)及測試數(shù)據(jù)的分析評估技術(shù),同時針對CTCS-3級系統(tǒng)的另一個關(guān)鍵子系統(tǒng)——無線閉塞中心 (RBC)研究本框架的擴(kuò)展應(yīng)用及RBC與車載設(shè)備聯(lián)調(diào)策略研究,實(shí)現(xiàn)車載設(shè)備和RBC兩部分的基于TTCN-3測試語言的自動測試平臺。
[1] ERTMS/ETCS-Class 1Functional Requirements for an on board Reference Test Facility REF :SUBSET-094-0 2.0.2 05/02/2009.
[2] 中國人民共和國鐵道部科技司,運(yùn)輸局.CTCS-3級列車控制系統(tǒng)總體技術(shù)方案[S].北京,2008.
[3] ETSI ES 201 873-1V3.1.1,Methods for Testing and Specification(MTS);The Testing and Test Control Notation version 3;Part 1:TTCN-3Core Language,Sophia Antipolis,F(xiàn)rance,July 2005.
[4] Grabowski,J.,D.Hogrefe,et al.(2003)."An introduction to the testing and test control notation(TTCN-3)."Computer Networks-the International Journal of Computer and Telecommunications Networking 42(3):375-403.
[5] ETSI :TTCN-3Homepage,http://www.ttcn-3.org,June 2015.
[6] Juergen Grossmann.(2013)."Testing hybrid systems with TTCN-3embedded."International Journal on Software Tools for Technology Transfer,June 2014,Volume 16,Issue 3,247-267.