曲長征 陳智博 王民全
摘 要
本文首先分析了嵌入式武控計算機軟件測試的概念以及環境要求,以此為前提,建立了相應的軟件測試仿真平臺,并通過靜態測試、內存泄漏測試和邏輯覆蓋率測試,全面闡述了嵌入式武控計算機軟件測試關鍵技術。
【關鍵詞】嵌入式 武控計算機 軟件測試 關鍵技術
武控計算機主要被應用于導彈武器系統的核心控制部門,其功能在于實現對導彈發生的精確度進行控制,對嵌入式武控計算機實現軟件測試,是保證其性能以及使用可靠性的主要手段,因此,對其關鍵技術進行研究很有必要。
1 嵌入式武控計算機軟件測試
嵌入式武控計算機軟件測試指的是采用人工方法或自動化的手段,實現對計算機軟件的測試,并根據對測試過程以及結果的觀察,發現軟件中存在的漏洞,在對其加以完善的基礎上,提高軟件運行整體可靠性的一種手段。
總的來說,嵌入式武控計算機軟件測試存在三種測試環境可供選擇:
(1)全仿真模擬測試環境;
(2)半實裝仿真測試環境;
(3)全實裝仿真測試環境。
三種環境各有其優勢,但同樣也都存在一定的弱點和缺陷。本文在對比三種測試環境的優缺點的基礎上,選擇了半實裝仿真測試環境作為了主要平臺。
2 嵌入式武控計算機軟件測試平臺的建立
嵌入式武控計算機軟件測試平臺以半實裝仿真測試為主,硬件采用軍用加固計算機,以Compact PCI為總線,支持雙網切換。平臺功能包括建設武控計算機軟件與執行組合模擬器軟件的網絡通信環境,在實現模擬作戰的基礎上,觀察作戰效果,并觀察軟件性能的發揮情況,及時發現問題并解決問題。平臺由被測試軟件運行環境、外圍通訊設備以及運行監視環境三部分構成。在正式開始測試之前,對平臺進行了校驗與測試,將其性能指標以及參數調整到了合理范圍內,并逐一對其功能進行了測試,各方面功能均通過測試,認為可將上述測試平臺應用于武控計算機軟件的測試過程中。
3 嵌入式武控計算機軟件測試關鍵技術
嵌入式武控計算機軟件測試包括靜態測試、內存泄漏測試以及邏輯覆蓋率測試三種,每一測試過程均需要采用不同的關鍵技術。具體如下:
3.1 靜態測試
靜態測試的目的在于對武控計算機軟件在非運行狀態下的數據結構等進行測試,判斷其是否符合技術標準的要求,是否能夠達到為軟件提供良好的運行環境的目的。相對于動態測試而言,靜態測試的效率更高,且容易發現軟件中存在的編碼錯誤等的漏洞,將其運用于武控計算機軟件的測試過程很有必要。除此之外,靜態測試對于自動測試的依賴性不高,采用人工的方法,同樣能夠完成測試,且效果更好。
靜態測試關鍵技術如下:
3.1.1 編碼規則檢查
應重點針對標識符以及指針等進行檢查,針對前者而言,要保證其數量,必須在5個字符以上,在31個字符以下。而針對后者而言,則需要保證其以p開頭。
3.1.2 控制流分析
控制流分析過程中需要注意的而是,必須保證Switch語句之中存在sefault分支,與此同時,保證Return 語句之后沒有代碼。
3.1.3 數據流分析
數據流分析的主要功能在于控制指針,必須保證其處于初始化的狀態。
3.1.4 軟件度量元分析
包括注釋度量(Comments frequency)、局部變量(Number of local variables)以及扇出數(Number of direct calls)等。
3.2 內存泄漏測試
內存泄漏測試指的是程序在內在堆中動態分配了一塊內存空間,但在使用完成之后,出于種種原因,導致內存出現了泄漏問題,即無法釋放等,這一現象便稱為內存泄漏,不僅容易導致對內存片段控制權的喪失,同時也容易導致軟件空間被浪費。內存泄漏測試的功能,便在于有效的避免上述問題的發生。
內存泄漏測試的關鍵技術包括內存泄漏分析與內存泄漏監視。其中,內存泄漏分析的目的主要在于找出導致內存泄漏的原因,并根據原因,提出具體的解決策略。內存泄漏監視的過程較為復雜,需要通過對被測試程序進行插樁來完成。插樁過程中應注意其內容以及位置的問題。要保證其所寫入的代碼的合理性,同時,保證其所寫入的代碼,位置能夠較為合理。需要注意的是,內存泄漏監視需要通過對相應算法的應用來實現。
以循環定時掃描中斷服務程序為例。首先要獲取定時掃描中,中斷服務程序的信號量,在此基礎上,對其信號量獲取的時間進行判斷,如未在限定時間內獲取,則需要重新開始,如符合這一要求,則可以判斷當游標指向的節點上掛接內存泄漏控制是否大于0,如是,需要繼續處理內存空間,如否,則可以結束整個測試過程。
3.3 邏輯覆蓋率測試
邏輯覆蓋率測試的功能在于最大程度的發現軟件邏輯中存在的問題,具體測試準則包括語句覆蓋率測試與分支覆蓋率測試兩種,前者的功能在于以語句為基礎,實現測試,每個語句都需要被測試,次數至少為1。后者的功能在于通過判斷分支的真假,實現對軟件邏輯覆蓋效果的判斷。具體測試次數同樣至少為1。
在邏輯覆蓋率測試過程中,對測試工具的選擇較為重要,以自動化測試為例,其工具可以選擇為Macabe 、TestBed軟插樁來實現測試過程。在測試進行中,對插樁策略的選擇也較為重要,這一點同樣需要被重視。
4 結論
嵌入式武控計算機軟件測試的意義在于發現計算機軟件中存在的問題,在此基礎上,對軟件的漏洞進行優化調整,達到提高軟件運行可靠性的目的,進而為我國軍事領域導彈武器發生整體準確度的提高提供保障,這對于我國軍事領域的長遠發展具有重要的促進作用,同時也是我國綜合國力增強的重要途徑。
參考文獻
[1]楊洋,唐超.嵌入式武控計算機軟件測試關鍵技術的應用[J].科技與創新,2016(20):160.
[2]周凌云.嵌入式武控計算機軟件測試關鍵技術的研究分析[J].科技展望,2015(04):136.
[3]平婕,秦軍,康建華,安元偉.嵌入式軟件測試關鍵技術研究[J].有線電視技術,2010(08):45-47+50.
[4]林永峰,陳亮.面向安全性分析的嵌入式軟件測試方法研究[J].現代電子技術,2016(13):80-83.
作者單位
1.山西農業大學信息學院信息工程系 山西省太谷縣 030800
2.軍械工程學院訓練部 河北省石家莊市 050003