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