




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VTEST-—種通用虛擬測試環(huán)境框架軟件摘要:本文介紹了虛擬測試環(huán)境的概念和基本結(jié)構(gòu),重點(diǎn)介紹了一種通用虛擬測試環(huán)境框架軟件VTest。VTest采用功能內(nèi)核和插件的設(shè)計(jì)思想,提髙了系統(tǒng)的模塊性、重用性和可擴(kuò)展性,提髙了系統(tǒng)的適應(yīng)能力,利用VTest可以快速構(gòu)建自動化程度髙、測試手段豐富、髙可用的嵌入式軟件虛擬測試環(huán)境,有效保證測試充分性。關(guān)鍵詞:虛擬測試測試環(huán)境嵌入式VTest引言虛擬測試環(huán)境是指利用軟件仿真技術(shù),逼真地模擬被測軟件運(yùn)行的物理環(huán)境,在其上通過動態(tài)執(zhí)行被測軟件進(jìn)行的軟件確認(rèn)與驗(yàn)證活動。理想情況下,原來運(yùn)行于真實(shí)環(huán)境上的嵌入式軟件,可以不加修改直接在虛擬環(huán)境上運(yùn)行,并且其運(yùn)行的動態(tài)特性與在真實(shí)環(huán)境上一致。虛擬測試環(huán)境所固有的高可用、高可控、確定性、易于復(fù)制使用等特性,為進(jìn)行軟件測試提供了理想的測試環(huán)境。虛擬測試環(huán)境不能完全替代硬件測試環(huán)境,卻是對硬件環(huán)境的有效補(bǔ)充。虛擬測試環(huán)境與傳統(tǒng)的半物理測試環(huán)境的結(jié)構(gòu)非常類似。傳統(tǒng)的半物理測試環(huán)境是由目標(biāo)機(jī)和仿真主機(jī)構(gòu)成,目標(biāo)機(jī)上運(yùn)行被測軟件,仿真主機(jī)上運(yùn)行被測軟件控制的對象仿真軟件,例如針對衛(wèi)星姿控軟件的衛(wèi)星姿態(tài)和軌道動力學(xué)、敏感器和執(zhí)行結(jié)構(gòu)仿真等,以及為方便軟件測試所需的用例驅(qū)動、調(diào)試、測試信息獲取等測試軟件。在虛擬測試環(huán)境中利用虛擬目標(biāo)機(jī)代替了真實(shí)目標(biāo)機(jī),并且由于虛擬目標(biāo)機(jī)和仿真軟件以及測試軟件都是在主機(jī)上運(yùn)行的軟件,因此,一臺安裝了虛擬測試環(huán)境軟件的普通PC機(jī)就構(gòu)成了強(qiáng)大的軟件測試環(huán)境,可以有效解決嵌入式軟件測試受限于硬件測試環(huán)境可用性的問題。虛擬測試環(huán)境的一般結(jié)構(gòu)如下圖所示:圖1-1虛擬測試環(huán)境結(jié)構(gòu)其中虛擬目標(biāo)機(jī)是虛擬測試環(huán)境實(shí)現(xiàn)的關(guān)鍵,虛擬目標(biāo)機(jī)的一般結(jié)構(gòu)如下圖所示虛擬目標(biāo)機(jī)CPU模擬器 IO芯片仿真虛擬目標(biāo)機(jī)仿真框架圖1-2虛擬目標(biāo)機(jī)結(jié)構(gòu)
虛擬目標(biāo)機(jī)主要由CPU模擬器[1][2]10芯片模擬等構(gòu)成,其中CPU模擬器對目標(biāo)CPU的內(nèi)核進(jìn)行模擬,將目標(biāo)機(jī)的指令轉(zhuǎn)換為宿主機(jī)上的指令執(zhí)行,從而實(shí)現(xiàn)在宿主機(jī)上執(zhí)行目標(biāo)機(jī)上的代碼。IO芯片仿真對10芯片(包括CPU片內(nèi)芯片)進(jìn)行軟件仿真,包括串口、并口、中斷控制器、1553B總線控制器等。CPU模擬器是虛擬目標(biāo)機(jī)的核心部件,其仿真的正確性和速度對整個虛擬測試環(huán)境都至關(guān)重要。由于虛擬測試環(huán)境是集成了各種軟件模塊、軟件工具的復(fù)雜軟件系統(tǒng),因而圍繞虛擬測試環(huán)境的實(shí)現(xiàn)技術(shù)在國內(nèi)外都開展了廣泛的研究工作。目前的一種趨勢是將CPU模擬器、10芯片仿真等按照一定的協(xié)議約定封裝成可重用構(gòu)件,并利用某種描述語言描述虛擬測試環(huán)境的構(gòu)成,利用一種通用的虛擬測試環(huán)境框架軟件,讀取對虛擬測試環(huán)境的描述,利用可重用構(gòu)件動態(tài)構(gòu)造特定的虛擬測試環(huán)境。虛擬測試環(huán)境框架軟件除了動態(tài)構(gòu)造特定的虛擬測試環(huán)境外,還負(fù)責(zé)在仿真運(yùn)行過程中,調(diào)度各種模型構(gòu)件的運(yùn)行和同步、模擬構(gòu)件間的同步、進(jìn)行離散事件仿真等。采用這種方式的好處在于:各種CPU模擬器、10芯片仿真等可以充分重用;虛擬測試環(huán)境可以通過描述進(jìn)行配置生成,而不必逐一定制,從而提高了虛擬測試環(huán)境的可擴(kuò)展性和通用性。VTest(VirtualTest)就是這樣一種通用虛擬測試環(huán)境框架軟件。VTest的研制單位為航天五院502所空間飛行器軟件檢測站。VTest最初是為了解決第三方確認(rèn)測試時沒有可用的測試環(huán)境而研制的。目前,VTest已經(jīng)發(fā)展成為一個高性能的、高擴(kuò)展性的具備系統(tǒng)級仿真能力的虛擬測試環(huán)境框架軟件。使用VTest可以在一臺普通x86PC機(jī)上快速構(gòu)建一個特定的虛擬軟件測試環(huán)境,在不具備目標(biāo)硬件的情況下,進(jìn)行嵌入式軟件的開發(fā)和測試。VTest概述VTest的基本構(gòu)架如錯誤未找到引用源。-1所示,其中運(yùn)行時核心(kernel)控制整個虛擬測試環(huán)境的運(yùn)行,包括調(diào)度各種仿真模型運(yùn)行、時鐘或中斷等離散事件控制等。VTest中定義了標(biāo)準(zhǔn)的接口,各種仿真模型,包括CPU模擬器、虛擬芯片(IO芯片仿真)、其他仿真模型等都是通過這一接口接受運(yùn)行時核心的調(diào)度,完成模型間的數(shù)據(jù)交換。各種仿真模型在運(yùn)行時核心的統(tǒng)一調(diào)度下構(gòu)成虛擬目標(biāo)系統(tǒng)。被測試的目標(biāo)軟件,不需要任何修改就可以在虛擬目標(biāo)系統(tǒng)中運(yùn)行。運(yùn)行時核心(RuntinieKernel)■人機(jī)界面VTK1■耳滋壞£馭冋VirtualTest瞧擬平臺瓷理剛象運(yùn)行時核心(RuntinieKernel)■人機(jī)界面VTK1■耳滋壞£馭冋VirtualTest瞧擬平臺瓷理剛象Winrtnwp;-茫計(jì):泵圖2-1VTest基本構(gòu)架在人機(jī)界面層配置了VTest集成環(huán)境界面用于完成軟件調(diào)試、界面顯示等任務(wù),在人機(jī)界面層還配置了覆蓋率分析工具用于分析測試覆蓋情況、目標(biāo)碼解析庫用于解析被測軟件編譯后的目標(biāo)文件。VTest平臺中的各種仿真模型都可以封裝成獨(dú)立的Windows動態(tài)鏈接庫,以便于通過“搭建”的方式快速構(gòu)建虛擬目標(biāo)系統(tǒng)。VTest中已建立了常用的嵌入式處理器,如80x86、TSC695、AT697、TIC3X、ADSP21020/60等CPU模擬器模型庫、以及常用的芯片仿真模型庫,如8259、8254、8252、CAN總線、1553芯片等。在構(gòu)建虛擬目標(biāo)系統(tǒng)時,只需要從已有的仿真模型庫中選取所需的模型庫,并進(jìn)行必要的配置連接即可,避免了重復(fù)開發(fā)工作。同時,VTest提供了擴(kuò)展編程接口,用戶可以自己開發(fā)各種所需的仿真模型庫,包括最為復(fù)雜的CPU模擬器。對于一個軟件組織,可逐步建立自己常用的CPU模擬器庫、虛擬芯片庫、對象仿真模型庫以及其他仿真模型庫等,以最大化的減少構(gòu)建虛擬測試環(huán)境的開發(fā)工作,提高構(gòu)建虛擬測試環(huán)境的效率。VTest的設(shè)計(jì)原則VTest用于嵌入式軟件的測試,由于嵌入式軟件的專用性使得嵌入式軟件測試環(huán)境也往往具有一定的專用性。為此,VTest設(shè)計(jì)時,特別強(qiáng)調(diào)了其通用性,試圖將VTest設(shè)計(jì)成通用的虛擬測試環(huán)境框架軟件,盡量使框架不受被測軟件和被模擬的目標(biāo)系統(tǒng)的限制和影響。其基本的設(shè)計(jì)原則包括:a.通用性嵌入式軟件的特殊性主要表現(xiàn)在“嵌入”上,為在通用機(jī)上執(zhí)行嵌入式軟件必須對目標(biāo)機(jī)環(huán)境進(jìn)行模擬,由于目標(biāo)機(jī)環(huán)境千差萬別,因此不可能做出一個全集,對所有目標(biāo)機(jī)環(huán)境進(jìn)行模擬。但通過提供CPU模擬器和虛擬芯片等具有通用功能的基本仿真模塊,以及配置生成,可使框架具有更廣泛的適應(yīng)性。b.可擴(kuò)展性提供API接口,允許用戶開發(fā)自定義仿真模塊,以擴(kuò)展VTest模擬各類目標(biāo)環(huán)境的能力。c.可定制提供API接口,針對不同的測試對象,用戶可以開發(fā)自己的界面顯示,用例輸入界面等等,對使用體驗(yàn)進(jìn)行重新定制。d.正確性、確定性作為測試軟件的軟件,VTest本身必須是正確的,自身的錯誤不能反映到測試結(jié)果中。同時VTest的運(yùn)行結(jié)果應(yīng)該是確定的,即每次模擬運(yùn)行的結(jié)果一致,以便于進(jìn)行測試過程復(fù)現(xiàn)。e.效率效率或者仿真速度是衡量仿真系統(tǒng)的一項(xiàng)重要指標(biāo)。在VTest設(shè)計(jì)中要從流程效率、算法效率、實(shí)現(xiàn)效率等幾個方面,提高仿真速度。VTest框架設(shè)計(jì)VTest的基本設(shè)計(jì)思想是構(gòu)建一個最小化的功能內(nèi)核(運(yùn)行時核心)提供軟件系統(tǒng)的核心服務(wù),而將擴(kuò)展性質(zhì)的功能模塊都作為插件提供,運(yùn)行時核心提供了插件的裝載機(jī)制和協(xié)調(diào)各插件運(yùn)作的功能。插件在運(yùn)行時加載,并可以被動態(tài)配置,動態(tài)卸載。用戶通過設(shè)計(jì)新的插件實(shí)現(xiàn)功能的擴(kuò)展。VTest提供了各類插件的開發(fā)API接口和開發(fā)規(guī)范,開發(fā)者只需按照這一規(guī)范,通過設(shè)計(jì)新的插件實(shí)現(xiàn)功能的擴(kuò)展。a.工程文件接口VTest定義了項(xiàng)目文件用于描述特定的虛擬目標(biāo)系統(tǒng),并依據(jù)項(xiàng)目文件動態(tài)構(gòu)建虛擬目標(biāo)系統(tǒng)。VTest項(xiàng)目文件主要描述了三方面的信息,即:項(xiàng)目基本信息,被測軟件代碼信息,虛擬目標(biāo)系統(tǒng)配置信息。項(xiàng)目基本信息描述了項(xiàng)目名稱、被測軟件版本號等信息;被測軟件代碼信息描述了被軟件的源代碼名稱和目標(biāo)碼名稱、目標(biāo)碼解析庫的名稱;虛擬目標(biāo)系統(tǒng)配置信息利用虛擬部件描述被模擬的真實(shí)目標(biāo)系統(tǒng)的構(gòu)成,如選用哪種CPU模擬器、CPU主頻、選用哪些虛擬芯片、虛擬芯片之間如何連接、虛擬芯片的端口地址、內(nèi)存分配等等,一般按照真實(shí)情況完成配置即可。VTest通過工程文件接口讀入工程文件構(gòu)造虛擬目標(biāo)機(jī)模擬,而工程文件可由工程文件編寫工具編寫產(chǎn)生,并由工程文件解析插件解析。b.目標(biāo)碼接口VTest需要加載被測軟件的目標(biāo)碼到CPU模擬器中運(yùn)行,但由于CPU類型不同或編譯器不同,生成的目標(biāo)碼的格式是多種多樣的,如OMF格式、ELF格式、COFF格式等。為此需要開發(fā)不同的目標(biāo)碼處理插件軟件以解析不同的格式的目標(biāo)碼,從中提取可執(zhí)行目標(biāo)碼信息、調(diào)試信息等。為此定義可統(tǒng)一的目標(biāo)碼接口,由目標(biāo)碼處理插件軟件實(shí)現(xiàn)該接口,VTest通過該接口動態(tài)加載插件、調(diào)用目標(biāo)碼處理軟件的功能,實(shí)現(xiàn)目標(biāo)碼處理。通過該接口,處理不同格式的目標(biāo)碼只需要編寫針對不同格式的目標(biāo)碼處理插件軟件即可,VTest框架本身不需要任何修改。c.CPU模擬器接口CPU模擬器是最為核心和復(fù)雜的一類插件,VTest定義了CPU模擬器插件接口規(guī)范和開發(fā)API,用戶可以利用這些API開發(fā)新的CPU模擬器。VTest通過CPU模擬器接口加載和訪問、控制CPU模擬器軟件,只要實(shí)現(xiàn)了CPU模擬器接口的CPU模擬器插件軟件都可以與VTest交互,并集成到系統(tǒng)中。d.虛擬芯片接口虛擬芯片是最為常用,經(jīng)常需要使用的一類插件。VTest定義簡單實(shí)用的虛擬芯片插件接口,并提供了30多個API函數(shù),支持用戶開發(fā)虛擬芯片。e.覆蓋率輸出接口CPU模擬器軟件運(yùn)行被測軟件的同時記錄被測軟件執(zhí)行過程中的語句覆蓋率和分支覆蓋率oVTest框架
軟件實(shí)現(xiàn)覆蓋率輸出接口,輸出符合一定格式的覆蓋率記錄信息,供覆蓋率統(tǒng)計(jì)工具對覆蓋信息進(jìn)行統(tǒng)計(jì)、
合并、顯示。VTest框架軟件支持測試腳本的執(zhí)行,這就要求能夠解析一定格式的測試腳本并執(zhí)行腳本。目前可用的腳本很多,包括TCL、VBScript、用戶自定義腳本等,并且測試腳本與用戶的使用習(xí)慣有較強(qiáng)關(guān)聯(lián)而與框架本身的功能關(guān)聯(lián)不大。為此通過虛擬芯片的接口掛接用戶期望的腳本引擎,再通過該腳本引擎來解析執(zhí)行用戶腳本,由此實(shí)現(xiàn)對測試腳本的支持。VTest提供的虛擬芯片API函數(shù)中包括了對虛擬測試環(huán)境進(jìn)行運(yùn)行控制的函數(shù),供腳本引擎使用。VTest的使用過程VTest的使用過程,可以概括為以下3個步驟:了辭總暫冃輛屆晞的初威I"爼3£』CPU,內(nèi)存”也卅,尹他平螂.M傑舊碎詩tr構(gòu)述虛浪了辭總暫冃輛屆晞的初威I"爼3£』CPU,內(nèi)存”也卅,尹他平螂.M傑舊碎詩tr構(gòu)述虛浪u林嘉紙秋n;圧s■書呂旳訕b原卻EEIft帕相*宜PIL理扭11標(biāo)不城中利用WTEFT雄fit的_LJIWE打軟屮ILI初■:廿11吧片3圖3-1基于VTest的軟件調(diào)試和測試過程首先,應(yīng)了解真實(shí)目標(biāo)系統(tǒng)的構(gòu)成,包括系統(tǒng)中使用的CPU、內(nèi)存、芯片、受控對象的特點(diǎn)、與其他系統(tǒng)的接口等等,對這些情況建立了解的目的是為構(gòu)建虛擬目標(biāo)系統(tǒng)做好準(zhǔn)備。這些信息可以從軟件任務(wù)書、相關(guān)的接口協(xié)議、接口地址表、目標(biāo)機(jī)原理圖等文檔中獲得。之后,根據(jù)真實(shí)目標(biāo)系統(tǒng)的構(gòu)成情況,構(gòu)建虛擬目標(biāo)系統(tǒng)。從仿真模型庫中選取所需的CPU模擬器、虛擬芯片等仿真模型,如果當(dāng)前的仿真模型庫中沒有所需的虛擬芯片,則需要利用VTest提供的編程接口開發(fā)所需的虛擬芯片。所需的虛擬芯片具備后,就可以在VTest項(xiàng)目文件中描述虛擬系統(tǒng)的構(gòu)成。描述的內(nèi)容包括系統(tǒng)使用的CPU類型、CPU主頻、內(nèi)存大小、使用的虛擬芯片、虛擬芯片的端口地址、連接關(guān)系VTest根據(jù)項(xiàng)目文件和所需的CPU模擬器、虛擬芯片,就可以在運(yùn)行時動態(tài)構(gòu)造出虛擬目標(biāo)系統(tǒng),虛擬目標(biāo)系統(tǒng)與VTest提供的其他測試工具一起構(gòu)成虛擬測試環(huán)境。VTest的應(yīng)用自VTest虛擬測試環(huán)境框架軟件研制成功后,近十年來航天五院全部姿控軟件以及過半數(shù)的關(guān)鍵軟件都在該環(huán)境中進(jìn)行測試,包括載人航天工程、嫦娥工程的關(guān)鍵項(xiàng)目軟件。利用該測試環(huán)境,發(fā)現(xiàn)了大量軟件設(shè)計(jì)錯誤,對于提高軟件的可信性發(fā)揮了重要作用。目前該測試環(huán)境已經(jīng)應(yīng)用于航天軟件的開發(fā)過程,在更大范圍內(nèi)為軟件的研制提供服務(wù)。在實(shí)踐中,以VTest為基礎(chǔ),通過擴(kuò)展測試腳本和測試用例庫、被測對象仿真庫,已經(jīng)形成了功能較為完備和通用的姿軌
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修改利用合同范本賺錢
- 住宅合同范本
- 低價轉(zhuǎn)讓轉(zhuǎn)租合同范本
- 出售積水別墅合同范例
- 代理退保委托合同范本
- 信用貸購車合同范例
- 關(guān)于承包保潔合同范本
- 《物資采購合同范本》
- 養(yǎng)殖回購合同范本
- 買裝修制式合同范本
- 巴馬格紡絲控制系統(tǒng)軟件說明書(共46頁)
- 肺結(jié)核患者管理ppt課件
- 煤矸石綜合利用項(xiàng)目可行性研究報(bào)告寫作范文
- 清華大學(xué)MBA課程——運(yùn)籌學(xué)
- 《計(jì)量經(jīng)濟(jì)學(xué)》超全題庫及答案(完整版)
- 濕法冶金浸出凈化和沉積PPT課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 雨污水管網(wǎng)勞務(wù)施工分包合同
- 通信桿路工程施工
- 初中物理光學(xué)經(jīng)典題(共23頁)
- 封條VVTT檢查流程程序參考模板
評論
0/150
提交評論