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

Windows移動嵌入式項目中的自動化加速測試
嵌入式軟件測試研究意義,嵌入式軟件測試的研究

評論