本文摘要:本文從測(cè)試難度大、測(cè)試啟動(dòng)速度快、測(cè)試項(xiàng)目多、測(cè)試復(fù)雜性高四個(gè)方面,分析了嵌入式軟件測(cè)試的特點(diǎn),在此基礎(chǔ)上,對(duì)基于DSP的嵌入式軟件測(cè)試關(guān)鍵技術(shù)進(jìn)行論述。期望通過(guò)本文的研究能夠?qū)SP嵌入式系統(tǒng)運(yùn)行穩(wěn)定性的提升有所幫助。 【關(guān)鍵詞】DSP,嵌入式軟件
本文從測(cè)試難度大、測(cè)試啟動(dòng)速度快、測(cè)試項(xiàng)目多、測(cè)試復(fù)雜性高四個(gè)方面,分析了嵌入式軟件測(cè)試的特點(diǎn),在此基礎(chǔ)上,對(duì)基于DSP的嵌入式軟件測(cè)試關(guān)鍵技術(shù)進(jìn)行論述。期望通過(guò)本文的研究能夠?qū)SP嵌入式系統(tǒng)運(yùn)行穩(wěn)定性的提升有所幫助。
【關(guān)鍵詞】DSP,嵌入式軟件,測(cè)試技術(shù)
近年來(lái),基于DSP的嵌入式系統(tǒng)在各個(gè)領(lǐng)域中得到越來(lái)越廣泛的應(yīng)用,嵌入式軟件作為系統(tǒng)的核心部分,其質(zhì)量?jī)?yōu)劣直接決定整個(gè)系統(tǒng)的使用情況。為確保嵌入式軟件的整體質(zhì)量,在設(shè)計(jì)開(kāi)發(fā)的過(guò)程中,需要采用有效的方法和技術(shù),對(duì)軟件進(jìn)行測(cè)試,從而提高軟件的可靠性。鑒于此,下面就基于DSP的嵌入式軟件測(cè)試關(guān)鍵技術(shù)展開(kāi)分析探討。
1嵌入式軟件測(cè)試的特點(diǎn)
嵌入式軟件開(kāi)發(fā)具備特殊性,使其軟件測(cè)試也帶有一定的特殊性,具體表現(xiàn)為:
1.1測(cè)試難度大
嵌入式軟件的開(kāi)發(fā)規(guī)模小,一般在幾MB內(nèi)開(kāi)發(fā)。但是,嵌入式軟件的開(kāi)發(fā)難度卻相對(duì)較大,需要開(kāi)發(fā)板級(jí)初始化程序、應(yīng)用程序、驅(qū)動(dòng)程序、測(cè)試程序等多樣化的程序,這些程序涉及到低層軟件開(kāi)發(fā),需采用不同的開(kāi)發(fā)技術(shù)手段,在桌面機(jī)上完成開(kāi)發(fā),并在目標(biāo)機(jī)上運(yùn)行程序。在這種情況下,增加了嵌入式軟件測(cè)試的難度,需要對(duì)不同的程序進(jìn)行測(cè)試。
1.2測(cè)試啟動(dòng)速度快
大部分嵌入式軟件會(huì)固化在主存中,如NorFlash等主存,由于主存具備啟動(dòng)速度快的特點(diǎn),所以使得嵌入式軟件也會(huì)在上電幾十秒內(nèi)進(jìn)入到運(yùn)行狀態(tài),既可以在內(nèi)存、存儲(chǔ)系統(tǒng)中運(yùn)行,也可以在RAM中運(yùn)行,要求軟件測(cè)試必須同步快速啟動(dòng),以提高測(cè)試準(zhǔn)確性。
1.3測(cè)試項(xiàng)目多
嵌入式軟件測(cè)試要根據(jù)軟件的功能要求確定測(cè)試項(xiàng)目,主要包括:測(cè)試軟件的快速反應(yīng)能力,確保軟件在不受系統(tǒng)內(nèi)部狀態(tài)影響的情況下也能夠快速應(yīng)對(duì)事件;測(cè)試軟件異步并發(fā)事件處理能力和容錯(cuò)能力,確保嵌入式軟件在死機(jī)或出錯(cuò)的情況下也可以恢復(fù)到運(yùn)行前的狀態(tài)。
1.4測(cè)試復(fù)雜性高
嵌入式軟件的開(kāi)發(fā)平臺(tái)和運(yùn)行平臺(tái)不同,在宿主機(jī)上開(kāi)發(fā),但是卻在目標(biāo)機(jī)上運(yùn)行,這就需要軟件測(cè)試既要在宿主機(jī)上進(jìn)行,也要在目標(biāo)機(jī)上測(cè)試,以保證嵌入式軟件達(dá)到應(yīng)用程序和操作系統(tǒng)的運(yùn)行要求。
2基于DSP的嵌入式軟件測(cè)試關(guān)鍵技術(shù)
目前,在對(duì)基于DSP的嵌入式軟件進(jìn)行測(cè)試時(shí),關(guān)鍵的技術(shù)有兩種,分別是靜態(tài)測(cè)試技術(shù)和動(dòng)態(tài)測(cè)試技術(shù)。
2.1基于DSP的嵌入式軟件靜態(tài)測(cè)試
2.1.1靜態(tài)測(cè)試的基本原理
所謂的靜態(tài)測(cè)試具體是指不對(duì)相關(guān)的程序進(jìn)行執(zhí)行,通過(guò)對(duì)代碼中存在的錯(cuò)誤和缺陷進(jìn)行尋找,進(jìn)而判斷軟件的安全性、可靠性、穩(wěn)定性。該測(cè)試技術(shù)的最終目的是以代碼作為標(biāo)準(zhǔn),對(duì)軟件的整體質(zhì)量進(jìn)行監(jiān)控。由于靜態(tài)測(cè)試無(wú)需運(yùn)行程序,加之測(cè)試中對(duì)各方面條件的要求較低,從而使其成為基于DSP的嵌入式軟件測(cè)試中的關(guān)鍵技術(shù)之一。
對(duì)于靜態(tài)測(cè)試而言,其中較為重要的一項(xiàng)功能是軟件檢查,通過(guò)檢查能夠發(fā)現(xiàn)軟件的表示與描述是否一致,二者之間有無(wú)沖突,這是其它測(cè)試的執(zhí)行前提。靜態(tài)測(cè)試以檢測(cè)分析為主,如可分析程序語(yǔ)法的詞匯,檢查獨(dú)立語(yǔ)句的結(jié)構(gòu),該測(cè)試技術(shù)的主要步驟有對(duì)軟件程序的代碼進(jìn)行檢查、分析軟件中獨(dú)立語(yǔ)句的結(jié)構(gòu)、度量代碼的質(zhì)量等。
2.1.2靜態(tài)測(cè)試類型
靜態(tài)測(cè)試技術(shù)分為兩種類型,一種是人工手動(dòng)型,另一種是計(jì)算機(jī)自動(dòng)型。前者是以人工的方式進(jìn)行閱讀分析,進(jìn)而完成軟件的測(cè)試。在基于DSP的嵌入式軟件中,部分邏輯性錯(cuò)誤無(wú)法在系統(tǒng)中顯現(xiàn)出來(lái),因此,需要通過(guò)人工復(fù)查的方式,找到這些錯(cuò)誤,并進(jìn)行優(yōu)化。利用人工測(cè)試,最高能夠檢查出70%左右的邏輯錯(cuò)誤;后者是借助計(jì)算機(jī)對(duì)測(cè)試過(guò)程進(jìn)行輔助分析,以各種分析工具為依托,對(duì)被測(cè)軟件進(jìn)行靜態(tài)分析,從分析結(jié)果中提取出有價(jià)值的信息,比如變量、參數(shù)的匹配程度、循環(huán)嵌套、無(wú)法執(zhí)行的代碼等等。
2.1.3靜態(tài)測(cè)試的應(yīng)用優(yōu)勢(shì)
靜態(tài)測(cè)試主要包括人工檢測(cè)和計(jì)算機(jī)輔助測(cè)試兩種技術(shù)方法。在人工檢測(cè)中,可充分發(fā)揮人的優(yōu)勢(shì),利用思維互補(bǔ)的方式通過(guò)人在軟件開(kāi)發(fā)中形成的思維邏輯去識(shí)別邏輯錯(cuò)誤,檢驗(yàn)出常見(jiàn)的邏輯錯(cuò)誤,提高檢驗(yàn)效果。在計(jì)算機(jī)輔助測(cè)試中,可利用Polyspace軟件進(jìn)行靜態(tài)分析,具體檢查內(nèi)容包括:檢查C和C++語(yǔ)言編碼是否規(guī)范;檢查C和C++語(yǔ)言代碼中的潛在軟件是否存在錯(cuò)誤,包括程序、內(nèi)存、嵌入式軟件信息是否存在安全問(wèn)題;對(duì)堆棧大小估計(jì)等軟件代碼進(jìn)行質(zhì)量度量和分析;檢查軟件代碼的安全性,及時(shí)排除軟件運(yùn)行中可能存在的錯(cuò)誤。
利用計(jì)算機(jī)輔助測(cè)試,可證明代碼的安全性,達(dá)到窮舉式的測(cè)試效果。如果在適當(dāng)流程中采用計(jì)算機(jī)輔助測(cè)試及時(shí)進(jìn)行集成測(cè)試,可大幅度提高代碼驗(yàn)證率,減少魯棒性測(cè)試工作量20%以上,縮短人工代碼檢查時(shí)間40%以上。除此之外,還能夠避免軟件錯(cuò)誤發(fā)布,及時(shí)修復(fù)已經(jīng)發(fā)現(xiàn)的錯(cuò)誤,節(jié)省錯(cuò)誤修復(fù)時(shí)間。
2.1.4靜態(tài)測(cè)試技術(shù)的具體應(yīng)用
(1)在靜態(tài)測(cè)試中需要利用測(cè)試工具分析源代碼語(yǔ)法是否存在錯(cuò)誤,由于DSP嵌入式軟件擁有多個(gè)文件,創(chuàng)建了不同屬性集合Group,所以在軟件測(cè)試中,可將多個(gè)文件視為一個(gè)整體,對(duì)整體進(jìn)行測(cè)試,得到系統(tǒng)分析報(bào)告,驗(yàn)證編碼規(guī)則和代碼是否存在錯(cuò)誤,并對(duì)程序質(zhì)量進(jìn)行評(píng)估。
(2)在測(cè)試中,利用指定的編碼規(guī)則集可完成軟件源代碼檢測(cè),同時(shí)也可以滿足用戶的需求,自行制定編碼規(guī)則集進(jìn)行測(cè)試,驗(yàn)證編碼規(guī)則是否存在錯(cuò)誤。在程序質(zhì)量評(píng)估中,利用LDRATestbed等測(cè)試工具收集軟件代碼的相關(guān)信息,檢測(cè)軟件是否滿足質(zhì)量要求,并且檢測(cè)使用數(shù)組訪問(wèn)越界、空指針等軟件是否存在代碼錯(cuò)誤。
(3)在靜態(tài)測(cè)試中,根據(jù)測(cè)試要求選擇測(cè)試項(xiàng)目,調(diào)用相應(yīng)的靜態(tài)函數(shù),確保函數(shù)能夠完成軟件的復(fù)雜度分析。在分析用戶編碼規(guī)則中的源代碼時(shí),要檢測(cè)是否存在違法編碼規(guī)則的情況,分析代碼的清晰性,獲取全面的軟件質(zhì)量測(cè)試報(bào)告。同時(shí),深入分析測(cè)試報(bào)告,判斷軟件是否仍然存在著錯(cuò)誤程序。
2.2基于DSP的嵌入式軟件動(dòng)態(tài)測(cè)試
2.2.1動(dòng)態(tài)測(cè)試
所謂的動(dòng)態(tài)測(cè)試具體是指在真實(shí)或是仿真模擬環(huán)境中,使被測(cè)試的軟件程序代碼正常運(yùn)行,通過(guò)觀察的方法,對(duì)程序運(yùn)行過(guò)程中表現(xiàn)出來(lái)的各種情況進(jìn)行分析,如功能、邏輯、行為等等,從中找出錯(cuò)誤,達(dá)到測(cè)試的目的。
2.2.2動(dòng)態(tài)測(cè)試方法
目前,動(dòng)態(tài)測(cè)試比較常用的方法有以下兩種,一種是黑盒測(cè)試,另一種是白盒測(cè)試。前者是以軟件的具體用途及其外部特征作為主要依據(jù),對(duì)其中存在的缺陷進(jìn)行查找,該方法的優(yōu)點(diǎn)在于不需要對(duì)軟件程序的內(nèi)部結(jié)構(gòu)進(jìn)行了解,從軟件使用的角度出發(fā)進(jìn)行測(cè)試,與軟件的應(yīng)用需求密切結(jié)合。采用黑盒測(cè)試對(duì)基于DSP的嵌入式軟件進(jìn)行測(cè)試的過(guò)程中,為判斷軟件是否達(dá)到預(yù)期中的應(yīng)用要求,應(yīng)當(dāng)對(duì)如下幾個(gè)方面進(jìn)行測(cè)試:負(fù)載、性能、定時(shí)等等。
后者以軟件程序的內(nèi)部邏輯結(jié)構(gòu)為依據(jù)進(jìn)行測(cè)試,利用源代碼,對(duì)軟件中存在的缺陷進(jìn)行查找,從而達(dá)到測(cè)試的目的。對(duì)于白盒測(cè)試而言,其效果主要與代碼覆蓋率有關(guān),是評(píng)價(jià)該方法的重要指標(biāo)。白盒測(cè)試的覆蓋分析工具能夠提供如下信息:語(yǔ)句覆蓋率、分支覆蓋率以及條件覆蓋率等等。
2.2.3動(dòng)態(tài)測(cè)試的具體應(yīng)用
在運(yùn)用動(dòng)態(tài)測(cè)試技術(shù)對(duì)基于DSP的嵌入式軟件進(jìn)行測(cè)試的過(guò)程中,可使用相關(guān)的測(cè)試工具,對(duì)軟件的實(shí)時(shí)運(yùn)行情況進(jìn)行記錄,據(jù)此生成覆蓋率報(bào)告,然后按照可度量覆蓋標(biāo)準(zhǔn),對(duì)軟件已執(zhí)行的語(yǔ)句行數(shù)進(jìn)行確定,通過(guò)覆蓋率判斷,確定引起變化的條件數(shù)量。
具體測(cè)試時(shí),需要用到編譯器和仿真模擬器,并以聯(lián)協(xié)的方式搭建測(cè)試環(huán)境,選擇開(kāi)發(fā)板,將下載的測(cè)試程序?qū)肽M器中,從而使測(cè)試環(huán)境無(wú)限接近于真實(shí)的目標(biāo)機(jī),在此基礎(chǔ)上對(duì)測(cè)試程序進(jìn)行執(zhí)行,進(jìn)而獲得測(cè)試結(jié)果。當(dāng)測(cè)試環(huán)境搭建完畢后,程序設(shè)計(jì)人員應(yīng)當(dāng)按照測(cè)試需求,對(duì)相關(guān)的參數(shù)進(jìn)行配置,執(zhí)行動(dòng)態(tài)測(cè)試,檢測(cè)程序代碼,確定覆蓋率,根據(jù)測(cè)試結(jié)果找出軟件中存在的缺陷,據(jù)此進(jìn)行修補(bǔ)和優(yōu)化。
3結(jié)語(yǔ)
綜上所述,隨著基于DSP的嵌入式系統(tǒng)應(yīng)用日益廣泛,對(duì)其核心部分的嵌入式軟件進(jìn)行測(cè)試顯得尤為必要。在具體測(cè)試的過(guò)程中,既可以采用靜態(tài)測(cè)試技術(shù),也可以采用動(dòng)態(tài)測(cè)試技術(shù),如果系統(tǒng)對(duì)嵌入式軟件的整體質(zhì)量要求較高,可將兩種技術(shù)聯(lián)合使用,由此能夠提高測(cè)試結(jié)果的準(zhǔn)確性。未來(lái)一段時(shí)期,應(yīng)當(dāng)加大對(duì)嵌入式軟件測(cè)試技術(shù)的研究力度,除對(duì)現(xiàn)有的技術(shù)進(jìn)行不斷改進(jìn)和完善之外,還應(yīng)開(kāi)發(fā)一些新的技術(shù),從而更好地為嵌入式軟件測(cè)試服務(wù)。
參考文獻(xiàn)
[1]楊珂瑤,張小芳,曾雷杰.基于DSP的嵌入式軟件測(cè)試方法[J].計(jì)算機(jī)與現(xiàn)代化,2014(10):61-65.
計(jì)算機(jī)論文投稿刊物:計(jì)算機(jī)與現(xiàn)代化其特點(diǎn)是:時(shí)效性強(qiáng),密切跟蹤計(jì)算機(jī)科技發(fā)展動(dòng)態(tài),以最快的速度精選刊登計(jì)算機(jī)專業(yè)的新理論、新技術(shù)及其在各領(lǐng)域應(yīng)用成果的論文。既有相當(dāng)?shù)膶W(xué)術(shù)水平,又有實(shí)際指導(dǎo)意義。編輯管理規(guī)范,系《CAJ-CD規(guī)范》執(zhí)行優(yōu)秀獎(jiǎng)期刊。
轉(zhuǎn)載請(qǐng)注明來(lái)自發(fā)表學(xué)術(shù)論文網(wǎng):http:///dzlw/20860.html