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