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