《軟件測試基礎》課件-第9章_第1頁
《軟件測試基礎》課件-第9章_第2頁
《軟件測試基礎》課件-第9章_第3頁
《軟件測試基礎》課件-第9章_第4頁
《軟件測試基礎》課件-第9章_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章嵌入式測試

9.1嵌入式軟件測試的方法9.2嵌入式軟件測試的過程9.3嵌入式軟件測試的特點9.4嵌入式軟件測試的工具9.5嵌入式軟件測試策略9.6嵌入式軟件測試實例9.7思考與習題

9.1嵌入式軟件測試的方法

嵌入式軟件測試分為4個階段,即模塊測試、集成測試、系統測試、硬件/軟件集成測試。前3個階段適用于任何軟件的測試,硬件/軟件集成測試階段是嵌入式軟件所特有的,目的是驗證嵌入式軟件與其所控制的硬件設備能否正確地交互。

在嵌入式軟件測試中,常采取折中的方式。基于目標的測試消耗較多的經費和時間,而基于宿主的測試代價較小,但畢竟是在模擬環境中進行的。目前的趨勢是把更多的測試轉移到宿主環境中進行,但是,目標環境的復雜性和獨特性不可能完全模擬。在兩個環境中可以出現不同的軟件缺陷,重要的是目標環境和宿主環境的測試內容有所選擇。在宿主環境中,可以進行邏輯或界面的測試以及與硬件無關的測試。在模擬或宿主環境中的測試所消耗的時間通常相對較少,用調試工具可以更快地完成調試和測試任務。而與定時問題有關的白盒測試、中斷測試、硬件接口測試只能在目標環境中進行。在軟件測試周期中,基于目標的測試是在較晚的硬件/軟件集成測試階段開始的,如果不更早地在模擬環境中進行白盒測試,而是等到硬件/軟件集成測試階段再進行全部的白盒測試,將耗費更多的財力和人力。

9.2嵌入式軟件測試的過程

根據嵌入式系統的開發流程,為了最經濟地實現系統的功能,一般采用自頂向下、層層推進的方法對嵌入式系統進行測試。圖9.1為基于模塊化設計的嵌入式軟件測試流程。嵌入式軟件測試的總體步驟為:首先進行操作系統移植并編寫系統底層驅動,然后進行系統平臺測試,其中包括硬件電路測試、操作系統及底層驅動程序的測試等。如果測試未通過,需要重新進行操作系統移植和編寫系統底層驅動;如果此測試通過,可以進入下一步的開發——用模塊化的方法編寫應用代碼,隨后再對軟件模塊進行測試。如果測試沒有通過,則要對此代碼模塊進行修改,然后對軟件模塊進行測試;如果所有的模塊都通過測試,需要進行集成測試。如果集成測試沒有通過,則要確定模塊接口函數錯誤模塊,然后修改錯誤模塊代碼,再利用關聯矩陣確定需測試模塊,并重新回到軟件模塊測試;如果集成測試通過,則需要進行系統測試。如果系統測試沒有通過,則需要修改程序代碼,如果問題出現在操作系統的移植上,需要重新進行操作系統的移植;如果問題只是出現在軟件模塊上,只需修改軟件模塊就行了。如果系統測試通過,就可以退出測試。在第一件產品生產出來之后,需要對產品進行測試,如果測試通過,則表示嵌入式產品的所有測試步驟已經完成。圖9.1嵌入式軟件測試的詳細流程

9.3嵌入式軟件測試的特點

嵌入式軟件測試作為一種特殊的軟件測試,它的目的和原則同普通的軟件測試是一樣的,都是為了驗證或達到可靠性要求而對軟件所進行的測試。嵌入式軟件測試除了要遵循普通軟件測試的原則之外,還需要遵循以下幾個原則:

(1)嵌入式軟件測試對軟件在硬件平臺的測試是必不可少的。

(2)嵌入式軟件測試需要在特定的環境下對軟件進行測試。

(3)嵌入式軟件需進行必要的可靠性負載測試,比如測試某些嵌入式系統能否連續1000個小時不斷電工作。

(4)除了要對嵌入式軟件系統的功能進行測試之外,還需要對實時性進行測試。在判斷系統是否失效方面,除了看它的輸出結果是否正確,還應考慮其是否在規定的時間里輸出了結果。

(5)在對嵌入式軟件進行測試的時候,需要在特定的硬件平臺上進行性能測試、內存測試、GUI測試、覆蓋分析測試。

9.4嵌入式軟件測試的工具

1.內存分析工具

在嵌入式系統中,內存容量通常是有限的。內存分析工具用來處理在動態內存分配中存在的缺陷。動態內存分配錯誤,通常是難以復原的,其導致的失效難以追蹤,使用內存分析工具可以避免這類缺陷進入功能測試階段。目前有兩類內存分析工具—軟件工具和硬件工具。基于軟件的內存分析工具可能會對代碼的性能造成很大影響,從而嚴重影響實時操作;基于硬件的內存分析工具價格昂貴,而且只能在工具所限定的運行環境中使用。

2.性能分析工具

