張海軍
摘 要:測試數據輸入和獲取是嵌入式軟件測試的關鍵技術。首先分析了在進行嵌入式軟件測試時,導致數據輸入和獲取困難的幾點原因,然后根據多年的測試經驗,對嵌入式軟件測試數據輸入和獲取的多種手段和方式進行了介紹,最后說明了在進行嵌入式軟件測試數據輸入和獲取時的注意事項。
關鍵詞:嵌入式軟件測試;數據輸入;數據獲取
在進行嵌入式軟件測試時,會遇到多種困難,其中之一便是如何輸入和獲取數據。在最終使用環境中進行測試時,嵌入式系統通常沒有或只有簡單的顯示設備,也沒有存儲設備,不能保存計算結果,只有在線實時觀測或是將數據傳輸到宿主機上才能進行結果分析,這樣一來,如何建立宿主機與目標機之間的物理邏輯連接,以便能注入測試數據,并能在正確的時間采集到正確的結果數據以恰當地發現問題,就成為了主要挑戰。
一、嵌入式軟件測試數據輸入和獲取困難的原因
(一)硬件嵌入性
嵌入式軟件一般運行在各種嵌入式系統中,而這些系統通常僅能完成特殊的任務,系統硬件專門設計,嵌入式軟件離開了這些硬件就無法運行。另外,嵌入式系統在運行過程中往往需要與多個交聯設備進行數據交互。因此,嵌入式軟件只有在最終實際運行環境中,才能完整、深入考核其各項功能和性能指標。
(二)數據缺乏“可視性”
嵌入式系統往往不像商業計算機那樣具有鍵盤、顯示屏、磁盤機和其他各種有效的用戶界面和存儲設備。由于嵌入式系統通常是面向某個特定應用的,所以嵌入式系統的硬件和軟件在設計時,要充分考慮系統的尺寸、功耗等要求,因此往往會省略掉顯示屏、接口等不必要的設備。
(三)實時性
嵌入式系統廣泛應用于生產過程控制、數據采集、傳輸通信等場合,實時性是對嵌入式系統的普遍要求,是設計者和用戶重點考慮的一個重要指標。而實時性強,軟件運行會產生大量數據,這給其測試帶來了很大的困難。
二、嵌入式軟件測試數據輸入和獲取的主要手段
嵌入式軟件測試數據輸入和獲取的手段包括:外接鍵盤顯示器、在線輔助設備、I/O接口、邊界掃描、總線監聽、在線仿真器ICE等。
(1)外接鍵盤顯示器:嵌入式Linux、VxWorks等嵌入式平臺下的軟件,通常系統硬件留有接口,可以直接外接鍵盤、顯示器等,這樣在特定的調試狀態下,就可以直接輸入數據和獲取到軟件運行過程中產生的狀態和數據。
(2)在線輔助設備:通過嵌入式系統的其他在線輔助設備,比如:數碼管、指示燈以及交聯設備的顯示裝置等,也可以間接獲取嵌入式軟件的運行狀態和數據。
(3)I/O接口:通過直接連接標準的網口、串口等I/O接口,配合相應的軟件工具,比如:EtherpeekNX、串口調試助手等,可以實現輸入數據和獲取結果。
(4)邊界掃描:邊界掃描測試是通過在芯片的每個I/O腳附加一個邊界掃描單元以及一些附加的測試控制邏輯實現的。現在,所有復雜的IC芯片(比如:DSP、FPGA等)幾乎都具有邊界掃描端口(即JTAG控制接口)。邊界掃描測試有兩大優點:一個是方便芯片的故障定位,另一個是通過邊界掃描通道來使芯片處于某個特定的功能模式。測試時,工具軟件通常是各個處理器的開發環境,通過JTAG仿真器連接至嵌入式硬件,可以實現實時數據的輸入及獲取。
(5)總線監聽:是一種監測被測系統總線數據流的手段,具有實時性強、支持多通道、顯示方式多樣等特點。CodeTEST、RTInsight、ADS2等測試工具以及邏輯分析儀、示波器等硬件工具都能實現總線監聽。總線監聽的連線方式,分為標準探頭和飛線兩種。
(6)在線仿真器ICE:用來模擬嵌入式系統中的中央處理器,它通過一個插頭插在一個與CPU一樣的底座上。在線仿真器提供了一面通向嵌入式系統內部的窗戶,程序員用在線仿真器將程序下載到系統運行后,可以對程序進行逐步跟蹤并察看數據的變化。
三、嵌入式軟件測試數據輸入和獲取的注意事項
在進行嵌入式軟件測試數據輸入和獲取時需要注意以下幾個方面:
(1)在進行硬件連接時,不能影響到嵌入式軟件的運行狀態,有必要時要進行檢查和確認,否則可能會使軟件運行不穩定甚至改變軟件運行狀態。
(2)對于實時性非常強、數據量大的嵌入式軟件,在選擇數據獲取的方式時,必須要檢查數據的完整性和正確性。否則,有可能出現獲取到的數據不完整甚至是錯誤的,影響軟件測試的質量。
(3)在選擇工具軟件和硬件時,要考慮其可靠性和正確性,盡量選取公開發行的穩定版。
(4)嵌入式系統一般比較復雜,采取的任何數據輸入和獲取方式,一定要實現研制方或開發方進行交流和確認,避免由于自身不熟悉和疏忽導致測試中出現問題。
四、結語
嵌入式軟件測試數據輸入和獲取是嵌入式軟件測試的關鍵技術,其準確性、實時性和可靠性對測試質量有決定性影響。由于嵌入式系統平臺的多樣性和復雜性,因此在進行嵌入式軟件測試時,需要根據被測軟件的特點和測試要求,對數據輸入和獲取方法進行定制設計,靈活采用多種方式,可以極大提高測試質量和效率。
參考文獻:
[1]葛德明.實時嵌入式軟件的測試技術[J].電子測試,2018(10).
[2]孫昌愛,靳若明,劉超,金茂忠.實時嵌入式軟件的測試技術[J].小型微型計算機系統,2000(09).
[3]鄭人杰.計算機軟件測試技術[M].清華大學出版社,1992.