摘要:與通用PC應用軟件相比,嵌入式軟件測試更加復雜,為此對嵌入式軟件自動化測試平臺的研究對于嵌入式軟件的發展非常重要的意義。本文主要在對嵌入式軟件自動化測試平臺進行簡單分析的基礎上,對嵌入式軟件自動化平臺的整體框架、測試流程以及測試平臺的具體功能進行了研究。
關鍵詞:嵌入式軟件;自動化測試;平臺框架
中圖分類號:TP311.53文獻標識碼:A文章編號:1674-7712 (2014) 08-0000-01
進入二十一世紀之后,硬件元器件得到了飛速發展,從而也是的嵌入式軟件的功能更加強大和復雜。隨之而來的也是嵌入式軟件測試工作的加重,傳統的軟件測試技術已經難以滿足嵌入式軟件越來越復雜的需求。而目前,市場上已經有較多的傳統軟件自動化測試技術,如何在這些技術的基礎上進行改進,從而能夠適應嵌入式軟件環境,從而實現嵌入式軟件的自動化測試,是嵌入式軟件發展的重要方向。
一、嵌入式軟件自動化測試平臺分析
嵌入式軟件的自動化測試即利用腳本來自動化驅動嵌入式軟件的運行,并且自動收集相關數據進行分析,最終生成相應的測試報告。雖然,嵌入式軟件的自動化測試流程與一般PC機應用軟件的自動化測試流程相同。但是,由于嵌入式軟件軟件對電子設備的高度依賴性,以及電子設備收周圍環境影響較重,從而導致嵌入式軟件的自動化測試平臺存在如下的問題。
(1)由于電子元器件受到周圍環境的影響,無論在宿主機上所進行的動態測試多充分,也無法保證嵌入式軟件在實際的硬件環境中通過。
(2)硬件系統非常復雜,難以對測試過程中所發現的問題進行排查。
(3)植入樁點會影響系統的實時性。
二、嵌入式軟件自動化測試平臺概要設計
通過對嵌入式自動化測試框架的分析,本文提出一種由腳本驅動器、接口映射表、數據驅動器和支持函數庫所組成的,針對嵌入式自動化軟件測試的組合型測試框架。
高層腳本調用執行下層腳本;底層運行腳本通過查詢接口映射表調用待測試系統接口進行驅動和通信;測試腳本從數據文件調用數據執行測試。
(1)腳本驅動器。腳本驅動器調用高層腳本,高層腳本調用下層腳本。底層腳本包括待測試系統具體的測試步驟。
(2)接口映射表。接口映射表借鑒了關鍵字驅動測試框架中的組件映射表思想。測試人員根據待測試系統的實際需求,設計接口名稱和參數,從而實現待測試系統的抽象化。在運行測試腳本是,首先通過映射表匹配接口名稱和參數,當系統接口改變時,只需要改變映射表即可,從而實現測試系統與待測試系統的松耦合。
三、嵌入式軟件自動化測試平臺詳細設計
(一)測試框架設計
嵌入式軟件自動化測試平臺的卡框架,采用嵌入式軟件通用的Host/Target測試策略。本文所設計的嵌入式軟件自動化測試平臺采用測試管理工具和測試代理雙層結構。
(二)測試流程設計
在進行嵌入式軟件自動化測試時,測試人員的工作包括:編寫配置文件、編寫腳本、生成數據文件、測試報告分析等工作。
當建立了管理工具和測試代理自檢的通信之后,向測試代理發送測試請求,并且將腳本和數據傳送到測試代理上。測試代理將測試腳本存放到特定的區域執行,并且將測試結果返回給宿主端。當宿主端接收到測試代理所發送腳本執行完畢信號后,發送新的測試腳本和數據給測試代理,直到所有的腳本測試完成之后,對測試代理所返回的測試結果進行分析,得出最終的測試報告。
(三)功能設計
1.管理工具功能
為了不占用宿主段過多資源,將一些協助測試模塊都放在宿主端中。管理工具的功能結構如圖4所示。
(1)腳本配置管理模塊。在進行嵌入式軟件自動化測試之前,需要設計一份配置文件。在配置文件中定義好了腳本位置、宿主機與測試代理之間的通信、腳本執行時間間隔、通信樁點個數等內容。測試管理工具先對腳本配置文件進行解析,并且將解析的信息傳送給目標機。
(2)插樁模塊。通過插樁對待測試軟件的功能進行細分,并且根據執行的情況,來分析待測試軟件的測試覆蓋情況。
(3)日志分析生成模塊。測試日志文件中主要包含了待測試軟件的測試結果,以及測試覆蓋信息。其中測試報告中包括了測試跟蹤信息、測試用例、測試用例的期望和實際結果、測試用例的執行情況及匯總等。測試覆蓋信息包括:測試和未測試的代碼段、功能的覆蓋標記及匯總等信息。
2.測試代理功能
測試代理運行在目標機上,是整個嵌入式軟件自動化測試平臺的核心,測試代理的整體結構如圖5所示。
(1)測試驅動模塊。根據配置管理,對管理工具發送的測試腳本進行解析,并且調用工具庫中的通用函數來完成測試。同時,將測試結果和樁點覆蓋信息存入到特定區域。
(2)數據驅動模塊。在數據文件主要包含了測試腳本文件、測試數據文件和測試結果文件。當測試需要數據是,可以通過數據驅動模塊完成數據表查找和數據批量處理等操作。對于測試數據量大,測試步驟類似的測試過程,可以極大的減少測試的復雜度。
四、結束語
軟件測試是對軟件質量進行評估的重要方法,自動化測試技術可以降低軟件測試成本,縮短軟件測試時間。特別是對于測試環境更加復雜的嵌入式軟件而言,自動化測試具有更加重要的意義。
參考文獻:
[1]鄧勇,曾建光.嵌入式軟件系統及其自動測試技術的發展與現狀[J].科技咨詢導報,2007(21):5-6.
[2]凌永發,張云生,郭秀萍.軟件測試自動化中的腳本技術[J].云南民族學院學報(自然科學版),2002(01):544-548.
[3]鄭世偉.嵌入式軟件的測試方法和工具[J].單片機與嵌入式系統應用,2001(04):26-28.
[4]崔小樂,劉斌,鐘德明.實時嵌入式軟件仿真測試平臺的體系結構設計[J].測控技術,2003(07):38-40.
[作者簡介]楊立,男,助理工程師,專科,研究方向:關于如何更好的測試軟件方面;劉杰,男,助理工程師,本科,研究方向:如何搭建自動化測試平臺。