謝曉麗 吳曦
摘要:嵌入式系統的應用越來越廣泛,但仍然存在著許多缺陷,而單元測試則是檢驗嵌入式軟件最有效的方式。單元測試對于嵌入式軟件的檢測主要體現在編碼階段,對每一個軟件單元的性能、功能、接口等進行測試,發現單元內可能存在的軟件缺陷,以保證軟件質量。
關鍵詞:嵌入式軟件;測試環境;單元測試;軟件測試
中圖分類號:TP311.53?文獻標識碼:A?文章編號:1672-9129(2020)09-0041-01
近年來我國嵌入式技術得到了很大的發展,但嵌入式系統具有一定的復雜性,仍需要進一步進行完善。在嵌入式軟件測試研究中,單元測試是最有效的一種測試方法,本文著重對嵌入式軟件單元測試研究進行探討。
1?嵌入式軟件測試分析
1.1嵌入式軟件測試環境分析。真實環境是一種最有效的測試環境,但在實際應用中存在著很多弊端,如消耗的資金較大,測試人員的安全也不能得到全面的保障。因而仿真環境在這樣的背景之下發展得越來越迅速。仿真技術主要包括以下幾個種類:其一,全實物仿真測試環境;其二,半實物仿真測試環境;其三;全數字仿真測試環境。
所謂全實物仿真主要指的是,在完全真實的環境之中對軟件進行測試,設備與嵌入式軟件建立起真實的連接,這屬于一種閉環測試,其實最大的優點是對于測試環境的要求比較低。
所謂半實物仿真系統主要指的是,測試的環境為仿真模型,測試的對象為真實系統,屬于一種非侵入性閉環測試。半實物仿真系統與全實物仿真相比有更高的要求;
而全數字仿真系統主要是指通過數字化硬件環境模型進行測試,測試的對象為相關的硬件和軟件,與上述兩種方式相比對測試環境的要求更高。
嵌入式軟件測試環境中還存在另一種交叉開發環境,面臨著以下幾種主要問題:
第一,目標機與主機之間通信如何連接;
第二,主機對目標程序的控制如何順利展開;
第三,目標機對于主機測試信息的反饋如何能夠更加直觀、高效。
1.2嵌入式軟件測試技術分析。嵌入式軟件測試技術具有更強的針對性和特殊性,因此在進行測試的過程中,測試人員需要使用專業的測試工具和軟件。嵌入式軟件測試需要更專業的技術進行支撐,如果測試工具和軟件過于單一、通用性差,那么測試的執行工作有可能無法順利展開,測試的結果也會因此受到影響。
嵌入式軟件測試工具主要包括以下三種:硬件測試工具、軟件測試工具以及綜合測試工具。軟件測試工具是在主機上通過軟件仿真技術,對目標機進行測試。軟件測試工具具有很強的優勢,因此被廣泛使用,Host/Target是具有代表性的軟件測試工具。軟件插樁技術是上述測試軟件的主要測試技術,對待測軟件運行存在的問題會隨時進行檢測。
嵌入式硬件測試工具通常運用在測試工作以及硬件設計之中,硬件測試工具不能對內存進行檢測和分配,因而得到的結果也并沒有很強的客觀性和確定性。
嵌入式軟件測試工具綜合兼具了硬件和軟件兩種測試的優勢,但是對于硬件有很強的依賴性。
2?單元測試用例方法
單元測試用例主要包括以下幾種測試方法:(1)模塊接口測試,主要指的是,利用測試軟件,通過對被測模塊的數據流進行全面測試,詳細對各種輸入的參數進行統一的測試。(2)所有局部數據結構檢驗,主要指的是數據的一致性,例如變量之間的配備,以及全局數據的正確性。(3)所有模塊路徑測試,主要是一種循環性的測試,將各種各樣的路徑和循環進行針對性測試,針對計算的準確性進行控制,發現錯誤及時糾正。(4)錯誤處理測試,主要指的是當出現檢驗錯誤的時候,要對錯誤進行處理,處理之后的結果還要進行測試,只有這樣才能夠使軟件的缺陷定位更加準確,使軟件的使用性進一步增強。(5)邊界檢驗測試,主要是對數據流進行測試,并且通過比較值來判斷是否可能存在錯誤。在程序設計過程中,要對邊界數據進行詳細的測試。雖然測試的過程相對復雜,但是單元測試能夠很好的對其進行檢驗。并對這些數據進行分類檢測,創建相對應的函數,對函數產生的數值范圍進行分析,確保軟件的正常運行。(6)邏輯覆蓋測試,主要是針對待測代碼的邏輯結構的各種執行代碼進行測試,還要對驅動被測代碼進行測試,其中主要包括語句覆蓋、條件覆蓋、判定覆蓋等主要部分。(7)路徑覆蓋,就是對覆蓋過程中可能存在的多種路徑進行詳細的分析,具有很強的優勢,但是仍然存在著一定的缺陷。由于路徑覆蓋需要對模塊所有的路徑進行測試,則需要設計大量的用例,這就容易在循環測試的過程中產生數據的誤差。單元測試的主要方法包括以下幾種:
(1)功能分解。單元測試功能分解主要指的是,按照規則與標準對待測單元中的每一個性能和功能進行分解檢查,全方面覆蓋所有功能,是最常用的一種單元測試方法。
(2)等價類劃分。單元測試功能等價類劃分主要指的是,按照測試規則和目標,對待測程序進行不同部分的輸入域劃分,通過選擇具有代表性的數進行測試的方法。
(3)邊界值分析。單元測試功能邊界值分析主要指的是,對待測程序進行邊界值的測試,是一種相對模糊的范圍測試。
(4)判定表。單元測試功能策略表又稱之為判定表,以策略表為測試的主體,具有極強的嚴密性,因此能夠更好的保證測試結果的客觀性與準確性。該測試方法可以對復雜的待測系統進行測試,并且可以自動對測試結果進行合并與優化,使策略表更加清晰準確。
(5)正交實驗法。所謂正交實驗法主要指的是,通過對實驗點進行分析與選取,對實驗進行合理安排的一種規范性設計方法。
結語:主機是嵌入式軟件的開發主體,嵌入式軟件單元測試的研究已經逐漸受到了相關學者的重視。仿真測試方法已經廣泛使用到嵌入式軟件測試之中。單元測試工作雖然比較復雜,但是能為嵌入式軟件進行最優化的檢測,通過單元測試可以更早的發現軟件缺陷,縮短開發周期,降低軟件的開發成本。
參考文獻:
[1]衛征.嵌入式軟件測試自動化技術研究[D].北京工業大學,2019.
[2]盛曉彥.嵌入式軟件測試技術的研究[D].貴州大學,2019.
[3]欒圖.嵌入式軟件測試方法的研究[D].大連理工大學,2019.