張海軍
摘要:嵌入式軟件是最難測試的一種軟件,不同測試階段需要建立不同的測試環境、采用不同的測試技術。本文對構建嵌入式軟件測試環境的關鍵測試技術進行了研究。
關鍵詞:嵌入式;軟件測試;關鍵技術
引言
在嵌入式軟件測試的不同階段,只有選擇和建立恰當的測試環境,才能保證嵌入式軟件測試的質量和效率,而嵌入式軟件測試環境的建立是一項復雜、困難的工作,需要考慮多方面的因素、解決很多技術難題。
1、嵌入式軟件白盒測試關鍵技術
1.1 靜態分析技術
嵌入式軟件主要采用C、匯編語言來實現。采用C語言開發的嵌入式軟件,一般符合統一標準,目前有許多測試工具支持其靜態分析,主要有McCabe、Cantata、Clockwork、TestBed等。但是采用匯編語言開發的嵌入式軟件,由于CPU的不同,必須針對特定的匯編語言專門開發相應的工具。
1.2 覆蓋率測試技術
在進行覆蓋率測試時,程序插裝和覆蓋率數據的獲取是關鍵環節,一般有純軟件方式、純硬件方式和軟硬件結合方式。純軟件的測試工具主要有TestBed、Logiscope等。純硬件的方式是利用硬件工具,在線實時對總線上的數據進行采樣。軟硬結合的方式是綜合純硬件和純軟件兩種實現方式之后的一種方式。
1.3 內存測試技術
內存測試的手段主要包括靜態檢查、動態檢查、人工測試等。靜態檢查是指使用內存靜態檢查工具(如PolySpace)在不執行代碼的情況下來檢查內存方問題;動態檢查使用內存動態檢查工具(如Insure++)在軟件運行時進行檢查;人工測試是自行設計專門的用例來檢查可能存在的內存缺陷。
2、嵌入式軟件黑盒測試關鍵技術
2.1 仿真建模技術
嵌入式軟件通常運行于特定的物理環境中,外部交聯設備復雜,在進行測試時需要構建仿真測試環境。根據運行環境和實際環境的差異,嵌入式軟件測試環境可分為全數字仿真測試環境、半實物仿真測試環境和全實物仿真測試環境。典型的嵌入式軟件仿真測試環境構建有:ADS、GESTE等。
2.2 目標數據生成技術
嵌入式軟件性能的好壞,往往可以從一些特殊情況的處理能夠直接反映出來。這些特殊情況不僅直接影響其性能指標的好壞,更有甚者可以導致嚴重的后果。但是,利用真實目標進行測試,有些特殊情況根本不可能或很難實現,因此,有必要采用模擬的手段來實現,即研究如何利用matlab等軟件產生模擬數據。
2.3 測試用例設計方法
很多嵌入式軟件涉及眾多條件參數組合的輸入,在設計測試用例時,全邏輯覆蓋必然使測試用例的數量急劇膨脹。而如果采用人工隨機選擇參數組合進行測試,則測試的充分性和正確性又難以保證,所以需要采用正交實驗法、組合設計、判定表法等特殊的測試用例設計方法,來縮減測試用例規模,同時也能保證滿足規定的測試覆蓋率要求。
2.4 測試數據獲取技術
嵌入式軟件測試的困難之一是在目標機或仿真機上如何注入測試輸入數據以及獲取測試過程中產生的數據。嵌入式軟件測試數據輸入和獲取的手段包括:外接鍵盤顯示器、在線輔助設備、I/O接口、邊界掃描、總線監聽、在線仿真器ICE等。嵌入式系統的靈活性導致其采用的I/O端口、總線標準多種多樣,在實際測試任務中,要針對具體裝備的特點和測試內容,綜合考慮采用哪種數據輸入獲取方式。
2.5 數據分析處理技術
數據處理類嵌入式軟件,一般涉及到復雜的數學運算,這樣就帶來計算結果的正確性如何判斷的問題。對于一組輸入數據和結果數據,需要將輸入數據輸入仿真程序計算得到一個計算結果數據,將其與獲取的結果數據進行比較,來判斷程序運算功能的正確性。這里需要注意兩個問題:第一,仿真程序的正確性;第二,仿真計算結果和采集實際結果的誤差范圍。
結束語
雖然日前已經有一些針對嵌入式軟件的測試工具和軟件,但構建嵌入式軟件測試環境困難多、技術復雜,在有些方面仍存在不足,需要通過對嵌入式軟件仿真測試環境和嵌入式軟件測試技術進行不斷研究,進一步完善和研制更先進的測試工具。
參考文獻:
[1] 蔣崇武,楊順昆,劉斌. 面向嵌入式軟件測試的仿真建模[J]. 計算機工程,2008,34(4):87-89.
[2] 平婕,秦 軍,康建華,安元偉. 嵌入式軟件測試關鍵技術研究[J]. 計算機應用,2010,8:45-47.
[3] 周濤. 航天型號軟件測試[M]. 北京:宇航出版社,1999.