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