




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章嵌入式測(cè)試
9.1嵌入式軟件測(cè)試的方法9.2嵌入式軟件測(cè)試的過(guò)程9.3嵌入式軟件測(cè)試的特點(diǎn)9.4嵌入式軟件測(cè)試的工具9.5嵌入式軟件測(cè)試策略9.6嵌入式軟件測(cè)試實(shí)例9.7思考與習(xí)題
9.1嵌入式軟件測(cè)試的方法
嵌入式軟件測(cè)試分為4個(gè)階段,即模塊測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、硬件/軟件集成測(cè)試。前3個(gè)階段適用于任何軟件的測(cè)試,硬件/軟件集成測(cè)試階段是嵌入式軟件所特有的,目的是驗(yàn)證嵌入式軟件與其所控制的硬件設(shè)備能否正確地交互。
在嵌入式軟件測(cè)試中,常采取折中的方式?;谀繕?biāo)的測(cè)試消耗較多的經(jīng)費(fèi)和時(shí)間,而基于宿主的測(cè)試代價(jià)較小,但畢竟是在模擬環(huán)境中進(jìn)行的。目前的趨勢(shì)是把更多的測(cè)試轉(zhuǎn)移到宿主環(huán)境中進(jìn)行,但是,目標(biāo)環(huán)境的復(fù)雜性和獨(dú)特性不可能完全模擬。在兩個(gè)環(huán)境中可以出現(xiàn)不同的軟件缺陷,重要的是目標(biāo)環(huán)境和宿主環(huán)境的測(cè)試內(nèi)容有所選擇。在宿主環(huán)境中,可以進(jìn)行邏輯或界面的測(cè)試以及與硬件無(wú)關(guān)的測(cè)試。在模擬或宿主環(huán)境中的測(cè)試所消耗的時(shí)間通常相對(duì)較少,用調(diào)試工具可以更快地完成調(diào)試和測(cè)試任務(wù)。而與定時(shí)問(wèn)題有關(guān)的白盒測(cè)試、中斷測(cè)試、硬件接口測(cè)試只能在目標(biāo)環(huán)境中進(jìn)行。在軟件測(cè)試周期中,基于目標(biāo)的測(cè)試是在較晚的硬件/軟件集成測(cè)試階段開(kāi)始的,如果不更早地在模擬環(huán)境中進(jìn)行白盒測(cè)試,而是等到硬件/軟件集成測(cè)試階段再進(jìn)行全部的白盒測(cè)試,將耗費(fèi)更多的財(cái)力和人力。
9.2嵌入式軟件測(cè)試的過(guò)程
根據(jù)嵌入式系統(tǒng)的開(kāi)發(fā)流程,為了最經(jīng)濟(jì)地實(shí)現(xiàn)系統(tǒng)的功能,一般采用自頂向下、層層推進(jìn)的方法對(duì)嵌入式系統(tǒng)進(jìn)行測(cè)試。圖9.1為基于模塊化設(shè)計(jì)的嵌入式軟件測(cè)試流程。嵌入式軟件測(cè)試的總體步驟為:首先進(jìn)行操作系統(tǒng)移植并編寫(xiě)系統(tǒng)底層驅(qū)動(dòng),然后進(jìn)行系統(tǒng)平臺(tái)測(cè)試,其中包括硬件電路測(cè)試、操作系統(tǒng)及底層驅(qū)動(dòng)程序的測(cè)試等。如果測(cè)試未通過(guò),需要重新進(jìn)行操作系統(tǒng)移植和編寫(xiě)系統(tǒng)底層驅(qū)動(dòng);如果此測(cè)試通過(guò),可以進(jìn)入下一步的開(kāi)發(fā)——用模塊化的方法編寫(xiě)應(yīng)用代碼,隨后再對(duì)軟件模塊進(jìn)行測(cè)試。如果測(cè)試沒(méi)有通過(guò),則要對(duì)此代碼模塊進(jìn)行修改,然后對(duì)軟件模塊進(jìn)行測(cè)試;如果所有的模塊都通過(guò)測(cè)試,需要進(jìn)行集成測(cè)試。如果集成測(cè)試沒(méi)有通過(guò),則要確定模塊接口函數(shù)錯(cuò)誤模塊,然后修改錯(cuò)誤模塊代碼,再利用關(guān)聯(lián)矩陣確定需測(cè)試模塊,并重新回到軟件模塊測(cè)試;如果集成測(cè)試通過(guò),則需要進(jìn)行系統(tǒng)測(cè)試。如果系統(tǒng)測(cè)試沒(méi)有通過(guò),則需要修改程序代碼,如果問(wèn)題出現(xiàn)在操作系統(tǒng)的移植上,需要重新進(jìn)行操作系統(tǒng)的移植;如果問(wèn)題只是出現(xiàn)在軟件模塊上,只需修改軟件模塊就行了。如果系統(tǒng)測(cè)試通過(guò),就可以退出測(cè)試。在第一件產(chǎn)品生產(chǎn)出來(lái)之后,需要對(duì)產(chǎn)品進(jìn)行測(cè)試,如果測(cè)試通過(guò),則表示嵌入式產(chǎn)品的所有測(cè)試步驟已經(jīng)完成。圖9.1嵌入式軟件測(cè)試的詳細(xì)流程
9.3嵌入式軟件測(cè)試的特點(diǎn)
嵌入式軟件測(cè)試作為一種特殊的軟件測(cè)試,它的目的和原則同普通的軟件測(cè)試是一樣的,都是為了驗(yàn)證或達(dá)到可靠性要求而對(duì)軟件所進(jìn)行的測(cè)試。嵌入式軟件測(cè)試除了要遵循普通軟件測(cè)試的原則之外,還需要遵循以下幾個(gè)原則:
(1)嵌入式軟件測(cè)試對(duì)軟件在硬件平臺(tái)的測(cè)試是必不可少的。
(2)嵌入式軟件測(cè)試需要在特定的環(huán)境下對(duì)軟件進(jìn)行測(cè)試。
(3)嵌入式軟件需進(jìn)行必要的可靠性負(fù)載測(cè)試,比如測(cè)試某些嵌入式系統(tǒng)能否連續(xù)1000個(gè)小時(shí)不斷電工作。
(4)除了要對(duì)嵌入式軟件系統(tǒng)的功能進(jìn)行測(cè)試之外,還需要對(duì)實(shí)時(shí)性進(jìn)行測(cè)試。在判斷系統(tǒng)是否失效方面,除了看它的輸出結(jié)果是否正確,還應(yīng)考慮其是否在規(guī)定的時(shí)間里輸出了結(jié)果。
(5)在對(duì)嵌入式軟件進(jìn)行測(cè)試的時(shí)候,需要在特定的硬件平臺(tái)上進(jìn)行性能測(cè)試、內(nèi)存測(cè)試、GUI測(cè)試、覆蓋分析測(cè)試。
9.4嵌入式軟件測(cè)試的工具
1.內(nèi)存分析工具
在嵌入式系統(tǒng)中,內(nèi)存容量通常是有限的。內(nèi)存分析工具用來(lái)處理在動(dòng)態(tài)內(nèi)存分配中存在的缺陷。動(dòng)態(tài)內(nèi)存分配錯(cuò)誤,通常是難以復(fù)原的,其導(dǎo)致的失效難以追蹤,使用內(nèi)存分析工具可以避免這類(lèi)缺陷進(jìn)入功能測(cè)試階段。目前有兩類(lèi)內(nèi)存分析工具—軟件工具和硬件工具?;谲浖膬?nèi)存分析工具可能會(huì)對(duì)代碼的性能造成很大影響,從而嚴(yán)重影響實(shí)時(shí)操作;基于硬件的內(nèi)存分析工具價(jià)格昂貴,而且只能在工具所限定的運(yùn)行環(huán)境中使用。
2.性能分析工具
在嵌入式系統(tǒng)中,程序的性能通常是非常重要的。經(jīng)常會(huì)有這樣的要求,在特定時(shí)間內(nèi)處理一個(gè)中斷,或生成具有特定定時(shí)要求的一幀。開(kāi)發(fā)人員面臨的問(wèn)題是決定應(yīng)該對(duì)哪一部分代碼進(jìn)行優(yōu)化來(lái)改進(jìn)性能,并避免花費(fèi)大量的時(shí)間去優(yōu)化那些對(duì)性能沒(méi)有任何影響的代碼。性能分析工具會(huì)提供有關(guān)的數(shù)據(jù),說(shuō)明執(zhí)行時(shí)間是如何消耗,什么時(shí)候消耗的,以及每個(gè)例程所用的時(shí)間。根據(jù)這些數(shù)據(jù),確定哪些例程消耗部分執(zhí)行時(shí)間,從而可以決定如何優(yōu)化軟件,以獲得更好的時(shí)間性能。對(duì)于大多數(shù)應(yīng)用來(lái)說(shuō),大部分執(zhí)行時(shí)間用在相對(duì)少量的代碼上,費(fèi)時(shí)的代碼估計(jì)只占所有軟件總量的5%~20%。性能分析工具不僅能指出哪些例程花費(fèi)了時(shí)間,而且與調(diào)試工具聯(lián)合使用可以引導(dǎo)開(kāi)發(fā)人員查看需要優(yōu)化的特定函數(shù),性能分析工具還可以引導(dǎo)開(kāi)發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯(cuò)誤以及程序結(jié)構(gòu)上的缺陷。
3.GUI測(cè)試工具
很多嵌入式應(yīng)用提供了某種形式的圖形用戶(hù)界面,有些系統(tǒng)性能測(cè)試是根據(jù)用戶(hù)輸入響應(yīng)時(shí)間進(jìn)行的。GUI測(cè)試工具可以作為腳本工具在開(kāi)發(fā)環(huán)境中運(yùn)行測(cè)試用例,其功能包括對(duì)操作的記錄和回放、抓取屏幕顯示供以后分析和比較、設(shè)置和管理測(cè)試過(guò)程。對(duì)沒(méi)有GUI的嵌入式設(shè)備,可以對(duì)其進(jìn)行插裝來(lái)運(yùn)行GUI測(cè)試腳本,雖然這種方式可能要求對(duì)被測(cè)代碼進(jìn)行更改,但是節(jié)省了功能測(cè)試和回歸測(cè)試的時(shí)間。
4.覆蓋分析工具
在進(jìn)行白盒測(cè)試時(shí),可以使用代碼覆蓋分析工具追蹤被執(zhí)行過(guò)的代碼。分析過(guò)程可以通過(guò)插裝的方式來(lái)完成,插裝可以是在測(cè)試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼中加入軟件,也可以是二者相結(jié)合。測(cè)試人員對(duì)結(jié)果數(shù)據(jù)加以總結(jié),確定哪些代碼被執(zhí)行過(guò),哪些代碼被遺漏了。覆蓋分析工具一般會(huì)提供有關(guān)功能覆蓋、分支覆蓋、條件覆蓋的信息。對(duì)于嵌入式軟件來(lái)說(shuō),代碼覆蓋分析工具可能侵入代碼的執(zhí)行,影響實(shí)時(shí)代碼的運(yùn)行過(guò)程?;谟布拇a覆蓋分析工具的侵入程度要小一些,但是價(jià)格一般比較昂貴,而且限制被測(cè)代碼的數(shù)量。
9.5嵌入式軟件測(cè)試策略
1.單元測(cè)試
所有單元測(cè)試都可以在主機(jī)環(huán)境上進(jìn)行,除非少數(shù)情況特別指定了單元測(cè)試直接在目標(biāo)環(huán)境進(jìn)行。測(cè)試時(shí),盡可能在主機(jī)環(huán)境中進(jìn)行軟件測(cè)試,通過(guò)盡可能小的目標(biāo)單元訪問(wèn)所有目標(biāo)指定的界面。
在主機(jī)平臺(tái)上運(yùn)行的測(cè)試速度比在目標(biāo)平臺(tái)上快得多,在主機(jī)平臺(tái)完成測(cè)試后,可以在目標(biāo)環(huán)境中重復(fù)作一簡(jiǎn)單的確認(rèn)測(cè)試,確認(rèn)測(cè)試結(jié)果不受主機(jī)和目標(biāo)機(jī)的環(huán)境影響。在目標(biāo)環(huán)境中進(jìn)行確認(rèn)測(cè)試將確定一些未知的、未預(yù)料到的、未說(shuō)明的主機(jī)與目標(biāo)機(jī)的不同。例如,目標(biāo)編譯器可能有bug,但在主機(jī)編譯器上沒(méi)有。
2.集成測(cè)試
軟件集成也可在主機(jī)環(huán)境上完成,并在主機(jī)平臺(tái)上模擬目標(biāo)環(huán)境運(yùn)行。當(dāng)然在目標(biāo)環(huán)境上重復(fù)測(cè)試也是必需的,在此級(jí)別上的確認(rèn)測(cè)試將確定一些環(huán)境上的問(wèn)題,比如內(nèi)存定位和分配上的一些錯(cuò)誤。
在主機(jī)環(huán)境中如何進(jìn)行集成測(cè)試,取決于目標(biāo)系統(tǒng)的具體功能有多少。有些嵌入式系統(tǒng)與目標(biāo)環(huán)境耦合得非常緊密,若在主機(jī)環(huán)境做集成是不切實(shí)際的。對(duì)于大型軟件的開(kāi)發(fā)則可以分為幾個(gè)級(jí)別的集成。低級(jí)別的軟件集成在主機(jī)平臺(tái)上完成有很大優(yōu)勢(shì),越往后的集成越依賴(lài)于目標(biāo)環(huán)境。
3.系統(tǒng)測(cè)試和確認(rèn)測(cè)試
所有的系統(tǒng)測(cè)試和確認(rèn)測(cè)試都必須在目標(biāo)環(huán)境下執(zhí)行。當(dāng)然在主機(jī)上開(kāi)發(fā)和執(zhí)行系統(tǒng)測(cè)試,然后移植到目標(biāo)環(huán)境重復(fù)執(zhí)行是很方便的。對(duì)目標(biāo)系統(tǒng)的依賴(lài)性會(huì)妨礙將主機(jī)環(huán)境中的系統(tǒng)測(cè)試移植到目標(biāo)系統(tǒng)上,況且只有少數(shù)開(kāi)發(fā)者會(huì)卷入系統(tǒng)測(cè)試,所以有時(shí)放棄在主機(jī)環(huán)境上執(zhí)行系統(tǒng)測(cè)試可能更方便。
確認(rèn)測(cè)試最終的實(shí)施舞臺(tái)必須在目標(biāo)環(huán)境中,系統(tǒng)的確認(rèn)必須在真實(shí)系統(tǒng)之下測(cè)試,而不能在主機(jī)環(huán)境下模擬。這關(guān)系到嵌入式軟件的最終使用。
使用有效的cross-test測(cè)試策略可極大地提高嵌入式軟件開(kāi)發(fā)測(cè)試的水平和效率,當(dāng)然正確地使用測(cè)試工具也是必不可少的。
9.6嵌入式軟件測(cè)試實(shí)例
1)軟件指令仿真
軟件指令仿真的主要工作是對(duì)相關(guān)的I/O操作進(jìn)行替換。在80X86系列CPU指令集中,I/O指令有兩個(gè)IN和OUT,對(duì)這兩個(gè)指令,我們都定義相應(yīng)的宏來(lái)代替其操作,同時(shí)在內(nèi)存中組織變量來(lái)代替I/O操作中的寄存器變量。
在軟件中,I/O指令主要有以下幾類(lèi):
INREGISTER,BYTE
INREGISTER,WORD
OUTBYTE,REGISTER
OUTREGISTER,WORD構(gòu)造如下的宏指令仿真上述指令的功能:outwmacroreg,port
movdi,counto
movwordptroutbuf[di],ax
Incdi
movcounto,di
endm
2)軟件插樁
為了便于測(cè)試完成后分析軟件的執(zhí)行路徑,必須在軟件中加入特定的輸出語(yǔ)句。這樣,我們才能在分析軟件的輸出數(shù)據(jù)時(shí)進(jìn)行對(duì)比,得到軟件的實(shí)際運(yùn)行情況??稍谶b控?cái)z像頭的控制及通信軟件中加入下列語(yǔ)句:
MOVDADIAN,PATH[NO]
將軟件中的上述插入點(diǎn)寫(xiě)入軟件的輸出結(jié)果中,測(cè)試結(jié)束后分析語(yǔ)句時(shí),就可以根據(jù)路徑編號(hào)來(lái)分析軟件的執(zhí)行路徑。
3)軟件移植
由于遙控?cái)z像頭的控制及通信軟件在實(shí)際環(huán)境中的執(zhí)行方式是直接操作底層硬件,而DOS系統(tǒng)中的軟件是和操作系統(tǒng)交互的,因此,為了完成測(cè)試,必須對(duì)軟件進(jìn)行移植,使軟件能夠在DOS系統(tǒng)中運(yùn)行。
在基于8086組建的嵌入式系統(tǒng)中,一般將軟件安排在特定的存儲(chǔ)地址中,系統(tǒng)啟動(dòng)時(shí),CPU指令首先指向FF000H,在FF000H單元中安排特定的跳轉(zhuǎn)語(yǔ)句,使軟件跳轉(zhuǎn)到存儲(chǔ)器中存放軟件的地址,然后系統(tǒng)進(jìn)入正常運(yùn)行。然而,在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 逆作法施工方案
- 外包木工勞務(wù)合同范本
- 戶(hù)外生態(tài)木地板施工方案
- 設(shè)備刷漆防腐工程施工方案
- 技能大賽總結(jié)發(fā)言稿
- 河南道路花箱護(hù)欄施工方案
- 社會(huì)實(shí)踐領(lǐng)導(dǎo)發(fā)言稿
- 家長(zhǎng)會(huì)小學(xué)生發(fā)言稿
- 2025年COD自動(dòng)在線監(jiān)測(cè)儀項(xiàng)目建議書(shū)
- 培訓(xùn)心得發(fā)言稿
- 2025屆高考語(yǔ)文二輪復(fù)習(xí)語(yǔ)文備考策略
- 部編版語(yǔ)文小學(xué)二年級(jí)下冊(cè)第一單元集體備課(教材解讀)
- 2020年同等學(xué)力申碩《計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科綜合水平考試》歷年真題及答案
- 出生證警示教育培訓(xùn)
- 通信工程建設(shè)標(biāo)準(zhǔn)強(qiáng)制性條文匯編(2023版)-定額質(zhì)監(jiān)中心
- 高等傳熱學(xué)全冊(cè)課件
- (正式版)JBT 11270-2024 立體倉(cāng)庫(kù)組合式鋼結(jié)構(gòu)貨架技術(shù)規(guī)范
- 最全全國(guó)各省市縣名稱(chēng)
- 2024年《滕王閣序》原文及翻譯
- 部編版小學(xué)語(yǔ)文四年級(jí)下冊(cè)單元試卷含答案(全冊(cè))
- 江蘇省廢礦物油回收利用行業(yè)環(huán)境管理要求
評(píng)論
0/150
提交評(píng)論