電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1641|回復(fù): 0
收起左側(cè)

濟(jì)南大學(xué)嵌入式期末_用創(chuàng)新架構(gòu)實現(xiàn)實時嵌入式軟件測試環(huán)境

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-3 11:16:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
濟(jì)南大學(xué)嵌入式期末_用創(chuàng)新架構(gòu)實現(xiàn)實時嵌入式軟件測試環(huán)境,   

  

  日常生活當(dāng)中我們經(jīng)常接觸到的軟件是PC機(jī)上運(yùn)行的桌面軟件,我們用這些軟件寫文章、填報表、玩游戲、瀏覽互聯(lián)網(wǎng)。

但實際生活當(dāng)中使用最多的其實是嵌入式軟件,從最簡單的電子表、遙控器、MP3播放器,到手機(jī)、汽車、工業(yè)控制系統(tǒng),再到極其復(fù)雜的飛機(jī)、火箭、核電站,在所有采用電子控制裝置的系統(tǒng)中,都或多或少地存在著嵌入式軟件的蹤跡。從使用數(shù)量來看,世界上絕大多數(shù)的軟件是嵌入式軟件。

嵌入式軟件的測試挑戰(zhàn)

  由于其自身的特點,嵌入式軟件的測試與傳統(tǒng)桌面軟件的測試有很大不同。嵌入式軟件的開發(fā)環(huán)境是通用的PC,但運(yùn)行環(huán)境是內(nèi)嵌的一個小型計算機(jī)系統(tǒng),導(dǎo)致測試時的運(yùn)行環(huán)境不是實際的運(yùn)行環(huán)境,因此在開發(fā)環(huán)境中對嵌入式軟件的測試必然是不充分的。

  

其次,大多數(shù)嵌入式軟件都有實時性的要求,要求測試環(huán)境本身也是實時的,否則軟件的實時特性就無法測出來。在PC機(jī)上的測試往往是仿真運(yùn)行的,很難測出軟件的時序關(guān)系、邏輯關(guān)系,以及精度、性能等和時間相關(guān)的因素。

  第三,是對整個測試環(huán)境的構(gòu)建。如心臟起搏器和飛機(jī)的飛控系統(tǒng)軟件,是無法在實際的運(yùn)行過程中測試的。因此如何構(gòu)建仿真的測試環(huán)境,并盡可能提高測試環(huán)境的真實程度是一個挑戰(zhàn)。

  中航一集團(tuán)計算機(jī)軟件可靠性管理與測評中心是國內(nèi)專業(yè)的嵌入式軟件測試工具和服務(wù)提供商,先后推出了通用嵌入式軟件仿真測試環(huán)境GESTE 1.0和2.0版,為解決嵌入式軟件的測試提供了易用、靈活、可擴(kuò)展的解決方案。

  本刊記者采訪了中航一集團(tuán)計算機(jī)軟件可靠性管理與測評中心、中航二集團(tuán)計算機(jī)質(zhì)量可靠性管理與測評中心的主任劉斌博士,詳細(xì)了解了GESTE 2.0的特點和創(chuàng)新之處。

