嵌入式軟體測試策略

2021-04-12 21:42:01 字數 2501 閱讀 1981

在嵌入式領域目標系統的應用系統日趨複雜,而由於競爭要求產品快速上市,開發技術日新月異,同時硬體發展的日益穩定,而軟體故障卻日益突出,軟體的重要性逐漸引起人們的重視,越來越多的人認識到嵌入式系統的測試勢在必行。提到嵌入式軟體測試,首先要簡單介紹一些軟體工程的一些觀點,現在,被普遍接受的軟體的定義是:軟體(software)是計算機系統中與硬體(hardware)相互依存的另一部分,它包括程式(program)、相關資料(data)及其說明文件(document)。其中程式是按照事先設計的功能和效能要求執行的指令序列;資料是是程式能正常操縱資訊的資料結構;文件是與程式開發維護和使用有關的各種**資料。 

對於一般商用軟體的測試,嵌入式軟體測試有其自身的特點和測試困難。

由於嵌入式系統的自身特點,如實時性(real-timing),記憶體不豐富,i / o通道少,開發工具昂貴,並且與硬體緊密相關cpu種類繁多,等等。嵌入式軟體的開發和測試也就與一般商用軟體的開發和測試策略有了很大的不同,可以說嵌入式軟體是最難測試的一種軟體。

討論嵌入式軟體測試首先就會遇到乙個問題:為什麼不把所有測試都放在目標上進行呢?因為若所有測試都放在目標平台上有很多不利的因素:

1)測試軟體,可能會造成與開發者爭奪時間的瓶頸,避免它只有提供更多的目標環境。

2)目標環境可能還不可行。

3)比起主機平台環境,目標環境通常是不精密的和不方便的。

4)提供給開發者的目標環境和聯合開發環境通常是很昂貴的。

5)開發和測試工作可能會妨礙目標環境已存在持續的應用

從經濟上和開發效率上考慮,軟體開發周期中盡可能大的比例在主機系統環境中進行,  其中包括測試。

確定host-target測試環境後,開發測試人員又會遇到以下的問題:

1)多少開發人員會捲入測試工作(單元測試,軟體整合,系統測試)?

2)多少軟體應該測試,測試會花費多長時間?

3)在主機環境和目標環境有哪些軟體工具,**怎樣,適合怎樣?

4)多少目標環境可以提供給開發者,什麼時候?

5)主機和目標機之間的連線怎樣?

7)使用主機與目標環境之間有什麼限制(如軟體安全標準)?

任何人或組織進行嵌入式軟體的測試都應深入考慮以上問題,結合自身實際情況,選定合理測試策略和方案。

對於嵌入式軟體測試或叫交叉測試(cross-test),在測試的各個階段有著通用的策略:

1.單元測試:

所有單元級測試都可以在主機環境上進行,除非少數情況,特別具體指定了單元測試直接在目標環境進行。最大化在主機環境進行軟體測試的比例,通過盡可能小的目標單元訪問所有目標指定的介面。

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

2.整合測試:

軟體整合也可在主機環境上完成,在主機平台上模擬目標環境執行,當然在目標環境上重複測試也是必須的,在此級別上的確認測試將確定一些環境上的問題,比如記憶體定位和分配上的一些錯誤。

在主機環境上的整合測試的使用,依賴於目標系統的具體功能有多少。有些嵌入式系統與目標環境耦合的非常緊密,若在主機環境做整合是不切實際的。乙個大型軟體的開發可以分幾個級別的整合。低階別的軟體整合在主機平台上完成有很大優勢,越往後的整合越依賴於目標環境。

3.系統測試和確認測試

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

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

包括恢復測試、安全測試、強度測試、效能測試,已超出了軟體測試的範疇,本文暫不討論。

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

總結一下,應用以上測試工具進行.cross-test時的策略:

a)       使用測試工具的插裝功能(主機環境)執行靜態測試分析,並且為動態覆蓋測試準備好一插裝好的軟體**。

b)       使用原始碼在主機環境執行功能測試,修正軟體的錯誤和測試指令碼中的錯誤。

c)        使用插裝後的軟體**執行覆蓋率測試,新增測試用例或修正軟體的錯誤,保證達到所要求的覆蓋率目標。

d)       在目標環境下重複(b),確認軟體在目標環境中執行測試的正確性。

e)       若測試需要達到極端的完整性,最好在目標系統上重複(c),確定軟體的覆蓋率沒有改變。

使用有效的cross-test測試策略可極大的提高嵌入式軟體開發測試的水平和效率,提高嵌入式軟體的質量。

附錄:1)host-target的連線方法簡介:

直接連線

通過**器連線

使用介質進行間接連線

使用prom等傳遞被測軟體

測試的互動介面

無互動介面的連線

嵌入式軟體測試

嵌入式軟體測試 嵌入式軟體測試 嵌入式測試或叫交叉測試 cross test 的日的與非嵌入式軟體是相同的。但是,在嵌入式系統設計中,軟體正越來越多地取代硬體,以降低系統的成本,獲得更大的靈活性,這就需要使用更好的測試方法和工具進行嵌入式和實時軟體的測試。通常嵌入式系統對可靠性的要求比較高。嵌入式系...

嵌入式軟體測試

如何在目標板上實時測試應用程式 為什麼嵌入式系統測試困難?在目標板上測試面臨的系列問題 2 如何累積可重複自動執行的測試 3 如何盡可能減少人工工作 4 如何減少記憶體不夠的問題 這些都是經常碰到但難以解決的問題。隨著專案 越來越大,開發人員數量和 數量都變多,完全懂得目標硬體和軟體工作原理的可能僅...

嵌入式測試

談到嵌入式軟體測試,首先了解什麼是嵌入式系統。對嵌入式系統到如今還沒有乙個具體的概念。如手機 洗衣機 機頂盒 導航系統等等很多系統都是嵌入式系統,可以這樣給他乙個解釋 嵌入式系統是和顯示的物理裝置相結合,控制著某些特定的硬體裝置的系統。而嵌入式軟體則是執行在嵌入式系統中的控制軟體。往往追求實時性 可...