摘要:軟體測試的目的是保證軟體滿足需求規格說明。嵌入式軟體有其特殊的失效判定準則,但是,嵌入式軟體測試的目的與非嵌入式軟體是相同的。在嵌入式系統設計中,軟體正越來越多地取代硬體,以降低系統的成本,獲得更大的靈活性,這就需要使用更好的軟體測試方法和軟體測試工具進行嵌入式和實時軟體測試。本文討論可應用於嵌入式軟體的測試方法;介紹現有嵌入式軟體的測試工具。
一、 嵌入式軟體的測試工具
用於輔助嵌入式軟體測試的工具很多,下面對幾模擬較有用的有關嵌入式軟體的測試工具加以介紹和分析。
1 記憶體分析工具
在嵌入式系統中,記憶體約束通常是有限的。記憶體分析工具用來處理在動態記憶體分配中存在的缺陷。當動態記憶體被錯誤地分配後,通常難以再現,可能導致的失效難以追蹤,使用記憶體分析工具可以避免這類缺陷進入功能測試階段。目前有兩類記憶體分析工具--軟體的和硬體的。基於軟體的記憶體分析工具可能會對**的效能造成很大影響,從而嚴重影響實時操作;基於硬體的記憶體分析工具**昂貴,而且只能在工具所限定的執行環境中使用。
2 效能分析工具
在嵌入式系統中,程式的效能通常是非常重要的。經常會有這樣的要求,在特定時間內處理乙個中斷,或生成具有特定定時要求的一幀。開發人員面臨的問題是決定應該對哪一部分**進行優化來改進效能,常常會花大量的時間去優化那些對效能沒有任何影響的**。效能分析工具會提供有關的資料,說明執行時間是如何消耗的,是什麼時候消耗的,以及每個例程所用的時間。根據這些資料,確定哪些例程消耗大部分執行時間,從而可以決定如何優化軟體,獲得更好的時間效能。對於大多數應用來說,大部分執行時間用在相對少量的**上,費時的**估計佔所有軟體總量的5%~20%。效能分析工具不僅能指出哪些例程花費時間,而且與除錯工具聯合使用可以引導開發人員檢視需要優化的特定函式,效能分析工具還可以引導開發人員發現在系統呼叫中存在的錯誤以及程式結構上的缺陷。
3 gui測試工具
很多嵌入式應用帶有某種形式的圖形使用者介面進行互動,有些系統效能測試是根據使用者輸入響應時間進行的。gui測試工具可以作為指令碼工具在開發環境中執行測試用例,其功能包括對操作的記錄和回放、抓取螢幕顯示供以後分析和比較、設定和管理測試過程。很多嵌入式裝置沒有gui,但常常可以對嵌入式裝置進行插裝來執行gui測試指令碼。雖然這種方式可能要求對被測**進行更改,但是節省了功能測試和回歸測試的時間。
4 覆蓋分析工具
在進行白盒測試時,可以使用**覆蓋分析工具追蹤哪些**被執行過。分析過程可以通過插裝來完成,插裝可以是在測試環境中嵌入硬體,也可以是在可執行**中加入軟體,也可以是二者相結合。測試人員對結果資料加以總結,確定哪些**被執行過,哪些**被遺漏了。覆蓋分析工具一般會提供有關功能覆蓋、分支覆蓋、條件覆蓋的資訊。對於嵌入式軟體來說,**覆蓋分析工具可能侵入**的執行,影響實時**的執行過程。基於硬體的**覆蓋分析工具的侵入程度要小一些,但是**一般比較昂貴,而且限制被測**的數量。
二、 嵌入式軟體的測試方法
一般來說,軟體測試有7個基本階段,即單元或模組測試、整合測試、外部功能測試、回歸測試、系統測試、驗收測試、安裝測試。嵌入式軟體測試在4個階段上進行,即模組測試、整合測試、系統測試、硬體/軟體整合測試。前3個階段適用於任何軟體的測試,硬體/軟體整合測試階段是嵌入式軟體所特有的,目的是驗證嵌入式軟體與其所控制的硬體裝置能否正確地互動。
1 白盒測試與黑盒測試 一般來說,軟體測試有兩種基本的方式,即白盒測試方法與黑盒測試方法,嵌入式軟體測試也不例外。
白盒測試或基於**的測試檢查程式的內部設計。根據源**的組織結構查詢軟體缺陷,一般要求測試人員對軟體的結構和作用有詳細的了解。白盒測試與**覆蓋率密切相關,可以在白盒測試的同時計算出測試的**覆蓋率,保證測試的充分性。把100%的**都測試到幾乎是不可能的,所以要選擇最重要的**進行白盒測試。由於嚴格的安全性和可靠性的要求,嵌入式軟體測試同非嵌入式軟體測試相比,通常要求有更高的**覆蓋率。對於嵌入式軟體,白盒測試一般不必在目標硬體上進行,更為實際的方式是在開發環境中通過硬體**進行,所以選取的測試工具應該支援在宿主環境中的測試。
黑盒測試在某些情況下也稱為功能測試。這類測試方法根據軟體的用途和外部特徵查詢軟體缺陷,不需要了解程式的內部結構。黑盒測試最大的優勢在於不依賴**,而是從實際使用的角度進行測試,通過黑盒測試可以發現白盒測試發現不了的問題。因為黑盒測試與需求緊密相關,需求規格說明的質量會直接影響測試的結果,黑盒測試只能限制在需求的範圍內進行。在進行嵌入式軟體黑盒測試時,要把系統的預期用途作為重要依據,根據需求中對負載、定時、效能的要求,判斷軟體是否滿足這些需求規範。為了保證正確地測試,還須要檢驗軟硬體之間的介面。嵌入式軟體黑盒測試的乙個重要方面是極限測試。在使用環境中,通常要求嵌入式軟體的失效過程要平穩,所以,黑盒測試不僅要檢查軟體工作過程,也要檢查軟體失效過程。
2 目標環境測試和宿主環境測試
在嵌入式軟體測試中,常常要在基於目標的測試和基於宿主的測試之間作出折衷。基於目標的測試消耗較多的經費和時間,而基於宿主的測試代價較小,但畢竟是在模擬環境中進行的。目前的趨勢是把更多的測試轉移到宿主環境中進行,但是,目標環境的複雜性和獨特性不可能完全模擬。
在兩個環境中可以發現不同的軟體缺陷,重要的是對目標環境和宿主環境的測試內容有所選擇。在宿主環境中,可以進行邏輯或介面的測試、其它非實時測試以及與硬體無關的測試。在模擬或宿主環境中的測試消耗時間通常相對較少,用除錯工具可以更快地完成除錯和測試任務。而與定時問題有關的白盒測試、中斷測試、硬體介面測試只能在目標環境中進行。在軟體測試週期中,基於目標的測試是在較晚的"硬體/軟體整合測試"階段開始的,如果不更早地在模擬環境中進行白盒測試,而是等到"硬體/軟體整合測試"階段進行全部的白盒測試,將耗費更多的財力和人力。
結論
嵌入式系統在人類生活中發揮著重要的作用,包括飛行控制器這樣的控制系統,以及洗衣機這樣的家用電器。目前,嵌入式系統中軟體的比重越來越大,也越來越複雜,保證嵌入式軟體的可靠性正面臨嚴峻的挑戰。
大多數軟體測試方法都可以直接或間接地用於嵌入式軟體的測試,但是由於作業系統的實時和嵌入式特性,嵌入式軟體測試也面臨一些特殊的問題。雖然目前已經有一些針對嵌入式軟體的測試和除錯工具,但是在有些方面仍存在不足,包括多工作業系統的併發、非侵入式的測試和除錯、嵌入式系統的軟體抽象等。對於嵌入式軟體測試技術的研究和軟體測試工具的開發,仍須要做很多進一步的工作。
Tessy 嵌入式軟體單元測試 整合測試工具
tessy 源自戴姆勒 賓士公司的軟體技術實驗室,由德國hitex 公司負責全球銷售及技術支援服務,是一款針對嵌入式軟體進行單元 整合測試的工具。它可以對c c 進行單元 整合測試,可以自動化搭建測試環境 執行測試 評估測試結果並生成測試報告,其多樣化的測試用例匯入生成方式和與測試需求關聯的特色,使...
嵌入式軟體工業化測試工具LOGISCOPE
摘要 本文論述了軟體的質量要求,在此基礎上,論述了 logiscope 對軟體開發的質量保證工作。如何在軟體開發的各個階段使用這些工具,以保證所開發的軟體的高可靠性和可維護性等。對 logiscope 的合理使用,將有助於開發隊伍通過 iso9001 認證,更便於提高開發隊伍的 cmm 等級。將 l...
嵌入式軟體測試
嵌入式軟體測試 嵌入式軟體測試 嵌入式測試或叫交叉測試 cross test 的日的與非嵌入式軟體是相同的。但是,在嵌入式系統設計中,軟體正越來越多地取代硬體,以降低系統的成本,獲得更大的靈活性,這就需要使用更好的測試方法和工具進行嵌入式和實時軟體的測試。通常嵌入式系統對可靠性的要求比較高。嵌入式系...