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