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