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