摘要:引入多種嵌入式系統系統測試方法;根據ISO 9000國際質量標準,提出一種切實可行的可靠性評估方案,并使它們應用于嵌入式產品測試中,測試效果良好。最后,通過兩個測試實例說明嵌入式系統的系統測試過程和分析。
關鍵詞:嵌入式系統 系統測試 測試方法 可靠性評估
引言
隨著嵌入式系統硬件體系結構的變化,嵌入式系統的發展趨勢向嵌入式系統高端,即嵌入式軟件系統轉移,具體體現在嵌入式操作系統趨于多樣和應用軟件日漸復雜。由于嵌入式系統軟硬件功能界限模糊,研究如何進行系統測試和進行質量評估來保證嵌入式系統的產品質量具有重要意義。
首先,這里明確嵌入式系統的系統測試定義,是將開發的軟件系統(包括嵌入式操作系統和嵌入式應用軟件)、硬件系統和其它相關因素(如人員的操作、數據的獲取等)綜合起來,對整個產品進行的全面測試。嵌入式系統的系統測試比PC系統軟件測試要困難得多,主要體現如下:
?、?測試軟件功能依賴不需編碼的硬件功能,快速定位軟硬件錯誤困難;
?、?強壯性測試、可知性測試很難編碼實現;
?、?交叉測試平臺的測試用例、測試結果上載困難;
?、?基于消息系統測試的復雜性,包括線程、任務、子系統之間的交互,并發、容錯和對時間的要求;
?、?性能測試、確定性能瓶頸困難;
?、?實施測試自動化技術困難。
1、測試方法
根據Goodenough和Gerhart提出的軟件測試充分性準則可知,軟件測試具有非復合性的特點,也就是說,即使以軟件所有成分都進行了 充分的測試,也并不意味著整個軟件的測試已經充分。所以,即使通過了需求測試、設計測試、編碼測試,并不意味著已經完全了充分的測試,還要進行軟硬件全面 測試,即系統測試。正確的系統測試方法能設計出良好的測試事例,而良好的測試事例是測試成功的關鍵。測試事例質量特性主要有以下幾點。
* 檢驗性:檢測軟件缺陷的有效性,是否能發現缺陷或至少可能發現缺陷。
* 可仿效性:可以支持測試多項內容,減少測試事例的數量。
* 開銷:測試事例的執行、分析和調試是否經濟。
* 修改性:每次軟件修改后對測試事例的維護成本。
測試方法不僅要保證測試事例具有發現缺陷的高可移植性,而且還要保證測試事例設計的經濟有效。因此,在實際測試工作中,將嵌入式系統的測試方法 分類如下:根據測試是否動態運行被測程序分為靜態測試方法和動態測試方法;根據測試階段分為需求測試方法、設計測試方法、編碼測試(單元測試、集成測試) 方法及系統測試方法;根據測試目的分為功能測試、性能測試、可靠性測試(容錯性、可恢復性、成熟度測試*及信息安全保護等測試。參看表1嵌入式軟件測試方 法對照。其中“√”代表相關性。所有這些方法的具體定義這里不一一介紹。由于不同的嵌入式系統面向的應用不同,測試方法的側重也很不相同。本文后面將對一 個具體的便攜式信息處理嵌入式系統(PDA、便攜式翰林電子書)的系統測試方法詳細說明。
表1 嵌入式軟件測試方法及階段對照表
測試方法分類 |
需求測試 | 設計測試 | 編碼測試 | 系統測試 | |
靜態測試方式; | 基本思想 | ||||
Yourdon的結構化走通 | 結構化審閱 | √ | √ | √ | |
Fagan檢查測試 | 檢查并評估 | √ | √ | √ | |
動態測試方法; | 基本思想 | ||||
控制流測試 | 語句測試 | √ | √ | ||
路徑測試 | √ | ||||
條件測試 | √ | ||||
數據流測試 | 數據定義引用 | √ | √ | ||
分域測試 | 劃分子域測試 | √ | √ | √ | |
功能測試 | 劃分功能測試 | √ | √ | ||
隨機測試 | 不限定范圍 | √ |