引言
進入二十一世紀之后,硬件元器件得到了飛速發展,從而也是的嵌入式軟件的功能更加強大和復雜.隨之而來的也是嵌入式軟件測試工作的加重,傳統的軟件測試技術已經難以滿足嵌入式軟件越來越復雜的需求.而目前,市場上已經有較多的傳統軟件自動化測試技術,如何在這些技術的基礎上進行改進,從而能夠適應嵌入式軟件環境,從而實現嵌入式軟件的自動化測試,是嵌入式軟件發展的重要方向.
1.嵌入式軟件自動化測試平臺分析
嵌入式軟件的自動化測試即利用腳本來自動化驅動嵌入式軟件的運行,并且自動收集相關數據進行分析,最終生成相應的測試報告.雖然,嵌入式軟件的自動化測試流程與一般PC機應用軟件的自動化測試流程相同.但是,由于嵌入式軟件軟件對電子設備的高度依賴性,以及電子設備收周圍環境影響較重,從而導致嵌入式軟件的自動化測試平臺存在如下的問題.
(1)由于電子元器件受到周圍環境的影響,無論在宿主機上所進行的動態測試多充分,也無法保證嵌入式軟件在實際的硬件環境中通過.
(2)硬件系統非常復雜,難以對測試過程中所發現的問題進行排查.
(3)植入樁點會影響系統的實時性.
(4)上位機的測試環境中,由于上位機與下位機的通信量較大,測試結果數據較多,容易導致通信的堵塞.
2.嵌入式軟件自動化測試平臺概要設計
通過對嵌入式自動化測試框架的分析,本文提出一種由腳本驅動器.接口映射表.數據驅動器和支持函數庫所組成的,針對嵌入式自動化軟件測試的組合型測試框架.
如圖1所示,高層腳本調用執行下層腳本;底層運行腳本通過查詢接口映射表調用待測試系統接口進行驅動和通信;測試腳本從數據文件調用數據執行測試.
(1)腳本驅動器
腳本驅動器調用高層腳本,高層腳本調用下層腳本.底層腳本包括待測試系統具體的測試步驟.
(2)接口映射表
接口映射表借鑒了關鍵字驅動測試框架中的組件映射表思想.測試人員根據待測試系統的實際需求,設計接口名稱和參數,從而實現待測試系統的抽象化.在運行測試腳本是,首先通過映射表匹配接口名稱和參數,當系統接口改變時,只需要改變映射表即可,從而實現測試系統與待測試系統的松耦合.
(3)數據驅動器
數據啟動器是測試腳本與數據文件的連接器,通常采用文本文件.XML文件等來實現.
在測試過程中,需要數據時,有數據驅動器讀取數據.數據驅動器是腳本與測試數據分離,當測試數據變更時,只需要修改數據驅動器,而不需要對腳本進行改動.
(4)支持函數庫
包含了數據緩存.文件操作.字符串處理等測試框架中所用到的通用處理函數.
3.嵌入式軟件自動化測試平臺詳細設計
3.1 測試框架設計
嵌入式軟件自動化測試平臺的卡框架,采用嵌入式軟件通用的Host/Target測試策略.
如圖2所示,本文所設計的嵌入式軟件自動化測試平臺采用測試管理工具和測試代理雙層結構.
3.2 測試流程設計
在進行嵌入式軟件自動化測試時,測試人員的工作包括:編寫配置文件.編寫腳本.生成數據文件.測試報告分析等工作.嵌入式軟件的自動化測試流程如圖3所示.
當建立了管理工具和測試代理自檢的通信之后,向測試代理發送測試請求,并且將腳本和數據傳送到測試代理上.測試代理將測試腳本存放到特定的區域執行,并且將測試結果返回給宿主端.當宿主端接收到測試代理所發送腳本執行完畢信號后,發送新的測試腳本和數據給測試代理,直到所有的腳本測試完成之后,對測試代理所返回的測試結果進行分析,得出最終的測試報告.
3.3 功能設計
3.3.1 管理工具功能
為了不占用宿主段過多資源,將一些協助測試模塊都放在宿主端中.管理工具的功能結構如圖4所示.
(1)腳本配置管理模塊
在進行嵌入式軟件自動化測試之前,需要設計一份配置文件.在配置文件中定義好了腳本位置.宿主機與測試代理之間的通信.腳本執行時間間隔.通信樁點個數等內容.測試管理工具先對腳本配置文件進行解析,并且將解析的信息傳送給目標機.
(2)插樁模塊
通過插樁對待測試軟件的功能進行細分,并且根據執行的情況,來分析待測試軟件的測試覆蓋情況.
(3)日志分析生成模塊
測試日志文件中主要包含了待測試軟件的測試結果,以及測試覆蓋信息.其中測試報告中包括了測試跟蹤信息.測試用例.測試用例的期望和實際結果.測試用例的執行情況及匯總等.測試覆蓋信息包括:測試和未測試的代碼段.功能的覆蓋標記及匯總等信息.
(4)數據通信模塊
主要負責宿主機與測試代理之間的消息通信.
3.3.2 測試代理功能
測試代理運行在目標機上,是整個嵌入式軟件自動化測試平臺的核心,測試代理的整體結構如圖5所示.
(1)測試驅動模塊
根據配置管理,對管理工具發送的測試腳本進行解析,并且調用工具庫中的通用函數來完成測試.同時,將測試結果和樁點覆蓋信息存入到特定區域.
(2)數據驅動模塊
在數據文件主要包含了測試腳本文件.測試數據文件和測試結果文件.當測試需要數據是,可以通過數據驅動模塊完成數據表查找和數據批量處理等操作.對于測試數據量大,測試步驟類似的測試過程,可以極大的減少測試的復雜度.
(3)數據通信模塊
主要負責與管理工具的數據通信模塊進行數據交互.主要負責接收管理工具所發送的配置信息.腳本信息和數據文件信息;同時將測試結果和測試覆蓋信息返回給管理工具.
4.結束語
軟件測試是對軟件質量進行評估的重要方法,自動化測試技術可以降低軟件測試成本,縮短軟件測試時間.特別是對于測試環境更加復雜的嵌入式軟件而言,自動化測試具有更加重要的意義.
-
驅動器
+關注
關注
53文章
8259瀏覽量
146637 -
嵌入式
+關注
關注
5087文章
19148瀏覽量
306196 -
自動化
+關注
關注
29文章
5598瀏覽量
79430
發布評論請先 登錄
相關推薦
評論