杜延,嵌入式軟件測試技術(shù)的探討,移動通信,2006年8月增刊
1. 嵌入式軟件測試技術(shù)
軟件測試有兩種基本方法,即黑盒測試和白盒測試,嵌入式軟件測試也不例外。
由于嵌入式軟件和硬件是不可分離的,嵌入式軟件的測試需要在相關(guān)的硬件平臺上進(jìn)行。脫離硬件,嵌入式軟件測試就無法進(jìn)行。這與主機平臺軟件的測試是不同的,主機平臺軟件的測試不需要專門的硬件平臺,只需在計算機平臺上進(jìn)行。
2. 黑盒測試技術(shù)
又稱為功能測試,是一種基于需求的測試。將被測試的軟件看作是一個盒子,黑盒測試不需要了解程序的內(nèi)部結(jié)果,只是根據(jù)軟件的用途和外部特征查找軟件缺陷。
黑盒測試的最大優(yōu)勢在于不依賴代碼,而是從實際使用的角度進(jìn)行測試。因為黑盒測試與需求緊密相關(guān),需求規(guī)格說明的質(zhì)量會直接影響測試的結(jié)果,黑盒測試只能限制在需求的范圍內(nèi)。
嵌入式軟件的黑盒測試一般在嵌入式系統(tǒng)上進(jìn)行,不需要借助于測試工具和測試平臺。
3. 白盒測試技術(shù)
又稱為結(jié)構(gòu)化測試,是一種基于結(jié)構(gòu)的測試。白盒是指可以看到盒子的內(nèi)部結(jié)構(gòu)和運作情況。白盒測試是一種按照軟件內(nèi)部的邏輯結(jié)構(gòu)和編碼結(jié)構(gòu)設(shè)計數(shù)據(jù)的方法,主要進(jìn)行軟件的控制流測試(語句覆蓋、分支條件判斷覆蓋等)和數(shù)據(jù)流測試。白盒測試要根據(jù)源代碼的組織結(jié)構(gòu)查找軟件缺陷,要求測試人員對軟件的結(jié)構(gòu)和作用有詳細(xì)的了解,一般選擇最重要的代碼進(jìn)行白盒測試。
覆蓋率和性能是衡量嵌入式軟件質(zhì)量的重要指標(biāo),也是白盒測試的主要內(nèi)容。
覆蓋率分析是通過對源代碼插裝來實現(xiàn)。它的原理是:對被測試軟件進(jìn)行靜態(tài)分析,確定代碼中的分支點,并且給每個分支點分配統(tǒng)一的編號。插裝就是在所有分支點上設(shè)置“探頭”—插裝代碼。當(dāng)執(zhí)行到這個點時,探頭就輸出這個編號到特定文件中。從這個文件中就可以得到程序執(zhí)行的歷史信息和所經(jīng)過的路徑,從而計算出代碼的覆蓋率。
性能分析則通過提供有關(guān)時間的數(shù)據(jù),說明執(zhí)行時間是如何消耗的,是什么時候消耗的,以及每個過程所用的時間。根據(jù)這些數(shù)據(jù),可以決定如何優(yōu)化軟件,從而獲得更好的時間性能。性能分析還可以引導(dǎo)測試人員發(fā)現(xiàn)系統(tǒng)調(diào)用中存在的錯誤以及程序結(jié)構(gòu)上的缺陷。