嵌入式軟體測試
嵌入式軟體測試
/嵌入式測試或叫交叉測試(
cross-test
)的日的與非嵌入式軟體是相同的。但是,在嵌入式系統設計中,軟體正越來越多地取代硬體,以降低系統的成本,獲得更大的靈活性,這就需要使用更好的測試方法和工具進行嵌入式和實時軟體的測試。
通常嵌入式系統對可靠性的要求比較高。嵌入式系統安全性的失效可能會導致災難性的後果,即使是非安全性系統,由於大批量生產也會導致嚴重的經濟損失。這就要求對嵌入式系統,包括嵌入式軟體進行嚴格的測試、確認和驗證。隨著越來越多的領域使用軟體和微處理器控制各種嵌入式裝置,對門益複雜的嵌入式軟體進行快速有效的測試愈加顯得重要。
軟體測試的目的是保證軟體滿足需求規格說明。系統失效是系統沒有滿足
—個或多個正式需求規範中所要求的需求項。嵌入式軟體有其特殊的失效判定準則,但是,嵌入式軟體測試的日的與非嵌入式軟體是相同的。在嵌入式系統設計中,軟體正越來越多地取代硬體,以降低系統的成本,獲得更大的靈活性,這就需要使用更好的測試方法和工具進行嵌入式和實時軟體的測試。
一、嵌入式軟體的測試方法
一般來說,軟體測試有
7個基本階段,即單元或模組測試、整合測試、外部功能測試、回歸測試、系統測試、驗收測試、安裝測試。嵌入式軟體測試在
4個階段上進行,即模組測試、整合測試、系統測試、硬體
/軟體整合測試。前
3個階段適用於任何軟體的測試,硬體
/軟體整合測試階段是嵌入式軟體所特有的,目的是驗證嵌入式軟體與其所控制的硬體裝置能否正確地互動。 1
、白盒測試與黑盒測試
一般來說,軟體測試有兩種基本的方式,即白盒測試方法與黑盒測試方法,嵌入式軟體測試也不例外。
白盒測試或基本**的測試檢查程式的內部設計。根據源**的組織結構查詢軟體缺陷,一股要求測試人員對軟體的結構和作用有詳細的了解,白盒測試與**覆蓋率密切相關,可以在白盒測試的同時計算出測試的**的覆蓋率,保證測試的充分性。把
100%的**都測試到幾乎是不可能的,
所以要選擇最重要的**進行白盒測試。由於嚴格的安全性和可靠性的要求,嵌入式軟體測試同非嵌入式軟體測試相比,通常要求有更高的**覆蓋率。對於嵌入式軟體,白盒測試一般不必在目標硬體上進行,更為實際的方式是在開發環境中通過硬體**進行,所以選取的測試工具應該支援在宿主環境中的測試。
黑盒測試在某些情況下也稱為功能測試。這類測試方法根據軟體的用途和外部特徵查詢軟體缺陷,不需要了解程式的內部結構。黑盒測試最大的優勢在於不依賴**,而是從實際使用的角度進行測試,通過黑盒測試可以發現白盒測試發現不了的問題。因為黑盒測試與需求緊密相關,需求規格說明的質量會直接影響測試的結果,黑盒測試只能限制在需求的範圍內進行。在進行嵌入式軟體黑盒測試時,要把系統的預期用途作為重要依據,根據需求中對負載、定時、效能的要求,判斷軟體是否滿足這些需求規範。為了保證正確地測試,還須要檢驗軟硬體之間的介面。嵌入式軟體黑盒測試的乙個重要方面是極限測試。在使用環境中,通常要求嵌入式軟體的失效過程要平穩,所以,黑盒測試不儀要檢查軟體工作過程,也要檢查軟體換效過程。 2
、目標環境測試和宿主環境測試
在嵌入式軟體測試中,常常要在基於目標的測試和基於宿主的測試之間作出折衷。基於目標的測試消耗較多的經費和時間,而基於宿主的測試代價較小,但畢竟是在模擬環境中進行的。目前的趨勢是把更多的測試轉移到宿主環境中進行,但是,目標環境的複雜性和獨特性不可能完全模擬。
在兩個環境中可以出現不同的軟體缺陷,重要的是目標環境和宿主環境的測試內容有所選擇。在宿主環境中,可以進行邏輯或介面的測試、以及與硬體無關的測試。在模擬或宿主環境中的測試消耗時間通常相對較少,用除錯工具可以更快地完成除錯和測試任務。而與定時問題有關的白盒測試、中斷測試、硬體介面測試只能在目標環境中進行。在軟體測試週期中,基於目標的測試是在較晚的「硬體
/軟體整合測試
」階段開始的,如果不更早地在模擬環境中進行白盒測試,而是等到「硬體
/軟體整合測試
」階段進行全部的白盒測試,將耗費更多的財力和人力。
二、嵌入式軟體的測試工具
用於輔助嵌入式軟體測試的工具很多,下面對幾模擬較有用的有關嵌入式軟體的測試工具加以介紹和分析。 1
、記憶體分析工具
在嵌入式系統中,記憶體約束通常是有限的。記憶體分析工具用來處理在動態記憶體分配中存在的缺陷。當動態記憶體被錯誤地分配後,通常難以再現,可能導致的失效難以追蹤,使用記憶體分析工具可以避免這類缺陷進入功能測試階段。目前有兩類記憶體分析工具
——軟體和硬體的。基於軟體的記憶體分析工具可能會對**的效能造成很大影響,從而嚴重影響實時操作;基於硬體的記憶體分析工具**昂貴,而且只能在工具所限定的執行環境中使用。 2
、效能分析工具
在嵌入式系統中,程式的效能通常是非常重要的。經常會有這樣的要求,在特定時間內處理乙個中斷,或生成具有特定定時要求的一幀。開發人面臨的問題是決定應該對哪一部分**進行優化來改進效能,常常會花大量的時間去優化那些對效能沒有任何影響的**。效能分析工具會提供有關的資料,說明執行時間是如何消耗的,是什麼時候消耗的,以及每個例程所用的時間。根據這些資料,確定哪些例程消耗部分執行時間,從而可以決定如何優化軟體,獲得更好的時間效能。對於大多數應用來說,大部分執行時間用在相對少量的**上,費時的**估計佔所有軟體總量的
5%-20%
。效能分析工具不僅能指出哪些例程花費時間,而且與除錯工具聯合使用可以引導開發人員檢視需要優化的特定函式,效能分析工具還可以引導開發人員發現在系統呼叫中存在的錯誤以及程式結構上的缺陷。 3
、gui
測試工具
很多嵌入式應用帶有某種形式的圖形使用者介面進行互動,有些系統效能測試足根掘使用者輸入響應時間進行的。
gui測試工具可以作為指令碼工具有開發環境中執行測試用例,其功能包括對操作的記錄和回放、抓取螢幕顯示供以後分析和比較、設定和管理測試過程。很多嵌入式裝置沒有
gui,但常常可以對嵌入式裝置進行插裝來執行
gui測試指令碼,雖然這種方式可能要求對被測**進行更改,但是節省了功能測試和回歸測試的時間。
詳細:
嵌入式軟體測試
如何在目標板上實時測試應用程式 為什麼嵌入式系統測試困難?在目標板上測試面臨的系列問題 2 如何累積可重複自動執行的測試 3 如何盡可能減少人工工作 4 如何減少記憶體不夠的問題 這些都是經常碰到但難以解決的問題。隨著專案 越來越大,開發人員數量和 數量都變多,完全懂得目標硬體和軟體工作原理的可能僅...
嵌入式軟體測試策略
在嵌入式領域目標系統的應用系統日趨複雜,而由於競爭要求產品快速上市,開發技術日新月異,同時硬體發展的日益穩定,而軟體故障卻日益突出,軟體的重要性逐漸引起人們的重視,越來越多的人認識到嵌入式系統的測試勢在必行。提到嵌入式軟體測試,首先要簡單介紹一些軟體工程的一些觀點,現在,被普遍接受的軟體的定義是 軟...
嵌入式測試
談到嵌入式軟體測試,首先了解什麼是嵌入式系統。對嵌入式系統到如今還沒有乙個具體的概念。如手機 洗衣機 機頂盒 導航系統等等很多系統都是嵌入式系統,可以這樣給他乙個解釋 嵌入式系統是和顯示的物理裝置相結合,控制著某些特定的硬體裝置的系統。而嵌入式軟體則是執行在嵌入式系統中的控制軟體。往往追求實時性 可...