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

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

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

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

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

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

  

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

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

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

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

  

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

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

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

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

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

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

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

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



  

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

本版積分規(guī)則


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