李文濤
(中國(guó)國(guó)家鐵路集團(tuán)有限公司工電部,北京 100844)
計(jì)算機(jī)聯(lián)鎖系統(tǒng)作為保障行車(chē)安全最基礎(chǔ)、最核心的信號(hào)控制系統(tǒng)之一,聯(lián)鎖軟件投入使用前需要經(jīng)過(guò)嚴(yán)格的審核和測(cè)試。車(chē)站聯(lián)鎖軟件是將通用聯(lián)鎖軟件應(yīng)用于特定站型的實(shí)例化結(jié)果,不同車(chē)站的基礎(chǔ)數(shù)據(jù)或聯(lián)鎖關(guān)系存在各自的特點(diǎn)。因各車(chē)站的聯(lián)鎖軟件實(shí)質(zhì)上不完全相同,所以需要對(duì)各車(chē)站聯(lián)鎖關(guān)系進(jìn)行完整測(cè)試。如何提高測(cè)試有效性,是無(wú)數(shù)聯(lián)鎖工作者關(guān)注的問(wèn)題。
目前國(guó)內(nèi)聯(lián)鎖軟件測(cè)試存在大量的重復(fù)性操作且測(cè)試量較大,采用人工測(cè)試不僅效率低、消耗了大量人力和物力資源,也容易因人員倦怠,出現(xiàn)人因失效。此外由于測(cè)試人員的知識(shí)水平、測(cè)試經(jīng)驗(yàn)參差不齊,難以做到測(cè)試完備,不遺留缺陷。因此提升測(cè)試水平、測(cè)試能力,成為各設(shè)備提供商與設(shè)備接管單位迫切的需求。計(jì)算機(jī)聯(lián)鎖系統(tǒng)的廣泛應(yīng)用為自動(dòng)測(cè)試的開(kāi)展提供了可能。本文以灰盒測(cè)試為思路,設(shè)計(jì)實(shí)現(xiàn)了一種基于腳本驅(qū)動(dòng)的計(jì)算機(jī)聯(lián)鎖自動(dòng)測(cè)試系統(tǒng),具有一定實(shí)際意義。
傳統(tǒng)的計(jì)算機(jī)聯(lián)鎖系統(tǒng)結(jié)構(gòu)如圖1所示。
針對(duì)計(jì)算機(jī)聯(lián)鎖的功能性需求及產(chǎn)品特點(diǎn),除了要求計(jì)算機(jī)聯(lián)鎖自動(dòng)測(cè)試系統(tǒng)能在計(jì)算機(jī)聯(lián)鎖仿真模式下模擬行車(chē)的各種場(chǎng)景,還應(yīng)具有以下特性:
圖1 聯(lián)鎖系統(tǒng)基本框架Fig.1 Basic framework of interlocking system
邏輯正確:針對(duì)聯(lián)鎖功能的普遍性要求,自動(dòng)測(cè)試工具應(yīng)能根據(jù)設(shè)計(jì)規(guī)范和原則等正確執(zhí)行測(cè)試步驟,分辨通過(guò)項(xiàng)和錯(cuò)誤項(xiàng);
高覆蓋性:自動(dòng)測(cè)試工具應(yīng)有能力覆蓋所有的被測(cè)對(duì)象及其相關(guān)檢查條件,如進(jìn)路、信號(hào)機(jī)、道岔等,做到不漏查,并減少相同測(cè)試功能的自動(dòng)測(cè)試與人工交叉測(cè)試;
高效測(cè)試:站場(chǎng)數(shù)據(jù)隨著站型的復(fù)雜程度成倍增加,要求聯(lián)鎖自動(dòng)測(cè)試工具能高效地執(zhí)行測(cè)試項(xiàng),及時(shí)將測(cè)試結(jié)果反饋給測(cè)試人員;
分布式測(cè)試:針對(duì)大型站場(chǎng)的遍歷測(cè)試,可以人工定制不同測(cè)試設(shè)備的測(cè)試任務(wù),分布執(zhí)行測(cè)試用例,以縮短測(cè)試時(shí)間,提升測(cè)試效率;
易讀性:自動(dòng)測(cè)試工具對(duì)測(cè)試失敗項(xiàng)應(yīng)有簡(jiǎn)單說(shuō)明,便于測(cè)試人員確定失敗原因;
維護(hù)便利:聯(lián)鎖邏輯復(fù)雜,特殊場(chǎng)景較多,測(cè)試用例應(yīng)便于維護(hù),便于增加或修改不同的測(cè)試場(chǎng)景。
灰盒測(cè)試介于白盒測(cè)試和黑盒測(cè)試之間,是基于程序內(nèi)部細(xì)節(jié)有限認(rèn)知上的軟件測(cè)試方法,它考慮了用戶端操作、特定的系統(tǒng)知識(shí)等因素,在系統(tǒng)組件的協(xié)同性環(huán)境中評(píng)價(jià)應(yīng)用軟件的設(shè)計(jì)?;液袦y(cè)試法不僅可以追蹤輸出變量也可以追蹤中間變量,非常適合復(fù)雜的聯(lián)鎖數(shù)據(jù)的測(cè)試工作。
基于腳本驅(qū)動(dòng)的測(cè)試框架因其通用性高、靈活性強(qiáng)的特點(diǎn)近年來(lái)受到眾多關(guān)注。該類(lèi)測(cè)試方法依靠通用測(cè)試腳本和特定測(cè)試用例完成。首先,根據(jù)約定語(yǔ)法編寫(xiě)測(cè)試腳本,腳本定義了測(cè)試的執(zhí)行步驟和預(yù)期結(jié)果;然后,軟件將會(huì)根據(jù)特定應(yīng)用場(chǎng)景實(shí)例化腳本,實(shí)例化結(jié)果也叫測(cè)試用例。該類(lèi)測(cè)試方法適用于測(cè)試步驟基本一致的測(cè)試場(chǎng)景,也可以根據(jù)特殊需求直接編寫(xiě)測(cè)試用例進(jìn)行測(cè)試。聯(lián)鎖數(shù)據(jù)測(cè)試大多具有通用性,對(duì)于普通的進(jìn)路或信號(hào)機(jī)等測(cè)試方法基本一致,但在特定站型下聯(lián)鎖設(shè)備可能存在特殊聯(lián)鎖關(guān)系,此時(shí)設(shè)計(jì)、測(cè)試人員需要單獨(dú)為其進(jìn)行考慮?;谀_本驅(qū)動(dòng)的測(cè)試方法能夠滿足聯(lián)鎖測(cè)試的通用性和特定性需求。
綜上,以灰盒測(cè)試為思想,設(shè)計(jì)實(shí)現(xiàn)一種基于腳本驅(qū)動(dòng)的計(jì)算機(jī)聯(lián)鎖自動(dòng)測(cè)試系統(tǒng),如圖2所示,該測(cè)試方法在仿真環(huán)境下最大程度地保留了系統(tǒng)功能。測(cè)試終端替代了值班員的按鍵操作,向操作顯示設(shè)備和聯(lián)鎖計(jì)算機(jī)發(fā)送控制命令并分別從二者獲取監(jiān)測(cè)變量的執(zhí)行結(jié)果,操作終端直接從測(cè)試終端獲取執(zhí)行命令和結(jié)果并將預(yù)定義的目的信息顯示在界面上,如:進(jìn)路建立、道岔單操等。
圖2 自動(dòng)測(cè)試框架Fig.2 Automatic test framework
為實(shí)現(xiàn)計(jì)算機(jī)聯(lián)鎖數(shù)據(jù)的自動(dòng)測(cè)試,首先需要建立車(chē)站信息表輔助測(cè)試系統(tǒng)獲取測(cè)試目標(biāo)、測(cè)試條件并判斷測(cè)試是否滿足測(cè)試人員預(yù)期。車(chē)站信息表不僅涵蓋了傳統(tǒng)意義上聯(lián)鎖表所有的信息,還對(duì)聯(lián)鎖車(chē)站所有的聯(lián)鎖設(shè)備進(jìn)行統(tǒng)計(jì)和屬性定義,如圖3所示。
圖3 車(chē)站信息表Fig.3 Station information sheet
基于腳本驅(qū)動(dòng)的自動(dòng)測(cè)試軟件定義了3層框架,如圖4所示。
圖4 基于腳本驅(qū)動(dòng)的軟件架構(gòu)Fig.4 Script-based software architecture
1)與操作終端通信及站場(chǎng)數(shù)據(jù)處理的應(yīng)用層。應(yīng)用層由文件讀入模塊組成,定義了DefFile類(lèi),主要實(shí)現(xiàn)輸入文件的信息提取功能。輸入文件包括:通用腳本模板文件、聯(lián)鎖測(cè)試表格、車(chē)站信息表等。
2)支持單個(gè)處理操作的邏輯層。邏輯層由解析腳本模塊和腳本生成模塊組成,定義了AnaScript類(lèi)和GenScript類(lèi)。腳本解析模塊將通用腳本模板轉(zhuǎn)換成只適用于某一站型的執(zhí)行腳本文件;執(zhí)行腳本生成模塊將解析好的腳本文件轉(zhuǎn)換成txt文件,即測(cè)試用例,該文件可以被操作顯示設(shè)備識(shí)別。
3)實(shí)現(xiàn)具體測(cè)試案例及組合功能的接口層。接口層由腳本執(zhí)行模塊和測(cè)試記錄模塊組成,定義了ExeScript類(lèi)和TestRecordDlq類(lèi)。腳本執(zhí)行模塊實(shí)現(xiàn)與操作顯示設(shè)備的通信,將邏輯層生成的測(cè)試用例逐條執(zhí)行,驗(yàn)證文件中確認(rèn)的變量是否與預(yù)期相符;測(cè)試記錄模塊實(shí)現(xiàn)測(cè)試結(jié)果的記錄和顯示。
為滿足聯(lián)鎖產(chǎn)品的通用功能性需求,自動(dòng)測(cè)試軟件定義了如表1所示的幾類(lèi)功能函數(shù),執(zhí)行時(shí),若函數(shù)中定義的對(duì)象為數(shù)組,那么系統(tǒng)將自動(dòng)遍歷執(zhí)行該數(shù)組。測(cè)試執(zhí)行如圖5所示,測(cè)試結(jié)果參考《車(chē)站聯(lián)鎖設(shè)備維護(hù)管理辦法》 (TG/XH213-2019)以EXCEL表格形式輸出。
表 1 功能函數(shù)舉例Tab.1 Example of performance function
圖5 測(cè)試執(zhí)行步驟Fig.5 Test execution steps
腳本編寫(xiě)人員應(yīng)充分考慮測(cè)試意圖,盡可能多地完善測(cè)試步驟,與人工測(cè)試步驟保持一致。基于腳本驅(qū)動(dòng)的測(cè)試方法在使用初期由資深的信號(hào)人員編寫(xiě)通用測(cè)試腳本并維護(hù),測(cè)試人員只需按需配置站場(chǎng)數(shù)據(jù)、接口文件后選擇測(cè)試項(xiàng)便可進(jìn)行自動(dòng)測(cè)試,大大節(jié)省了人力成本。
根據(jù)測(cè)試的類(lèi)型,測(cè)試表格被分為信號(hào)機(jī)測(cè)試表、道岔測(cè)試表、列車(chē)進(jìn)路表、調(diào)車(chē)進(jìn)路表、TCC接口信息表、RBC接口信息表、CBI接口信息表等。測(cè)試人員可選取所有腳本、單個(gè)腳本或是單個(gè)腳本的某個(gè)對(duì)象來(lái)分別生成用例進(jìn)行測(cè)試。測(cè)試結(jié)果以“√、×”的形式體現(xiàn),并可以導(dǎo)出為EXCEL為審核提供依據(jù),如圖6所示。
根據(jù)《車(chē)站聯(lián)鎖設(shè)備維護(hù)管理辦法》 (TG/XH213-2019):所有聯(lián)鎖車(chē)站都應(yīng)對(duì)所有進(jìn)路進(jìn)行取消進(jìn)路測(cè)試。測(cè)試腳本的設(shè)計(jì)應(yīng)充分考慮取消進(jìn)路的場(chǎng)景和所需條件。
首先,自動(dòng)測(cè)試軟件獲取下列數(shù)據(jù):
由車(chē)站信息表獲取如圖7所示的信號(hào)機(jī)列車(chē)進(jìn)路、調(diào)車(chē)進(jìn)路接近區(qū)段;
圖7 車(chē)站信息表-接近鎖閉信息Fig.7 Station information sheet-approach locking information
由車(chē)站信息表聯(lián)鎖表部分獲取如圖8所示的所有進(jìn)路信息:進(jìn)路類(lèi)型、始端按鈕、終端按鈕、信號(hào)顯示。
圖8 車(chē)站信息表-進(jìn)路信息Fig.8 Station information sheet-route information
取消進(jìn)路測(cè)試腳本應(yīng)包括以下步驟:
辦理進(jìn)路,檢查道岔位置被搬至進(jìn)路要求位置,進(jìn)路鎖閉,信號(hào)正常開(kāi)放,取消進(jìn)路,信號(hào)關(guān)閉,進(jìn)路立即解鎖—ROUTE、ZQX功能函數(shù);
辦理進(jìn)路,在信號(hào)未開(kāi)放(開(kāi)放后通過(guò)擠岔或燈絲斷絲的方式使信號(hào)關(guān)閉)的情況下,占用接近軌(信號(hào)機(jī)外方的第一個(gè)區(qū)段),取消進(jìn)路,進(jìn)路立即解鎖— SET、ZQX功能函數(shù);
辦理進(jìn)路,信號(hào)開(kāi)放,占用進(jìn)路上任意區(qū)段(不含侵限區(qū)段,侵限區(qū)段在其他項(xiàng)中測(cè)試),信號(hào)關(guān)閉,執(zhí)行取消進(jìn)路操作,進(jìn)路不能解鎖— SET、ZQX、ZRJ功能函數(shù);
辦理進(jìn)路,信號(hào)開(kāi)放,占用除進(jìn)路上的區(qū)段和接近區(qū)段,執(zhí)行取消進(jìn)路操作,進(jìn)路立即解鎖—SET、ZQX功能函數(shù)。
通過(guò)實(shí)際項(xiàng)目驗(yàn)證,本文所述自動(dòng)測(cè)試系統(tǒng)表現(xiàn)優(yōu)良。
在中型、大型站場(chǎng)中測(cè)試效率顯著提升:如在某特大站場(chǎng)(75組道岔、834條進(jìn)路)中,所有的聯(lián)鎖關(guān)系測(cè)試共消耗約648 h人工工時(shí),自動(dòng)測(cè)試共使用525 h,且自動(dòng)測(cè)試能夠做到24 h不間斷進(jìn)行;對(duì)重復(fù)性操作,自動(dòng)測(cè)試具有高可靠性;目前室內(nèi)基本聯(lián)鎖關(guān)系自動(dòng)測(cè)試能夠涵蓋《車(chē)站聯(lián)鎖設(shè)備維護(hù)管理辦法》基本聯(lián)鎖的98.5%,與實(shí)際測(cè)試情況高度匹配。
綜上所述,該自動(dòng)測(cè)試軟件能夠提升計(jì)算機(jī)聯(lián)鎖測(cè)試效率,保障聯(lián)鎖測(cè)試的可靠性。