劉錦峰,歐陽敏
(卡斯柯信號有限公司 測試部,上海 200071)
城軌嵌入式軟件自動化測試框架的設計與實現
劉錦峰,歐陽敏
(卡斯柯信號有限公司 測試部,上海 200071)
為了提高城軌嵌入式軟件的測試效率,提出一種面向服務的城軌嵌入式軟件自動化測試框架。指出城軌嵌入式軟件自動化測試的難點,給出相應的自動化測試策略;闡述自動化測試框架的主要功能與架構,并給出一種基于面向服務的架構(SOA,Service Oriented Architecture)的測試平臺實現及測試流程;通過該框架的使用實例和測試效果,表明該框架具備良好的通用性、擴展性和實時性,適用于城軌嵌入式軟件的自動化測試。
城軌嵌入式軟件;自動化測試框架;面向的服務架構
城市軌道交通系統的關鍵系統如聯鎖(CI,Computer based Interlocking)系統,車載控制(CC,Carborne Controller,)系統,軌旁區域控制器(ZC,Zone Controller),軌旁線路控制器(LC,Line Controller)均為安全苛求系統(Safety Critical System)。為了滿足安全苛求系統故障-安全的需要,高實時性,多任務的嵌入式系統成為首選[1]。為了提高其關鍵系統的嵌入式軟件測試效率,克服手工測試存在的困難,有效提高該領域的自動化測試程度成為亟需解決的關鍵問題。本文分析面向城軌軟件黑盒測試的自動化測試難點;闡述城軌嵌入式軟件的自動化測試策略、自動化測試框架設計思想和自動化測試框架整體架構;提出基于面向服務的架構(SOA,Service Oriented Architecture)的實現方法;介紹該框架在軌旁安全平臺系統測試中的應用情況。
從被測對象的角度來看,城軌嵌入式系統在故障-安全、實時性、容錯性上都有嚴苛的要求。對于此類軟件的測試,在測試場景構造、測試激勵和測試結果捕獲上都存在一定的困難。其自動化測試難點可具體概括為以下幾方面。
1.1 測試場景復雜
從仿真系統的角度看,實時嵌入式軟件仿真測試平臺實際上是一種面向實時嵌入式軟件測試的半實物仿真系統。因此,在測試場景中需仿真大量的外部設備,并能通過測試腳本,精確控制這些仿真設備的行為,如信號機、道岔、信標、仿真列車、仿真CI、仿真CC、仿真ZC,仿真LC、仿真列車自動監控(ATS,Automatic Train Supervision)系統;另外,根據被測軟件和測試數據不同,測試場景需構造以上仿真設備的子集,并采用合適的軌道線路數據,仿真設備參數,安全通信協議等。
1.2 測試激勵的實時性與時序性
當采用黑盒測試方式(激勵-反饋機制)對城軌嵌入式軟件自動化測試時:(1)被測系統需要實時獲取和處理外部激勵數據,測試平臺也需要實時獲取和分析被測對象的反饋數據;(2)測試平臺需確保對于相同的測試用例,每一次進行測試執行的過程中,其產生的測試激勵數據在時序關系上是完全一致的。
1.3 測試結果處理困難
(1)需要在被測對象中合理地嵌入測試代理模塊捕獲被測對象的測試結果,包括狀態變量、校核字等;(2)測試平臺需在線或離線分析這些測試結果,給出最后的用例執行報告。
自動化測試是指,把以人為驅動的測試行為轉化為計算機依據一定規則與設計自動執行測試行為的一種過程[2]。通過工具代替或輔助人工進行測試執行過程,目標是通過較少的開銷,使被測對象得到更充分的測試,提升產品質量。在制定自動化測試策略時,需從自動化測試投資回報率的角度,對自動化測試需求分配合適的優先級。因此,對于城軌軟件測試而言,自動化測試主要用于軟件或系統的黑盒測試,并且產品生命周期較長,回歸測試較多,在如下場合尤其適合進行自動化測試。
2.1 適合進行自動化測試的場合
(1)安全平臺產品,包括安全基礎類庫、安全協議等,該類產品作為企業的基礎軟件產品,一般開發周期長,回歸測試頻繁;
(2)項目數據測試,如列控中心報文數據測試,該類數據測試人工測試繁瑣重復,而測試接口比較穩定,適合采用自動化工具進行測試;
(3)產品驗收測試,如基于無線通信的列車自動控制(CBTC,Communication Based Train Control)系統的驗收測試,可選取其測試的關鍵場景用例,進行自動化測試,保證產品上線前的測試效率。
2.2 不適合進行自動化測試的場合
(1)主觀性強的測試,如車站操作界面的顯示,聲音提示和告警等;
(2)開發周期短的項目,如產品原型開發,被測對象不穩定,測試接口變更頻繁;由于開發周期較短,積累的自動化測試腳本得不到充分的復用。
3.1 自動化測試框架架構模型
城軌嵌入式軟件自動化測試框架應該解決測試過程中的以下幾方面的問題:(1)自動化測試框架應能提供基于業務描述的腳本,使得測試人員在編寫測試用例時,專注業務需求而不必關心具體的測試驅動細節;(2)自動化測試框架提供了測試用例管理功能,使得測試用例在整個測試生命周期中可以復用;(3)自動化測試框架提供了測試結果分析功能,在復雜場景的測試用例中,該功能可以顯著提高測試效率。
根據城軌嵌入式軟件的自動化測試策略,該領域的自動化測試框架符合以下設計原則:
(1)測試框架的集成應基于統一開放的標準,具有良好的通用性、松耦合性、開放性和可擴展性,確保框架中子模塊的實現不局限與特定的開發語言和技術,并且當子模塊進行修改或重構時,整個框架保持穩定;
(2)測試數據的管理基于統一的數據格式,子模塊能透明地提交和獲取測試數據進行處理;
(3)實時性,為了確保對被測系統激勵的實時性,測試框架在架構上應確保消息在平臺內部能實時的處理和傳遞;
(4)大容量和高性能,為了滿足城軌軟件大容量數據測試的要求,測試框架應采取分布式的系統架構,在提高仿真設備數量時,不影響測試平臺性能。
面向分布式控制系統的實時SOA架構[3],不僅具有SOA的統一接口標準、優秀的開放性和松耦合性,也具備分布式控制系統的實時性。因此,該架構是本文的自動化化測試框架較為理想的架構模型。基于文獻[3]的面向分布式控制系統的實時SOA架構,自動化測試框架位于該架構的企業應用服務層,并主要分為3個子服務層:測試管理服務層、測試驅動服務層和接口協議適配服務層,其架構模型如圖1所示。

