時間:2021年01月28日 分類:電子論文 次數:
摘要:針對如何持續提升聯鎖軟件測試的有效性和測試效率這一問題,分析計算機聯鎖軟件自動測試的需求,以灰盒測試為思想,采用層次化框架結構,設計實現一種基于腳本驅動的自動測試系統。該自動測試軟件能夠提升計算機聯鎖測試效率,保障聯鎖測試的可靠性。
關鍵詞:聯鎖;通用腳本;自動測試
1概述計算機聯鎖系統作為保障行車安全最基礎、最核心的信號控制系統之一,聯鎖軟件投入使用前需要經過嚴格的審核和測試。車站聯鎖軟件是將通用聯鎖軟件應用于特定站型的實例化結果,不同車站的基礎數據或聯鎖關系存在各自的特點。因各車站的聯鎖軟件實質上不完全相同,所以需要對各車站聯鎖關系進行完整測試。如何提高測試有效性,是無數聯鎖工作者關注的問題。
目前國內聯鎖軟件測試存在大量的重復性操作且測試量較大,采用人工測試不僅效率低、消耗了大量人力和物力資源,也容易因人員倦怠,出現人因失效。此外由于測試人員的知識水平、測試經驗參差不齊,難以做到測試完備,不遺留缺陷。因此提升測試水平、測試能力,成為各設備提供商與設備接管單位迫切的需求。計算機聯鎖系統的廣泛應用為自動測試的開展提供了可能。本文以灰盒測試為思路,設計實現了一種基于腳本驅動的計算機聯鎖自動測試系統,具有一定實際意義。
計算機論文范例:計算機軟件開發技術應用分析研究
2軟件實現
2.1需求分析
針對計算機聯鎖的功能性需求及產品特點,除了要求計算機聯鎖自動測試系統能在計算機聯鎖仿真模式下模擬行車的各種場景,還應具有以下特性:邏輯正確:針對聯鎖功能的普遍性要求,自動測試工具應能根據設計規范和原則等正確執行測試步驟,分辨通過項和錯誤項;高覆蓋性:自動測試工具應有能力覆蓋所有的被測對象及其相關檢查條件,如進路、信號機、道岔等,做到不漏查,并減少相同測試功能的自動測試與人工交叉測試。
高效測試:站場數據隨著站型的復雜程度成倍增加,要求聯鎖自動測試工具能高效地執行測試項,及時將測試結果反饋給測試人員;分布式測試:針對大型站場的遍歷測試,可以人工定制不同測試設備的測試任務,分布執行測試用例,以縮短測試時間,提升測試效率;易讀性:自動測試工具對測試失敗項應有簡單說明,便于測試人員確定失敗原因;維護便利:聯鎖邏輯復雜,特殊場景較多,測試用例應便于維護,便于增加或修改不同的測試場景。
灰盒測試介于白盒測試和黑盒測試之間,是基于程序內部細節有限認知上的軟件測試方法,它考慮了用戶端操作、特定的系統知識等因素,在系統組件的協同性環境中評價應用軟件的設計。灰盒測試法不僅可以追蹤輸出變量也可以追蹤中間變量,非常適合復雜的聯鎖數據的測試工作。基于腳本驅動的測試框架因其通用性高、靈活性強的特點近年來受到眾多關注。
該類測試方法依靠通用測試腳本和特定測試用例完成。首先,根據約定語法編寫測試腳本,腳本定義了測試的執行步驟和預期結果;然后,軟件將會根據特定應用場景實例化腳本,實例化結果也叫測試用例。該類測試方法適用于測試步驟基本一致的測試場景,也可以根據特殊需求直接編寫測試用例進行測試。聯鎖數據測試大多具有通用性,對于普通的進路或信號機等測試方法基本一致,但在特定站型下聯鎖設備可能存在特殊聯鎖關系,此時設計、測試人員需要單獨為其進行考慮。基于腳本驅動的測試方法能夠滿足聯鎖測試的通用性和特定性需求。
綜上,以灰盒測試為思想,設計實現一種基于腳本驅動的計算機聯鎖自動測試系統,該測試方法在仿真環境下最大程度地保留了系統功能。測試終端替代了值班員的按鍵操作,向操作顯示設備和聯鎖計算機發送控制命令并分別從二者獲取監測變量的執行結果,操作終端直接從測試終端獲取執行命令和結果并將預定義的目的信息顯示在界面上,如:進路建立、道岔單操等。
2.2實現
為實現計算機聯鎖數據的自動測試,首先需要建立車站信息表輔助測試系統獲取測試目標、測試條件并判斷測試是否滿足測試人員預期。車站信息表不僅涵蓋了傳統意義上聯鎖表所有的信息,還對聯鎖車站所有的聯鎖設備進行統計和屬性定義。
1)與操作終端通信及站場數據處理的應用層。應用層由文件讀入模塊組成,定義了DefFile類,主要實現輸入文件的信息提取功能。輸入文件包括:通用腳本模板文件、聯鎖測試表格、車站信息表等。
2)支持單個處理操作的邏輯層。邏輯層由解析腳本模塊和腳本生成模塊組成,定義了AnaScript類和GenScript類。腳本解析模塊將通用腳本模板轉換成只適用于某一站型的執行腳本文件;執行腳本生成模塊將解析好的腳本文件轉換成txt文件,即測試用例,該文件可以被操作顯示設備識別。
3)實現具體測試案例及組合功能的接口層。接口層由腳本執行模塊和測試記錄模塊組成,定義了ExeScript類和TestRecordDlq類。腳本執行模塊實現與操作顯示設備的通信,將邏輯層生成的測試用例逐條執行,驗證文件中確認的變量是否與預期相符;測試記錄模塊實現測試結果的記錄和顯示。
為滿足聯鎖產品的通用功能性需求,自動測試軟件定義的幾類功能函數,執行時,若函數中定義的對象為數組,那么系統將自動遍歷執行該數組。測試結果參考《車站聯鎖設備維護管理辦法》(TG/XH213-2019)以EXCEL表格形式輸出。腳本編寫人員應充分考慮測試意圖,盡可能多地完善測試步驟,與人工測試步驟保持一致。基于腳本驅動的測試方法在使用初期由資深的信號人員編寫通用測試腳本并維護,測試人員只需按需配置站場數據、接口文件后選擇測試項便可進行自動測試,大大節省了人力成本。根據測試的類型,測試表格被分為信號機測試表、道岔測試表、列車進路表、調車進路表、TCC接口信息表、RBC接口信息表、CBI接口信息表等。測試人員可選取所有腳本、單個腳本或是單個腳本的某個對象來分別生成用例進行測試。測試結果以“√、×”的形式體現,并可以導出為EXCEL為審核提供依據。
3舉例:取消進路測試根據《車站聯鎖設備維護管理辦法》(TG/XH213-2019):所有聯鎖車站都應對所有進路進行取消進路測試。測試腳本的設計應充分考慮取消進路的場景和所需條件。
取消進路測試腳本應包括以下步驟:辦理進路,檢查道岔位置被搬至進路要求位置,進路鎖閉,信號正常開放,取消進路,信號關閉,進路立即解鎖——ROUTE、ZQX功能函數;辦理進路,在信號未開放(開放后通過擠岔或燈絲斷絲的方式使信號關閉)的情況下,占用接近軌(信號機外方的第一個區段),取消進路,進路立即解鎖——SET、ZQX功能函數;辦理進路,信號開放,占用進路上任意區段(不含侵限區段,侵限區段在其他項中測試),信號關閉,執行取消進路操作,進路不能解鎖——SET、ZQX、ZRJ功能函數;辦理進路,信號開放,占用除進路上的區段和接近區段,執行取消進路操作,進路立即解鎖——SET、ZQX功能函數。
4結束語
通過實際項目驗證,本文所述自動測試系統表現優良。在中型、大型站場中測試效率顯著提升:如在某特大站場(75組道岔、834條進路)中,所有的聯鎖關系測試共消耗約648h人工工時,自動測試共使用525h,且自動測試能夠做到24h不間斷進行;對重復性操作,自動測試具有高可靠性;目前室內基本聯鎖關系自動測試能夠涵蓋《車站聯鎖設備維護管理辦法》基本聯鎖的98.5%,與實際測試情況高度匹配。綜上所述,該自動測試軟件能夠提升計算機聯鎖測試效率,保障聯鎖測試的可靠性。
參考文獻
[1]國家鐵路局.TB/T3027-2015 鐵路計算機聯鎖技術條件[S].北京:中國鐵道出版社,2015.
[2]國家鐵路局.TB1007-2017 鐵路信號設計規范[S].北京:中國鐵道出版社,2017.
[3]國家鐵路局.TG/XH213-2019 車站聯鎖設備維護管理辦法[S].北京:中國鐵道出版社,2019.
[4]臧志丹,張羽,秘慧杰.一種高鐵CTC進路數據自動測試方法的設計與實現[J].鐵路通信信號工程技術,2020,17(3):44-48.
作者:李文濤