組件化與分層設(shè)計實現(xiàn)通用性

  劉斌介紹說,GESTE 2.0采用了組件化和構(gòu)件化設(shè)計,可以通過模塊直接的疊加,完成對通用的嵌入式軟件進(jìn)行測試。GESTE把半實物仿真的技術(shù)應(yīng)用于嵌入式軟件的測試,同時又實現(xiàn)了通用性,這是它的創(chuàng)新之處(圖1)。

  仿真方式首先是要讓被測系統(tǒng)感覺到它捕捉到的信號和控制的東西都是真實的,接口輸入和輸出的都是真實的模擬量和數(shù)字量,只是接口后面的模型是仿真的,不需要使用實物來產(chǎn)生信號。

  由于嵌入式軟件一般是實時軟件,算法、時序關(guān)系和代碼是非常精巧的。如果在測試時改變它,如插裝,或改寫一些程序,軟件的時序關(guān)系就變得不確定了,無法保證測試的準(zhǔn)確性。為了避免這個問題,GESTE采用了非侵入式的方式,不對軟件進(jìn)行改動,而是從外部的接口來測試、觸發(fā)。從模塊到組件,從組件到軟件系統(tǒng),再從軟件系統(tǒng)與硬件系統(tǒng)結(jié)合到一起,到運(yùn)行環(huán)境,是自下而上、自低級到高級的測試環(huán)境。單元和組件是可以改變和侵入的,只有到軟件集成階段,才是GESTE要解決的。



  

  另外,通用和性能之間是一對矛盾。GESTE采用基于模型驅(qū)動的仿真測試原理,相當(dāng)于把原來嵌入式軟件測試的兩層模型改成了三層模型,又通過精巧的算法解決了多增加一層所帶來的性能損失問題。

  在仿真建模方面,GESTE提供了代碼自動生成功能。GESTE可以直接從接口控制文件,或者稱接口協(xié)議,自動地把這個仿真模型的框架生成出來,使測試人員可以專注于測試,而不用去管如何與環(huán)境之間交聯(lián),這是GESTE所獨(dú)有的創(chuàng)新功能。

可定制的測試環(huán)境

  劉斌領(lǐng)導(dǎo)的開發(fā)小組還設(shè)計了專用的測試腳本語言,解決了并發(fā)性、時序關(guān)系的描述性、多任務(wù)等測試需求。新腳本語言的解釋器和實時虛擬機(jī)是建立在實時操作系統(tǒng)VxWorks上,既可以半編譯半解釋執(zhí)行,也可以完全編譯后執(zhí)行。

  GESTE在易用性、切合測試人員的實際需求方面下了很大功夫。如GESTE提供了測試用例的管理功能,采取了分級管理的方式。GESTE使用了Windows風(fēng)格的界面和使用方式,迎合了中國用戶的習(xí)慣和實際情況。

  GESTE 2.0里面有專門的數(shù)據(jù)收集模型,由設(shè)計人員進(jìn)行定義,既可以機(jī)械地把數(shù)據(jù)全部采集進(jìn)來,也可以設(shè)定觸發(fā)條件,如到某個時間點采集數(shù)據(jù),或出現(xiàn)某種情況后采集,從而實現(xiàn)數(shù)據(jù)壓縮。

  GESTE的特點之一是可以通過二次開發(fā),變成專用的測試平臺。設(shè)計人員可以通過MatLab的建模生成模型框架,也可以通過統(tǒng)一通訊協(xié)議把其它工具開發(fā)的算法內(nèi)嵌進(jìn)來,使各個模型之間關(guān)聯(lián)起來。GESTE可以直接調(diào)用其它軟件生成的可執(zhí)行的目標(biāo)碼。劉斌說,統(tǒng)一通訊協(xié)議是測評中心自主開發(fā)的軟件接口,吸取了航天、軍工等很多行業(yè)在開發(fā)軟件接口方面的諸多經(jīng)驗,現(xiàn)已成為標(biāo)準(zhǔn)的接口。

GESTE可以從早期的快速原型驗證,到中期的單元測試、集成測試中,起到輔助作用,而在系統(tǒng)測試中起到主導(dǎo)作用。在原型沒有做出來的時候,可以在GESTE上把所有的部件或接口仿真出來,看設(shè)計的時序關(guān)系是不是正常,也可以把MatLab引入進(jìn)來。進(jìn)行了單元測試與集成測試之后的軟件需要在實際運(yùn)行環(huán)境中運(yùn)行,這時可以利用GESTE的仿真源實現(xiàn)仿真和激勵,從而對軟件施加仿真測試。


