來韓忠 李曉明



關鍵詞:XML;測試儀器;流程自動化;自動測試
0 引言
自動測試系統(tǒng)(Automatic Test System,ATS),通常是指能夠對被測對象自動進行功能/性能指標測試、故障診斷與定位的一類系統(tǒng)的統(tǒng)稱,它在航空航天或者軍工領域應用很廣泛[1]。在目前的自動測試系統(tǒng)軟件中,有使用Python 開發(fā)的自動測試系統(tǒng)[2、3],也有利用LabVIEW 軟件和程控儀器組成的自動測試系統(tǒng)[4]。這種交互以計算機代碼的形式固化在測試程序中,修改非常的不方便;另外,對于不同的測試流程需要開發(fā)不同的程序代碼,無疑提高了開發(fā)的成本和測試的周期。
一般來說,對于各個被測設備或同一個設備不同功能,會有不同的測試流程。對于傳統(tǒng)的自動測試系統(tǒng),可能就需要重新編寫硬代碼來滿足當前的測試任務、這樣做不僅耗時耗力,其更新成本也是巨大。
基于以上考慮,我們決定設計符合本課題組實際的XML 描述方法。此外,設計了一種基于XML 的通用測試儀器流程控制軟件;設計了解析方式及其對應的XML 結構,用戶只需配置XML 中的標簽描述信息,新增或減少XML 中的各個標簽即可實現截然不同的測試流程。
本文中使用了Java 語言來對該軟件做代碼實現,主要有以下兩個原因:一、Java由于有jvm[5(] Java虛擬機)的存在,有一次編譯到處運行的特點,對于平臺具有無關性。二、Java 有許多已經集成好的XML 解析工具[6]如jdom、dom4j 等。最后通過實驗驗證了該軟件可以正常工作并按照輸入的XML 流程執(zhí)行自動測試任務。
1 基于XML的自動測試流程描述語言設計與實現
對于基于XML 的自動測試流程描述語言設計的設計是整個通用測試儀器流程控制軟件的基礎。
1.1 自動測試流程描述語言的實現
本文提出的自動測試流程描述語言中各個主要標簽及其功能如表1 所示。
其中Unit 和Task 下定義的是具體流程的標簽,表2 定義了所有具體流程的標簽。
XML 文件的標簽的樹形關系如圖1 所示。
1.2 流程解析結果數據結構設計
流程解析的數據結構用于映射當前XML 文件中的標簽和標簽中的屬性值,并且按照HashTable 的數據格式存入解析結果ParsedResult 中,方便運行軟件時利用鍵值對來查詢。程序中有關流程的解析節(jié)點之間的類關系如圖2 所示。
Step 為Exec、If、True、False、For、While、Parallel 的共同接口,表示單步運行的流程。
其中Exec 為單步流程的終點,同時Exec 也在整個Task 流程中可以用來表示單次的單元測試(Unit)。
1.3 流程XML 解析結果JavaBean 設計
ParsedResult 作為流程XML 文件解析結果的信息載體,其屬性內容如表3 所示。
2 通用測試儀器流程控制軟件設計與實現
通用測試儀器流程控制軟件由自動測試管理器(AUTManager)、測試任務管理器(TaskManager)、動作注冊管理器(ActionManager)、可執(zhí)行單步流程(Step)、單元測試任務(Unit)、測試任務(Task)組成。
其中自動測試管理器負責對整個自動流程測試任務的執(zhí)行,測試任務管理器負責對標準流程XML 進行解析并生成自動流程測試任務執(zhí)行所需要的測試任務配置對象,動作注冊管理器負責對動作進行注冊,可執(zhí)行單步流程是最小的可執(zhí)行單元,單元測試是由各種可執(zhí)行單步流程所組成的,整個測試任務也是由可執(zhí)行單步流程和單元測試組成的。其中通用測試儀器流程控制軟件工作架構圖如圖3 所示。
2.1 通用測試儀器流程控制軟件設計
本文提出的通用測試儀器流程控制軟件作為自動測試軟件流程控制的核心,需要從流程XML 文件中得到運行整個自動測試流程運行所需的信息并對其進行管理。本軟件的設計將利用前面設計的數據結構。
2.2 通用測試儀器流程控制軟件工作流程設計
當軟件開始運作之后,會產生一個單例[7]對象名為AUTManager,其負責整個自動測試實驗的執(zhí)行,其下包含兩個的單例對象分別為TaskManager(負責測試生成對XML 解析結果的配置對象)和ActionManager(負責實現對動作的注冊),AUTManager中的DoAUT()方法為整個自動測試軟件工作流程。整個測試軟件的工作流程圖如圖4 所示。
3 實例測試
本文實驗使用某串口調試工具模擬被測設備,來測試本流程測試自動化軟件能否正常工作即按照流程XML 對被測設備進行自動測試。
實驗設備:一臺X86 架構的計算機、實驗室自研的通用嵌入式測試儀器系統(tǒng)、一個帶有HDMI 接口的顯示器。
實驗設計:一臺計算機運行包含本通用測試儀器流程控制軟件核心代碼的地測軟件客戶端。計算機與測試儀器系統(tǒng)用網線相連。通用嵌入式測試儀器系統(tǒng)同時又連接顯示器。用測試儀器系統(tǒng)的前端模塊模擬被測設備,開啟測試儀器系統(tǒng)偵聽本機約定好的端口。開啟地測軟件客戶端,即讀取流程XML 文檔并開始運行自動測試流程。由測試儀器系統(tǒng)向流程測試自動化軟件發(fā)送必要的數據(測試部分由被測設備發(fā)送不同數據可能引起不同流程的功能)。在測試儀器系統(tǒng)和流程測試自動化軟件的控制臺信息面板上觀察整個測試流程是否按照XML 文檔中規(guī)定的自動測試流程運行。
圖5 是實驗室自研的通用嵌入式測試儀器系統(tǒng)。
圖6 是包含本通用測試儀器流程控制軟件核心代碼的地測軟件客戶端。
按照本文提出的流程XML 文件標簽定義和層級關系編寫流程XML 協議描述文件。該協議描述文件的內容(節(jié)選)如圖7 所示。
按照流程XML 描述文件中的測試任務標簽下對于整個測試任務的定義,即可形成本次自動測試任務流程表如表4 所示。
圖8 為通用嵌入式測試儀器系統(tǒng)的控制面板上顯示的接收與發(fā)送數據,對比自動測試任務流程表4 可以發(fā)現完全按照預設的流程執(zhí)行了。這證實了通用測試儀器流程控制軟件的控制測試流程的能力。
4 結論
本文提出的基于XML 的通用測試儀器流程控制軟件是一種控制流程的軟件方法。針對XML 文件具有可擴展性的特點,設計了本文提出測試軟件的XML標簽流程描述文檔,用戶只需要按照指定的格式描述整個自動測試流程即可在無測試人員手動操作的情況下完成整個自動測試任務。實驗結果表明,通過該通用測試儀器流程控制軟件可以成功的完成不同設備不同測試流程的測試任務。通過對流程描述XML文件中標簽的組合和標簽屬性的修改不僅可以完成通用的流程操作如順序執(zhí)行、條件判斷和循環(huán)執(zhí)行等,還可以處理好產生分支測試流程并行運行等復雜情況,驗證了本自動化測試軟件的有效性、通用性。同時,也表明本文提出的自動測試流程標準化的軟件解決方法在自動測試領域[8]有重要的參考價值。