圖1 自動化測試框架架構模型
測試管理層的核心功能是:為測試人員提供測試用例的全生命周期管理,并輔助測試人員編寫測試腳本、測試結果的記錄與分析和測試報告生成;測試驅動層的核心功能是:根據用例腳本和測試場景配置文件,構造測試場景,并調度仿真設備的運行,另外在該層也提供了安全協議和數據庫訪問功能;接口適配層的核心功能是:提供測試平臺與被測對象之間的各種通信接口。
3.2 自動化測試框架邏輯架構
基于上述的架構模型,本文實現的自動化測試框架邏輯架構如圖2所示。服務和消息管理節點是整個測試框架的主節點,提供了基于實時消息總線的節點管理、服務注冊、服務代理、服務調度、服務執行等一系列的調度和管理服務;測試管理服務層作為一個從節點,通常在一個服務器上,另外,測試人員可通過該層提供的Web服務來管理和配置整個測試框架,以及測試用例的管理、執行和分析;測試驅動服務層可根據測試場景的容量進行靈活的部署,通常測試環境創建、仿真器調度和數據庫驅動作為一個從節點部署在一個服務器上,而安全協議節點、仿真設備節點作為獨立的從節點進行動態部署,便于測試框架根據測試場景進行靈活的變更和擴展;接口協議適配服務層也是根據測試場景進行動態的部署,適應不同的測試需求。
3.3 自動化測試框架核心工作流
自動化測試框架的核心工作流是將測試用例轉換為測試腳本,并根據測試腳本構造測試場景,以及場景中的仿真設備,同時按照腳本時序或外部事件對仿真設備進行調度,得到被測對象期望的激勵輸入,測試框架捕獲被測對象的輸出并記錄測試日志,從而構成一個閉環的測試系統。自動化測試框架的核心工作流如圖3所示。

圖2 自動化測試框架邏輯架構
軌旁安全平臺(TSP,Trackside Safety Platform)作為一個通用的安全平臺,可以用于ZC、LC、臨時限速服務器(TSRS,Temporary Speed Restriction System)、無線閉塞中心(RBC,Radio Block Center)等眾多的地鐵及鐵路系統中的安全軌旁設備,保障上述安全設備的應用軟件在此TSP上運行時,整個系統的安全性能達到安全完整性等級4級(SIL4,Safety Integrity Level 4) 的要求。基于自動化測試框架的TSP自動化測試平臺,包括各種安全協議通信節點、CC仿真節點、ATS仿真節點、LC仿真節點、ZC仿真節點、CI仿真節點。實施自動化測試后,TSP系統測試的效率提升情況如圖4所示。從該圖中可以看出,在自動化測試初期由于需要進行測試腳本的編寫和調試,故自動化測試的人工成本要高于手工測試,隨著自動化測試的逐步深入,在進行回歸測試時,自動化測試的成本優勢得到了體現。

圖3 自動化測試框架核心工作流

圖4 軌旁安全平臺的手工測試與自動化測試對比
實踐表明,對于城軌嵌入式軟件測試而言,采用基于腳本的自動化測試方式并結合測試用例的全生命周期管理,可以降低軟件的測試成本,縮短軟件的測試時間,特別是進行回歸測試時效率提升尤為明顯。本文設計的自動化測試框架具有良好的實時性、通用性和可擴展性,目前該自動化測試框架不僅成功應用于TSP產品測試,并在ZC、LC、CC等產品的自動化測試中得到了推廣。
[1]董高云,周庭梁.安全苛求系統下的嵌入式C語言調試技巧[J].鐵路計算機應用,2014,23(6).
[2]董娜娜,詹惠琴.軟件測試自動化技術應用研究[J].電子測試,2010(11):47-50.
[3]杜立新,劉士軍.面向分布式控制系統的實時SOA研究與應用[J].計算機科學,2012,39(1).
責任編輯 王 浩
Design and implementation of automatic test framework for Urban Transit embedded software
LIU Jinfeng, OUYANG Min
( Test Department, CASCO Signal Company, Shanghai 200071, China )
In order to improve testing eff i ciency of Urban Transit embedded software, this paper proposed a automatic test framework for Urban Transit embedded software based on SOA(Service Oriented Architecture), pointed out the testing diff i culty of Urban Transit embedded software, and given the corresponding testing strategy, expatiated the main function and architecture of automatic test framework.The implementation of testing framework based on SOA and the testing process were given. The examples and test results showed that the automatic test framework was with well universality, extensibility and real-time, was suitable for automatic test of Urban Transit embedded software.
Urban Transit embedded software; test automatic framework; SOA
U231.6∶TP39
A
1005-8451(2015)07-0049-04
2014-11-19
劉錦峰,工程師;歐陽敏,工程師。