目前,嵌入式軟件的可靠性評價主要依賴測試,因為嵌入式軟件的開發環境和軟件在嵌入式系統中的運行環境是不同的,因此嵌入式軟件測試的最大特點在于一個嵌入式軟件的測試可以分為基于宿主機和基于目標機的不同環境進行測試,這往往也是嵌入式軟件測試與一般軟件測試最大的不同之處。
一、基于宿主機和基于目標機的環境測試
嵌入式軟件測試中基于宿主機環境的測試具有速度快、花費少等特點,但由于是在模擬環境中進行的,因此不能確定軟件在特定硬件環境中的問題。而需要消耗更多的時間和成本是基于目標機環境測試的缺點,并且一般來說嵌入式系統的軟件和硬件在開發的時候有著時間同步性,目標機的環境在整個開發的過程中是有限的,甚至還存在由于環境受限而造成的軟件不可用等情況,因此對于基于目標機環境的嵌入式軟件測試,在很多情況下是遠遠不能滿足其測試需求的。
與此同時,由于在嵌入式軟件的開發過程中,開發環境和微控制器種類使用的多而雜,因此被使用到的各種微型控制器對實時性、可靠性有著更高的要求。這些特性給測試帶來了極大的困難,主要體現在以下幾點:
1、測試策略的選擇,如何在宿主機和目標機環境的測試之間做出取舍;
2、軟件高度依賴硬件,不容易區分軟硬件錯誤;
3、交叉測試平臺的測試用例、測試結果上傳困難;
4、性能測試、確定性能瓶頸存在困難;
5、實施統一的自動化測試比較困難。
二、嵌入式軟件的測試環境
因此,一般采用交叉開發環境來搭建嵌入式軟件的測試環境。如單元測試、集成測試等可以在PC機上完成的測試,一般都在PC機上進行測試,從而可以避免硬件環境的影響,提高測試效率。并且在后期的集成測試中,需要在具體的嵌入式軟件硬件環境中,搭建交叉測試環境來完成嵌入式軟件的測試。交叉測試環境的搭建需要注意以下幾個方面的內容:
1、主機與目標機之間的通信問題
可以通過以太網或者串口進行主機與目標機之間的物理連接,主機與目標機之間的數據格式可以預先進行定義。
2、主機對目標機的測試控制
主要包括主機如何向目標機發送測試用例,如何跟蹤目標機的測試,查看是否正常進行。
3、目標機測試結果的反饋
一般運行嵌入式系統的目標機沒有視頻顯示等便利的測試結果輸出端口,所以目標機上的異常、錯誤信息和正常響應信息等測試結果都需要返回到主機上進行顯示和輸出。在嵌入式軟件測試環境的搭建過程中,需要測試嵌入式系統與已建設備是否協調,硬件設備電氣特征是否正常,以及主機與目標機之間的物理信道是否通暢等,從而保證測試結果不受到嵌入式軟件以外其它因素的影響。
三、嵌入式軟件可靠性測試方法
由于嵌入式系統的獨特性,導致其中運行的嵌入式軟件測試需要專用的測試工具,當今應用于嵌入式軟件測試的主流測試方法,按照其對嵌入式軟件測試技術和方法上的不同,主要可以分為嵌入式軟件靜態分析法、嵌入式軟件動態測試法和嵌入式軟件綜合測試法三類。
1、嵌入式軟件靜態分析法
嵌入式軟件靜態分析法主要是能夠在軟件開發的早期就發現軟件中的缺陷,這對于對軟件的可靠性和安全性有著較高要求的嵌入式軟件十分重要。使用靜態分析發對嵌入式軟件進行測試時,具體的功能主要體現在三個方面:
1)代碼質量分析:采用靜態的方法對軟件質量進行分析與評估。
2)代碼規范性檢測:這種方法目前流行于很多知名企業,制定或執行一定的編碼規范,在軟件開發過程中,可以避免錯誤陷阱和代碼誤解。
3)代碼缺陷分析:對被測代碼進行靜態掃描,查出可能存在的運行出現時錯誤的代碼段,這種分析可以檢測出動態測試狀態下難以捕捉到的錯誤。
2、嵌入式軟件動態測試法
由于嵌入式系統的復雜性,其嵌入式軟件一般都有特殊性,因此對嵌入式軟件進行動態測試較為困難,主要介紹以下幾種嵌入式軟件動態測試方法:
1)嵌入式軟件“白盒”測試:嵌入式軟件白盒測試又稱為結構測試,是指在了解被測裝置內部結構和軟件實現細節的基礎上進行的軟件測試,根據測試需要可以打開被測裝置,重點關注軟件內部的實現細節。
2)嵌入式軟件“黑盒”測試:嵌入式軟件黑盒測試又被稱為功能測試,是指再不打開被測裝置、不考慮其內部邏輯結構的情況下,通過功能測試項目來檢測每個功能是否符合測試要求。
3)嵌入式軟件“灰盒”測試:嵌入式軟件灰盒測試是介于白盒測試與黑盒測試之間的測試方法,該測試方法是建立在可以打開被測裝置內部結構但不關注軟件實現細節的基礎上進行的關鍵信息點測試,這種測試方法只是通過一些表征性的現象、事件、標志來判讀內部的運行狀態,而不像白盒測試中那么詳細。
3、嵌入式軟件綜合測試法
在嵌入式軟件可靠性測試工程中,由于嵌入式系統的復雜性,嵌入式軟件發生的錯誤通常呈現多樣化的特點,導致單一的靜態分析或者動態測試都不能夠完全滿足測試工程的實際需要,因此很多嵌入式軟件的可靠性評價都會采用靜態分析與動態測試相結合的綜合性測試法。
交流可以加黃工QQ2685896890
|