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