硬件與軟件結(jié)構(gòu)

  GESTE的體系機(jī)構(gòu)采用主從式設(shè)計,整個測試環(huán)境由兩臺通過以太網(wǎng)連接的計算機(jī)構(gòu)成,宿主機(jī)主要負(fù)責(zé)測試準(zhǔn)備階段的任務(wù),實時處理機(jī)主要負(fù)責(zé)測試運(yùn)行時任務(wù)。測試環(huán)境與被測系統(tǒng)之間的連接是依靠實時處理機(jī)與被測系統(tǒng)之間的硬件I/O接口(圖2)。

  GESTE的這種主從式結(jié)構(gòu),通過基于Windows的宿主機(jī)為用戶提供圖形化的測試用例管理、測試腳本和仿真模型的開發(fā)環(huán)境,而基于VxWorks的實時處理機(jī)用來運(yùn)行測試用例,實現(xiàn)自動化的測試執(zhí)行過程,并滿足被測系統(tǒng)的實時性要求。宿主機(jī)和實時處理機(jī)之間是非實時通信機(jī)制,實時處理機(jī)則采用強(qiáng)實時通信機(jī)制,確保與被測系統(tǒng)之間的實時數(shù)據(jù)通信。

  實時處理機(jī)軟件是仿真測試環(huán)境與被測系統(tǒng)之間的橋。用戶在宿主機(jī)上開發(fā)的測試腳本和仿真模型通過以太網(wǎng)下載到實時處理機(jī),以測試任務(wù)的形式在實時處理機(jī)上實時地運(yùn)行,并且被有序地組織成被測系統(tǒng)可以接收的數(shù)據(jù),通過I/O驅(qū)動發(fā)送到被測系統(tǒng),同時接收從被測系統(tǒng)返回的數(shù)據(jù)結(jié)果并進(jìn)行保存。

  實時處理機(jī)軟件采用三層結(jié)構(gòu)設(shè)計:應(yīng)用層、系統(tǒng)服務(wù)層和核心層。核心層是軟件的關(guān)鍵部分,它提供了整個系統(tǒng)的任務(wù)管理和實時調(diào)度機(jī)制,以及測試任務(wù)間數(shù)據(jù)通信的實現(xiàn)機(jī)制。系統(tǒng)服務(wù)層是測試環(huán)境為滿足測試要求而提供的一系列系統(tǒng)服務(wù)的集合,包括數(shù)據(jù)的實時收集、顯示,以及下載數(shù)據(jù)信息等測試服務(wù)。系統(tǒng)服務(wù)層建立在核心層中提供的各種機(jī)制之上,同時又為應(yīng)用層提供服務(wù)。應(yīng)用層面向用戶,用戶可以根據(jù)測試需求,并通過服務(wù)層提供的各種服務(wù)組織測試過程,其中包括開發(fā)仿真模型和編寫測試腳本等。

  通常一次完整的系統(tǒng)仿真測試包括:測試準(zhǔn)備、測試執(zhí)行和測試結(jié)果分析三個階段。GESTE可以在上述三個階段都提供相應(yīng)的工具支持,盡量提高測試的自動化水平。

  劉斌總結(jié)到,GESTE把傳統(tǒng)的技術(shù)和通用原理巧妙地組合在一起,把基于半實物仿真的平臺擴(kuò)展到嵌入式軟件的實時測試。自1998年設(shè)計出這個體系結(jié)構(gòu)以后,迄今為止都沒有大的改動。在GESTE中以模型為單元運(yùn)行。在模型間通過協(xié)議保證協(xié)同工作,模型間通過測試總線相連,稱為測試統(tǒng)一通信協(xié)議。各個模型可以組合,也可分開,可以有時序,也可以并行執(zhí)行。GESTE在測試腳本和硬件測試中間加了一層,解決了性能和通用性問題。

  劉斌透露,GESTE的后繼版本也可能支持QNX、RTLinux等RTOS,并且,有一個小組正在開發(fā)基于開源RTOS的專用于嵌入式軟件測試的操作系統(tǒng),把一些軟件測試的常用服務(wù)和模式做成一個服務(wù),這樣就可以大大提高應(yīng)用性、系統(tǒng)精度和性能。由于GESTE采用分層設(shè)計,已經(jīng)把操作系統(tǒng)屏蔽掉了,只要設(shè)計新的接口,就可以在新的操作系統(tǒng)上運(yùn)行起來。
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表