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