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