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