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