◆孫曉霞
(大連廣播電視大學 遼寧 116021)
嵌入式計算機軟件測試技術探討
◆孫曉霞
(大連廣播電視大學 遼寧 116021)
隨著社會的快速發展,計算機技術發展的步伐也有了跨越式的進程,其中,由于嵌入式計算機功能強大,能夠滿足各類用戶的各種需求,所以嵌入式計算機技術也愈來愈應用廣泛。雖然這類的計算機功能如此強大,但內部結構會較其他類型的復雜。所以,測試嵌入式計算機的時候,會增加很大的難度。因此,本文主要對嵌入式計算機以及如何測試嵌入式軟件進行闡述,并研究測試軟件的相關技術,旨在提高嵌入式計算機應用的范圍以及其應用效果。
嵌入式計算機;軟件測試;仿真機;宿主機;目標機
所謂嵌入式計算機主要是根據指定的一些技術或者功能開發設計的,是計算機系統的一種。也就是把嵌入式的系統與計算機技術相結合同一利用,對計算機的軟硬件功能都進行了更高層面的技術完善,進而達到客戶各式各樣的功能需求。因為,為了某個特定功能而開發的嵌入式計算機,所以在開發此軟件的過程中,既做到了成本管控,同時又能滿足計算機的特定功能,然后結合需求來決定計算機的實際。嵌入式技術能夠使得計算機軟硬件都能得到技術上的優化。所以,嵌入式的計算機能夠提供產品的質量,提高工業生產效率,使得在市場上應用非常廣泛。
為了保證軟件應用的可靠性以及應用質量,需要對軟件進行多次測試,通過多次測試的過程發現錯誤,火災時代碼錯誤或者是分析過程等等,進而讓嵌入式軟件在應用的過程中更加有保證。較其他軟件對比,嵌入式軟件有很多獨特的方面,專用性較強,必須在特定的硬件平臺上運作。同時,嵌入式軟件在開發和運行環境方面也有其各自的特點,即,在宿主機上面進行編輯和編譯等等。另外,嵌入式軟件更具有其復雜的特性,其目標機與主機在處理器和操作系統等方面都存在的明顯的差異,這就導致嵌入式軟件更為復雜。通常情況下,微機和工作站這類較為通用的計算機就是這里所說的宿主機,而且對于目標機作用的關鍵性來說,就是嚴格劃分具有嵌入式系統通訊的宿主機與目標機最直接的方式之一。
一是仿真技術,所謂嵌入式軟件仿真建立在局域網的基礎上,對數據進行集中性管理與處理,其中,仿真測試中較為常見的關鍵技術是仿真技術與仿真測評控制技術,仿真技術的結構包括I/O系統、實時仿真機以及實時調度模板等,對測試結果有專門的分析工具。對嵌入式軟件進行仿真測試,可以模擬現場進行真實場景的模擬,以得出相關數據,另外,根據測試對象不同,能夠逐個分析電信號激勵源的各種仿真,除了總線外,能夠分析其實際運行情況,實現人機交互,完成軟件測評等等。
二是測試數據獲取技術。在當前這個階段下,嵌入式軟件測試的發展瓶頸就是如何將測試過程中的數據進行有效利用,目前,很多對嵌入式軟件進行測試的方法都需要對源代碼測試,這樣在一定程度上就可以保證軟件質量和性能,進而獲得有效的測試數據。目前為止,測試數據獲取的方式較為集中,包括開發工具的虛擬IO指數以及實際物理通道取數和內存取數。其中,實際物理通道取數是目標機與主機之間物理的具體通信方式,利用實際物理通道取數能在很大程度上直接經由數據通信軟件實現與主機之間的通訊,在此基礎進行數據下載,開發工具虛擬 IO指數是一種更高級的開發工具,給測試工作帶來便利。也就是說,在緩存足夠的基礎上,加之修改測試工具的庫,在緩存中寫入輸出數據,測試進行或結束后,對緩存中記錄的數據進行讀取,并在此基礎上以文件的形式保存到主機上。需要重點關注的是,這個方式需要在測試前能夠確定緩存的大小。但是這個方式試用性較高,優勢明顯,主要是表現在開發調試工具上。
一是動態測試技術,所謂動態測試技術作為測試的關鍵技術一質疑,主要測試的重點和對象就是軟件的執行動態能力,可以對系統內存是如何分配使用以及代碼的覆蓋率進行全面深入的分析。在測試的過程中,被測代碼的執行情況就是以上所說的代碼覆蓋率,監控代碼覆蓋率可以助推軟件測試的有效性,全面掌控測試力度,能夠迅速識別哪些數據沒有被測試,進而為軟件工程師的測試工作提供有效的數據參考。對于內存分配的動態信息進行分析時,能夠幫助測試人員準確快速的查找到內存漏洞,進而為優化內存分配而提供整改策略。代碼覆蓋率等方面的計算指標包括諸多方面,有MC/DC語句覆蓋以及分支/判定覆蓋等等,但是內存分配信息就強調高度關注其中的每一個函數、內存分配點內存分配及釋放情況,并及時監視動態內存分配中出現的錯誤信息。
二是靜態測試技術。在目前這個階段,軟件差錯的方式很多,但是較為常用的就是人工審議和走查,但是隨著軟件規模越來越復雜且大型,需要很多的工程師,另外加之源代碼存在的形式較為分散,不好操作,往往很難采用審議和走查。針對以上問題,需要借助有效的方式進而獲得整個軟件系統的框圖,來實現其中的自動化鏈接,這樣就會方便軟件審議和走查。而且靜態測試分析技術可以繪制程序邏輯圖和控制流程、獲取完整的軟件系統邏輯框圖、進行程序路徑分析、可互相轉換生成的邏輯圖、流程圖、框圖等,這樣就能夠設計出高效的測試用例,進而來提高軟件質量以及測試的覆蓋率。
目標機也有其被測試的重點部位,對其綜合性能進行高度評估即是測試的重點,能夠獲取軟件交互以及是否穩定和可靠方面的驗證。從關鍵性技術方面來說,進行軟件測試可以從性能分析、內存分析以及注入故障等三方面進行測試。其中,內存分析在當前階段下,只有軟硬件這兩種分析的手段,主要是可以對動態內存分配進行故障測試,另外,對于故障注入技術來說, 主要是針對系統邊界、容錯性以及強度性這幾個明顯的方面進行測試。性能分析技術具有時間性能方面的優勢,方便開發人員決策利用那種方式優化系統軟件,也就是說,性能分析技術能夠縮小優化范圍,能夠為優化代碼提供優化范圍,進而能夠對消耗方式、實際以及所使用的時間進行準確分析。軟件方面進行內存分析能夠直接影響到代碼的性能,容易干擾實際操作。而硬件方面,由于其對硬件進行內存分析,其工具價格高,所以使用范圍有所限制,僅限于有工具的環境當中。
總之,隨著計算機行業技術的迅猛發展,嵌入式計算機的應用越來越廣,所以,嵌入式計算機的穩定性將決定著其應用的廣泛性,所以,為了其穩定需要對系統進行測試,包括宿主機、目標機以及仿真機,目的就是要對嵌入式計算機全面測試,以提高嵌入式計算機系統的穩定質量、以及有效性。因此,本文主要是測試嵌入式計算機,旨在提高其應用范圍以及應用成效。
[1]張兵星.探討計算機軟件測試的相關技術應用[J].中國管理信息化,2016.
[2]施小敏.嵌入式IO控制器軟件測試關鍵技術研究[D].上海:上海交通大學,2012.
[3]平婕,秦軍,康建華,安元偉.嵌入式軟件測試關鍵技術研究[J].有線電視技術,2010.
[4]周凌云.嵌入式武控計算機軟件測試關鍵技術的研究分析[J].科技展望,2015.
[5]凌楊,邵培南,佟雷,李建軍.基于數字化仿真環境的嵌入式軟件測試方法[J].計算機工程,2011.
[6]高賽軍.嵌入式武控計算機軟件測試關鍵技術研究[D].上海:華東理工大學,2013.
[7]高俊,鄒金萍.計算機軟件測試技術與開發應用研究[J].中國管理信息化,2016.