夏佳佳,鄒毅軍,周江偉,王天民,曹勝莉
(上??屏盒畔⒐こ逃邢薰荆虾!?00233)
?
嵌入式軟件自動化測試系統(tǒng)研究
夏佳佳,鄒毅軍,周江偉,王天民,曹勝莉
(上??屏盒畔⒐こ逃邢薰?,上海200233)
嵌入式軟件系統(tǒng)的測試通常需要對其被控對象或者環(huán)境進行仿真,以進行硬件在環(huán)的閉環(huán)驗證,在軟件測試中很有必要將被控對象的實時仿真模型與被測系統(tǒng)連接起來進行閉環(huán)測試;在總結(jié)分析嵌入式測試領(lǐng)域新需求的基礎(chǔ)上,提出了一種基于分布式仿真測試環(huán)境的嵌入式軟件自動化測試系統(tǒng);該系統(tǒng)具有較強的測試管理能力,以實時仿真機為核心,以及接口的模塊化定制,實現(xiàn)了對系統(tǒng)動態(tài)特性的半實物仿真軟硬件環(huán)境,很好地解決了嵌入式系統(tǒng)內(nèi)存資源較少,與硬件緊密相關(guān)等問題。
嵌入式軟件;閉環(huán)測試;自動化測試;實時仿真機
嵌入式系統(tǒng)是集軟硬件于一體的可獨立工作的器件,主要包括嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及應(yīng)用軟件系統(tǒng)。隨著嵌入式軟件系統(tǒng)的規(guī)模逐步擴大,軟件系統(tǒng)測試環(huán)境在實際軟件開發(fā)測試中的作用也日益顯著,隨著嵌入式軟件在軍用和民用領(lǐng)域的快速發(fā)展,嵌入式軟件發(fā)揮了舉足輕重的作用,對嵌入式軟件的質(zhì)量也提出了更高的要求。多年來,國內(nèi)外學者在嵌入式軟件測試環(huán)境的構(gòu)建方法進行了活躍的研究,文獻[1]針對綜合模塊化航電軟件提出了一種仿真測試環(huán)境構(gòu)建方法。文獻[2]利用系統(tǒng)建模語言SysML來描述系統(tǒng)開發(fā)與測試環(huán)境。文獻[3]則針對多核嵌入式軟件提出了一種新的自動化測試環(huán)境。另外,利用分布式仿真測試環(huán)境(Distributed Simulation Testing Environment,DSTE)對嵌入式軟件進行測試是目前國內(nèi)外公認行之有效的手段[4],而大量測試數(shù)據(jù)在仿真模型之間的實時通訊、收集和分布節(jié)點之間的傳輸是分布式仿真測試環(huán)境的設(shè)計難點。針對這個問題,北京航空航天大學的研究者提出了一種應(yīng)用代理模式和批處理雙緩存區(qū)模式的方法,解決了分布式仿真測試環(huán)境實時數(shù)據(jù)處理的關(guān)鍵技術(shù)[5],其軟件體系結(jié)構(gòu)可以滿足功能復(fù)雜、有大量的命令和數(shù)據(jù)處理需求的仿真系統(tǒng)測試。嵌入式軟件測試工具之間的主要區(qū)別在于采用的總線和硬件接口、處理器、硬件拓撲結(jié)構(gòu)和軟件開發(fā)語言等方面。目前面向嵌入式軟件測試的工具還比較少,主要體現(xiàn)在缺乏軟件測試過程管理,面向軟件測試的測試腳本測試建模能力較差[6-7]。
嵌入式軟件的自動化測試,即利用測試腳本來自動控制嵌入式軟件的運行,并且自動收集相關(guān)數(shù)據(jù)進行分析,最終生成相應(yīng)的測試報告。結(jié)合國內(nèi)外測試工具的優(yōu)缺點,本文提出了一種基于QuiKLab軟件和RT-LAB軟件的嵌入式軟件自動化測試系統(tǒng),該系統(tǒng)使用專業(yè)建模工具對被測系統(tǒng)的內(nèi)部特征與外部環(huán)境進行仿真建模,并把仿真模型裝載到實時系統(tǒng)上。測試腳本通過各種I/O板卡與被測系統(tǒng)進行通訊,從而建立起一個硬件在環(huán)的實時閉環(huán)測試環(huán)境。QuiKLab是上??屏盒畔⒐こ逃邢薰窘?jīng)多年研發(fā)的一個產(chǎn)品,它是一個開放的平臺,能夠與RT-LAB實時仿真平臺無縫集成。RT-LAB軟件是加拿大OPAL-RT公司的集成化實時仿真環(huán)境的旗艦產(chǎn)品。RT-LAB集成了在線參數(shù)調(diào)節(jié)、信號獲取、數(shù)據(jù)錄入和信號示波器等一些最常用的便利功能,使模型開發(fā)和測試變得更容易;并可將運算負載分配到多個目標機上,可對大型復(fù)雜的硬件在環(huán)(HIL)和快速控制原型(RCP)應(yīng)用的模型的實時仿真進行分布式并行計算。
1.1系統(tǒng)總體構(gòu)成
本系統(tǒng)采用分布式架構(gòu),方便擴展和升級,即測試開發(fā)管理主機和目標仿真機架構(gòu),主機和目標機之間采用以太網(wǎng)通訊,目標機之間采用1394B通信。系統(tǒng)支持分布式仿真測試和實時并行運算,每個測試主機都可以連接一個或者多個仿真計算機單獨的部署,用于系統(tǒng)中相對獨立的子系統(tǒng)的仿真與測試,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
測試開發(fā)管理主機主要安裝QuiKLab軟件、RT-LAB主機模塊、Matlab軟件,其實現(xiàn)的功能包括測試開發(fā)管理、實時仿真模型開發(fā)、測試用例建立、測試任務(wù)建立、圖形化監(jiān)控、測試任務(wù)執(zhí)行。實時仿真測試目標機安裝REDHAT LINUX 實時操作系統(tǒng)、RT-LAB目標機模塊以及I/O和總線板卡,其主要功能是完成系統(tǒng)實時模型解算及實時I/O端口配置和通訊。實時仿真目標機提供了豐富的I/O接口,測試腳本通過目標機的通訊接口模塊與被測系統(tǒng)進行通訊。
Matlab/Simulink仿真建模軟件主要實現(xiàn)對與被測系統(tǒng)的內(nèi)特征與外部環(huán)境進行仿真建模,如建立被測系統(tǒng)外圍的動力學模型、傳感器和執(zhí)行器模型。RT-LAB實時仿真平臺集成了強實時仿真內(nèi)核,具有高精度實時核心調(diào)度能力和I/O功能。在QuiKLab自動化測試管理軟件中集成了常用的RT-LAB仿真管理軟件功能,可以運行單獨RT-LAB仿真管理軟件執(zhí)行程序,也可以在QuiKLab自動化測試管理軟件中調(diào)用仿真管理界面實現(xiàn)模型編譯、分配、運行控制等功能。QuiKLab自動化測試管理軟件通過實時調(diào)用仿真管理軟件功能,從而按照測試用例及測試流程的要求實時控制仿真模型、調(diào)整仿真模型參數(shù)和實施故障注入功能。本文提出的嵌入式軟件自動化測試系統(tǒng)框架圖如圖2所示。
圖2 嵌入式軟件自動化測試系統(tǒng)框架圖
1.2測試開發(fā)管理分系統(tǒng)
測試開發(fā)管理計算機運行在Windows操作系統(tǒng)下,是系統(tǒng)開發(fā)平臺、監(jiān)控平臺以及人機操作界面,可以在測試開發(fā)管理計算機完成系統(tǒng)的測試用例設(shè)計、測試管理、分布式模型開發(fā)、調(diào)試、以及試驗數(shù)據(jù)的監(jiān)控記錄等任務(wù)。測試開發(fā)管理計算機能將復(fù)雜的系統(tǒng)模型分割成若干子系統(tǒng)模型,通過主控制模塊實現(xiàn)實時二進制代碼的自動生成,并分配到多個仿真計算機(或仿真計算機上 的多核)上實時并行運算,使運算能夠在規(guī)定的步長內(nèi)完成,保證了系統(tǒng)的實時性要求。測試開發(fā)管理計算機制定測試任務(wù),將測試任務(wù)生成測試腳本,并執(zhí)行測試,實時獲取來自目標機分系統(tǒng)仿真測試計算結(jié)果數(shù)據(jù)。測試開發(fā)管理計算機最后按照指定的模板生成測試報告文檔。圖3是主機上部署的軟件的模塊組成,其主要功能是支持測試工程管理、測試開發(fā)管理和測試運行控制;提供測試腳本驅(qū)動仿真模型測試的功能;支持各種測試類型用例設(shè)計,包括正常/異常功能測試、性能測試、邊界測試、強度測試;能夠進行在線監(jiān)控,支持示波器、表盤、開關(guān)量、指示燈等方式顯示;能夠通過TCP/IP實現(xiàn)模型仿真的控制,包括模型下載,節(jié)點分配,仿真執(zhí)行,停止等操作。
圖3 測試開發(fā)管理計算機軟件構(gòu)成
1.3實時仿真計算機分系統(tǒng)
圖5 系統(tǒng)工作流程圖
實時仿真計算機是本系統(tǒng)的控制實現(xiàn)層與設(shè)備層,它是實現(xiàn)系統(tǒng)動態(tài)特性、I/O接口功能的仿真與控制實現(xiàn)平臺。實時仿真計算機硬件運算能力強,實時性好,系統(tǒng)運行的實時精度最高可以達到10μs級別;提供100多種第三方I/O和總線板卡的驅(qū)動,如A429、1553B、串口、反射內(nèi)存卡等;具備對網(wǎng)絡(luò)、MIL-STD-1553B、CAN、A/D、D/A、DI/DO、RS232/RS422及非標準接口板的管理、驅(qū)動功能。實時仿真計算機上運行系統(tǒng)仿真與控制模型,這些模型在測試主機上用Simulink建立,并通過上位機軟件編譯并下載到仿真計算機上運行。實時仿真計算機分系統(tǒng)實現(xiàn)的功能包括:被控對象與環(huán)境動力學模型實時運行、外部執(zhí)行器與傳感器的模擬與激勵、與被測目標系統(tǒng)的I/O與通訊接口。
在本系統(tǒng)中,實時仿真計算機分系統(tǒng)由2臺通用實時測試目標機組成。它們之間通過1394B總線連接,所有I/O都通過仿真計算機中運行的仿真模型控制,這樣實現(xiàn)了I/O的遠程分布與擴展。它們的內(nèi)部構(gòu)成與相互連接關(guān)系如圖4所示。
圖4 實時仿真計算機分系統(tǒng)構(gòu)成
從上述仿真計算機的設(shè)計可以看出,這種設(shè)計方案實現(xiàn)了運算能力的分布式實現(xiàn)與I/O的分布式部署。既能夠保證運算能力滿足動態(tài)特性模型結(jié)算的要求,又可以實現(xiàn)I/O數(shù)量的擴展,因此能很好地解決模型運算能力與I/O數(shù)量的要求。試驗進行時,仿真目標計算機與被測系統(tǒng)等設(shè)備通過I/O硬線連接,系統(tǒng)動態(tài)特性與仿真的動力學模型在仿真機上實時運行,并能夠模擬出被測目標系統(tǒng)所需的各種傳感器與執(zhí)行器的信號,用于激勵控制器。這些參數(shù)可以發(fā)送到測試管理主機在線顯示,也可以存儲在本地硬盤上以備試驗結(jié)束后離線分析。
本系統(tǒng)的工作流程以軟件流程為主,硬件為程控設(shè)備或者板卡,不需要手動操作,完全可以通過軟件的設(shè)置或者模型控制,工作流程如圖5所示。首先,根據(jù)被測系統(tǒng)的接口需求在MATLAB/Simulink建模軟件中建立被測系統(tǒng)外圍接口模型,該模型主要為接口模塊的設(shè)置,針對串口、CAN、1553B等總線類接口只需要在模型中放入相應(yīng)的驅(qū)動模塊,設(shè)置部分可以在QuiKLab中實現(xiàn)。RT-LAB仿真管理軟件可以實現(xiàn)被測系統(tǒng)外圍接口模型的編譯和節(jié)點分配等功能,編譯過的模型是可以在Redhat系統(tǒng)下運行的可執(zhí)行程序。根據(jù)被測系統(tǒng)測試需求文檔的要求定義通訊鏈路的協(xié)議、編寫測試用例、制定測試流程。最后,在QuiKLab自動測試管理軟件先運行編譯過的被測系統(tǒng)外圍接口模型,再執(zhí)行測試流程,測試流程執(zhí)行完畢會打印出測試結(jié)論及測試報告。
QuiKLab采用流程化的測試用例管理方式,在測試用例界面中將測試流程設(shè)計成由一系列事件和動作組成的測試流程框架,根據(jù)實際需求選擇合適的事件和動作組織成測試需求中規(guī)定的測試流程。每個事件或動作都可以看作是測試流程中的一個測試步驟,測試步驟可以是從被測系統(tǒng)收數(shù)據(jù),也可以是發(fā)送數(shù)據(jù)給被測系統(tǒng),也可以是條件判斷。以下是一個簡單的使用事件和動作組成完整的測試流程的例子。假設(shè)測試流程的需求如圖6所示。
圖6 測試需求流程圖
那么,使用本方法創(chuàng)建的測試流程如圖7所示。
圖7 測試流程例子
在測試用例設(shè)計界面中,以流程樹的形式供用戶設(shè)計測試流程,軟件能夠?qū)⒂脩粼O(shè)計好的測試流程自動生成Python語言的測試腳本。測試腳本序列在運行時,通過驅(qū)動仿真測試平臺的I/O驅(qū)動和通訊接口與被測系統(tǒng)通訊,激勵被測系統(tǒng)做出各種響應(yīng)。事件的類型有外部事件、內(nèi)部事件、系統(tǒng)事件、同步事件。外部事件指測試系統(tǒng)接收到被測系統(tǒng)的消息,或者測試系統(tǒng)接收到外部其他系統(tǒng)的消息;內(nèi)部指測試系統(tǒng)內(nèi)部產(chǎn)生的事件,如判斷某個觸發(fā)變量的值是否滿足指定的條件,若滿足則此事件觸發(fā);系統(tǒng)事件可以設(shè)置定時或周期事件,如指定在某個時間此事件觸發(fā)、在某個時間段內(nèi)此事件一直觸發(fā)等;同步事件用來做同步用,當某個或多個同步信號滿足了設(shè)定的同步條件后,此同步事件就會觸發(fā)。動作的類型有發(fā)送TCP/UDP/串口消息、發(fā)送CAN總線消息、發(fā)送1553B總線消息、設(shè)置1553B RT數(shù)據(jù)、延時、動作控制、比較期望值、自定義動作、流程結(jié)束等。
系統(tǒng)均提供了相應(yīng)的故障注入設(shè)置方式,在設(shè)計測試用例時,可以在測試用例的流程編輯界面中設(shè)置是否需要故障注入以及故障注入的方式等。當測試用例中發(fā)送消息時指定了故障,則在處理該消息時軟件會自動先處理事先設(shè)計的故障,并按照故障邏輯的結(jié)果完成故障注入。所有故障注入時要發(fā)送的數(shù)據(jù),均可以直接指定一個固定值,或者從文件讀取,或者從其它物理接口獲取等。
本文對該系統(tǒng)進行了測試,測試開發(fā)管理主機硬件配置如下:聯(lián)想S30工作站,Intel 4核CPU(3.06 GHz),16 GB 內(nèi)存,1TB SATA硬盤,1 GB顯卡,預(yù)裝Windows 7 Pro.64bit 中文版,24" LCD顯示器。實時仿真計算機分系統(tǒng)由2臺通用實時測試目標機組成,它們之間通過1394B總線連接,機箱中的I/O都通過仿真計算機中運行的仿真模型控制。實時測試目標機具體配置如下:標準4U高度上架機箱,Intel 3.2 GHz雙核處理器,4 GB內(nèi)存,運行REDHAT LINUX 實時操作系統(tǒng),提供7個PCI插槽,安裝有各種總線功能卡。
經(jīng)本文測試,系統(tǒng)性能指標達到了較高的能力:1)測試動作之間的延時精度最小精度能達到100 μs;2)支持強度測試,短時間處理、大數(shù)據(jù)處理、并行處理;3)數(shù)字I/O采集信號誤差絕對值不大于0.1 ms;4)強實時處理能力達到10 μs??梢?,本文提出的分布式仿真測試系統(tǒng)對實時系統(tǒng)性的測試性能提升效果是非常顯著的。
基于本文提出的分布式仿真測試環(huán)境已經(jīng)成功應(yīng)用于某通訊鏈路故障注入項目以及其他國防軍事裝備項目中。本文提出的系統(tǒng)具有如下關(guān)鍵特點和優(yōu)勢:1)提供一站式可視化的測試管理環(huán)境,大大簡化測試管理工作;2)運算速度快,實時性好;3)開放性平臺,提供C/C++,Python,Labview等API,圖形化監(jiān)控軟件界面可以根據(jù)用戶需求定制;4)擴展能力強,能夠通過添加PCI板卡的方式得到更多的I/O與數(shù)據(jù)通道。另外,本系統(tǒng)是一種分布式實時仿真平臺,其硬件平臺基于當前速度最快的主流硬件平臺。本系統(tǒng)還支持運算能力的并行分布,能夠在多臺仿真機上擴展模型。目前該系統(tǒng)已經(jīng)可以滿足絕大多數(shù)航空、航天、兵器等領(lǐng)域強實時嵌入式軟件的測試需求。
[1] 周慶,劉斌,余正偉,等.綜合模塊化航電軟件仿真測試環(huán)境研究[J].航空學報,2012,33(4):722-733.
[2] Friedenthal S,Moore A,Steiner R.Integrating SysML into a systems development environment[M].A Practical Guide to SysML.2nd ed.[S.1.]: Elsevier,2012:523-556.
[3] Koonga C S,Shihb C,Hsiungc P A,et al.Automatic testing environment for multi-Core embedded software ATEMES[J].The Journal of Systems and Software,2012,85(1):43-60.
[4] 劉暢,劉斌,蔣崇武.嵌入式軟件仿真測試環(huán)境實時數(shù)據(jù)處理研究[J].計算機工程與技術(shù),2009,30(7):1561.
[5] 劉斌.嵌入式軟件可靠性仿真測試系統(tǒng)研究[J].北京航空航天大學學報,2000,26(4):490-493.
[6] ADS2:Avionics development system 2nd generation[EB/OL]. www.techsat.com,2004.
[7] GESTE:GESTE產(chǎn)品介紹[EB/OL]. www.antares-testing.corn/File.asp,2007.
Research on Automatic Test Platform for Embedded Software
Xia Jiajia, Zou Yijun, Zhou Jiangwei, Wang Tianmin, Cao Shengli
(Shanghai Keliang Information Tech.& Eng.Co.,Ltd.,Shanghai200233,China)
The simulation of controlled object and environment are usually required for embedded software system testing to achieve the purpose of Hardware-In-Loop (HIL) verification. It is necessary to connect both the real time simulation model of controlled object and software to be tested to perform HIL testing. Based on the analysis of latest needs of embedded testing,a system platform in accordance with test automation of embedded software based on Distributed Simulation Testing Environment is proposed in this paper. The testing system implanted with powerful test management function,composed with not only the real-time simulation device as its core but also the modular customization of device interface connected,which actualizes the system level HIL hardware and software simulation environment of dynamic testing of embedded software system and brings out a solution that perfectly handles the defects of embedded system such as deficiency of memory and tightly related with hardware and so on.
embedded software; in-loop verification; automatic test; real-time simulation device
1671-4598(2016)04-0022-04DOI:10.16526/j.cnki.11-4762/tp.2016.04.007
TP273
A
2015-07-29;
2015-11-12。
夏佳佳(1987-),女,浙江舟山人,碩士,工程師,主要從事嵌入式軟件自動化測試系統(tǒng)和測試理論的研究,虛擬現(xiàn)實及其可視化技術(shù)方向的研究。