嵌入式軟件系統測試中的仿真系統結構設計
1 嵌入式系統概述
嵌入式系統是以計算機技術(shù)為基礎,以應用為中心,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專(zhuān)用計算機系統。
嵌入式軟件是基于嵌入式系統設計的軟件,是計算機軟件的一種,同樣由程序及文檔組成,可細分成系統軟件、支撐軟件、應用軟件三類(lèi)。嵌入式軟件大量應用于家用、工業(yè)、商業(yè)、通訊和國防領(lǐng)域。我國目前在嵌入式應用軟件方面具有優(yōu)勢。在嵌入式系統中,軟件的工作量約占全部工作量的80%,其中測試與驗證的工作量占軟件工作量的70%。
1.1 嵌入式軟件特點(diǎn)和測試難點(diǎn)
嵌入式系統開(kāi)發(fā)有其自身的特點(diǎn)。通常,在嵌入式系統軟件中,底層驅動(dòng)程序、操作系統和應用程序的界線(xiàn)是不清晰的,有時(shí)甚至混編在一起。這主要是因為嵌入式系統中軟件對硬件的依賴(lài)性造成的。由于嵌入式軟件對硬件的依賴(lài)性,軟件測試時(shí)必須最大限度地模擬被測軟件的實(shí)際運行環(huán)境,以保證測試的可靠性。底層程序和應用程序界限的不清晰增加了測試難度。測試時(shí),只有在確認了嵌入式系統平臺及底層程序正確的情況下才能進(jìn)行應用程序的測試,而且在系統測試時(shí),對錯誤的檢測定位較為困難。軟件的專(zhuān)用性也是嵌入式軟件的一個(gè)重要特點(diǎn)。由于嵌入式軟件設計是以一定的目標硬件平臺為基礎、面向固定任務(wù)進(jìn)行的,因此,一旦被加載到目標系統上,功能必須完全確定。這個(gè)特點(diǎn)決定了嵌入式應用軟件的繼承性較差,延長(cháng)了系統的測試時(shí)間,增加了測試費用。嵌入式軟件的另外一個(gè)重要特點(diǎn)就是實(shí)時(shí)性,這是從軟件執行的角度考慮的,也就是說(shuō)嵌入式軟件的執行要滿(mǎn)足一定的時(shí)間約束。嵌入式系統中,應用軟件自身算法的復雜度和操作系統任務(wù)調度,決定了系統資源的分配和消耗。因此,對系統實(shí)時(shí)性進(jìn)行測試時(shí),要借助一定的測試工具對應用程序算法復雜度和操作系統任務(wù)調度進(jìn)行分析測試。
1.2 嵌入式軟件測試方法
軟件測試是軟件開(kāi)發(fā)中的一個(gè)重要環(huán)節,嵌入式軟件也不例外。圖1給出了嵌入式軟件測試的一般流程。根據不同的指標,軟件測試方法[1]有不同的劃分方法。根據軟件開(kāi)發(fā)過(guò)程中測試所處的不同階段可分為模塊測試、集成測試和系統測試;根據是否需要運行目標代碼分為動(dòng)態(tài)測試和靜態(tài)測試;根據目標代碼的可見(jiàn)性可分為白盒測試(結構測試)和黑盒測試(功能測試)。在軟件測試中,每種測試方法都不是孤立的。為了最經(jīng)濟、最有效地達到測試目的,各種測試方法往往互相嵌套。例如,在軟件的單元測試階段,可以用黑盒測試和白盒測試的方法分別進(jìn)行動(dòng)態(tài)測試。而在系統測試階段,只能使用黑盒測試方法進(jìn)行測試。
為了更有效地進(jìn)行嵌入式軟件的系統測試,提出了嵌入式軟件系統測試中具有交互式錯誤檢測定位功能的仿真系統架構設計方案。使用此仿真系統不僅可以按照第一類(lèi)測試方法[2]和第二類(lèi)測試方法[3]輔助進(jìn)行系統測試,而且還可以利用仿真系統的交互式學(xué)習功能,不斷積累錯誤定位經(jīng)驗,實(shí)現錯誤檢測定位,為測試人員和開(kāi)發(fā)人員節省大量時(shí)間。這是其他測試方法所不具備的。
2 仿真系統結構設計
嵌入式軟件的硬件載體大部分為專(zhuān)用計算機設備,并且通常沒(méi)有外圍設備用于測試過(guò)程中的監測或觀(guān)察。而有些嵌入式軟件還會(huì )存在交互式操作。在被測軟件移植到目標機上的實(shí)際硬件環(huán)境以后,由于與嵌入式系統平臺和底層程序融為一體,對系統進(jìn)行黑盒測試時(shí),錯誤定位將變得非常困難。因此根據嵌入式軟件的特點(diǎn),提出了一個(gè)具有交互式錯誤檢測定位功能的仿真系統結構模型。圖2為仿真系統分層結構圖。仿真系統在設計上采用分層結構、分層設計、分層實(shí)現的方式,每一層的內部實(shí)現對其他層透明。
仿真系統由硬件驅動(dòng)、交互操作模塊、驅動(dòng)模塊、樁模塊、分析模塊和人機界面六個(gè)部分組成。下面分別介紹各個(gè)模塊的功能。
(1)硬件驅動(dòng)部分負責驅動(dòng)硬件,向上一層提供底層硬件的操作接口。仿真系統通過(guò)硬件驅動(dòng)為嵌入式軟件提供相應的通信接口,用于嵌入式軟件和仿真系統之間的數據交換。通信接口根據具體嵌入式軟件的接口設計實(shí)現,一般為各種通訊協(xié)議。各通訊協(xié)議模塊之間松散耦合,且具備可擴展性,保證硬件接口的改變不會(huì )影響上層的功能實(shí)現。
(2)交互操作模塊負責與嵌入式軟件的交互操作。此部分可裁剪,主要根據嵌入式軟件是否需要交互操作而定。其主要功能需要根據特定的軟件設計實(shí)現。
(3)驅動(dòng)模塊負責封裝與仿真系統測試數據有關(guān)的處理邏輯,向人機界面提供獨立于體系結構的操作接口。系統測試階段除了正常的功能和性能測試,更應該進(jìn)行意外測試和破壞性測試,即測試系統正常執行情況下不該發(fā)生的激發(fā)活動(dòng)和人為的破壞性測試,進(jìn)一步驗證系統性能。而驅動(dòng)模塊則將測試用例中各種測試數據傳輸給被測嵌入式軟件。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論