在嵌入式系統中,程序的性能通常是非常重要的。經常會有這樣的要求,在特定時間內處理一個中斷,或生成具有特定定時要求的一幀。開發人員面臨的問題是決定應該對哪一部分代碼進行優化來改進性能,并避免花費大量的時間去優化那些對性能沒有任何影響的代碼。性能分析工具會提供有關的數據,說明執行時間是如何消耗,什么時候消耗的,以及每個例程所用的時間。根據這些數據,確定哪些例程消耗部分執行時間,從而可以決定如何優化軟件,以獲得更好的時間性能。對于大多數應用來說,大部分執行時間用在相對少量的代碼上,費時的代碼估計只占所有軟件總量的5%~20%。性能分析工具不僅能指出哪些例程花費了時間,而且與調試工具聯合使用可以引導開發人員查看需要優化的特定函數,性能分析工具還可以引導開發人員發現在系統調用中存在的錯誤以及程序結構上的缺陷。

3.GUI測試工具

很多嵌入式應用提供了某種形式的圖形用戶界面,有些系統性能測試是根據用戶輸入響應時間進行的。GUI測試工具可以作為腳本工具在開發環境中運行測試用例,其功能包括對操作的記錄和回放、抓取屏幕顯示供以后分析和比較、設置和管理測試過程。對沒有GUI的嵌入式設備,可以對其進行插裝來運行GUI測試腳本,雖然這種方式可能要求對被測代碼進行更改,但是節省了功能測試和回歸測試的時間。

4.覆蓋分析工具

在進行白盒測試時,可以使用代碼覆蓋分析工具追蹤被執行過的代碼。分析過程可以通過插裝的方式來完成,插裝可以是在測試環境中嵌入硬件,也可以是在可執行代碼中加入軟件,也可以是二者相結合。測試人員對結果數據加以總結,確定哪些代碼被執行過,哪些代碼被遺漏了。覆蓋分析工具一般會提供有關功能覆蓋、分支覆蓋、條件覆蓋的信息。對于嵌入式軟件來說,代碼覆蓋分析工具可能侵入代碼的執行,影響實時代碼的運行過程。基于硬件的代碼覆蓋分析工具的侵入程度要小一些,但是價格一般比較昂貴,而且限制被測代碼的數量。

9.5嵌入式軟件測試策略

1.單元測試

所有單元測試都可以在主機環境上進行,除非少數情況特別指定了單元測試直接在目標環境進行。測試時,盡可能在主機環境中進行軟件測試,通過盡可能小的目標單元訪問所有目標指定的界面。

在主機平臺上運行的測試速度比在目標平臺上快得多,在主機平臺完成測試后,可以在目標環境中重復作一簡單的確認測試,確認測試結果不受主機和目標機的環境影響。在目標環境中進行確認測試將確定一些未知的、未預料到的、未說明的主機與目標機的不同。例如,目標編譯器可能有bug,但在主機編譯器上沒有。

2.集成測試

軟件集成也可在主機環境上完成,并在主機平臺上模擬目標環境運行。當然在目標環境上重復測試也是必需的,在此級別上的確認測試將確定一些環境上的問題,比如內存定位和分配上的一些錯誤。

在主機環境中如何進行集成測試,取決于目標系統的具體功能有多少。有些嵌入式系統與目標環境耦合得非常緊密,若在主機環境做集成是不切實際的。對于大型軟件的開發則可以分為幾個級別的集成。低級別的軟件集成在主機平臺上完成有很大優勢,越往后的集成越依賴于目標環境。

3.系統測試和確認測試

所有的系統測試和確認測試都必須在目標環境下執行。當然在主機上開發和執行系統測試,然后移植到目標環境重復執行是很方便的。對目標系統的依賴性會妨礙將主機環境中的系統測試移植到目標系統上,況且只有少數開發者會卷入系統測試,所以有時放棄在主機環境上執行系統測試可能更方便。

確認測試最終的實施舞臺必須在目標環境中,系統的確認必須在真實系統之下測試,而不能在主機環境下模擬。這關系到嵌入式軟件的最終使用。

使用有效的cross-test測試策略可極大地提高嵌入式軟件開發測試的水平和效率,當然正確地使用測試工具也是必不可少的。

9.6嵌入式軟件測試實例

1)軟件指令仿真

軟件指令仿真的主要工作是對相關的I/O操作進行替換。在80X86系列CPU指令集中,I/O指令有兩個IN和OUT,對這兩個指令,我們都定義相應的宏來代替其操作,同時在內存中組織變量來代替I/O操作中的寄存器變量。

在軟件中,I/O指令主要有以下幾類:

INREGISTER,BYTE

INREGISTER,WORD

OUTBYTE,REGISTER

OUTREGISTER,WORD構造如下的宏指令仿真上述指令的功能:outwmacroreg,port

movdi,counto

movwordptroutbuf[di],ax

Incdi

movcounto,di

endm

2)軟件插樁

為了便于測試完成后分析軟件的執行路徑,必須在軟件中加入特定的輸出語句。這樣,我們才能在分析軟件的輸出數據時進行對比,得到軟件的實際運行情況。可在遙控攝像頭的控制及通信軟件中加入下列語句:

MOVDADIAN,PATH[NO]

將軟件中的上述插入點寫入軟件的輸出結果中,測試結束后分析語句時,就可以根據路徑編號來分析軟件的執行路徑。

3)軟件移植

由于遙控攝像頭的控制及通信軟件在實際環境中的執行方式是直接操作底層硬件,而DOS系統中的軟件是和操作系統交互的,因此,為了完成測試,必須對軟件進行移植,使軟件能夠在DOS系統中運行。

在基于8086組建的嵌入式系統中,一般將軟件安排在特定的存儲地址中,系統啟動時,CPU指令首先指向FF000H,在FF000H單元中安排特定的跳轉語句,使軟件跳轉到存儲器中存放軟件的地址,然后系統進入正常運行。然而,在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論