李 洵,廖 臣
(貴州電網(wǎng)有限責(zé)任公司,貴陽 550002)
近年來,自動(dòng)化測試系統(tǒng)(Automatic Test System,ATS)正朝著“通用、標(biāo)準(zhǔn)化、模塊化、序列化”的方向不斷發(fā)展,采用基于開放式系統(tǒng)架構(gòu)(OSA)的軟件平臺(tái),實(shí)現(xiàn)可移植和可復(fù)用的測試程序,使用標(biāo)準(zhǔn)開放式接口,與現(xiàn)有的測試系統(tǒng)的研究與開發(fā)兼容[1]。應(yīng)用成熟先進(jìn)的技術(shù)、允許儀器設(shè)備的互換以及體系結(jié)構(gòu)的不斷發(fā)展完善等[2],這些要求在大型企業(yè)系統(tǒng)測試領(lǐng)域內(nèi)尤為迫切[2]。本文基于軟件平臺(tái)的分層功能模型,分別研究了軟件可移植性和可復(fù)用測試程序的問題,分別就測試程序的開發(fā)、驅(qū)動(dòng)程序的開發(fā)、功能服務(wù)的接口設(shè)計(jì)以及人機(jī)交互界面的定制等方面進(jìn)行探討,最后結(jié)合企業(yè)應(yīng)用場景在ATS 工程應(yīng)用中實(shí)現(xiàn)自動(dòng)化測試開發(fā)和測試執(zhí)行功能,并開發(fā)了企業(yè)級應(yīng)用系統(tǒng)協(xié)同功能自動(dòng)化測試系統(tǒng)CHES。
通常情況下,CHES 是由自動(dòng)測試設(shè)備(ATE)硬件、ATE 軟件和測試程序集(TPS)組成[3]。其中,ATE 硬件是構(gòu)成ATE的物理設(shè)備/組件的組合,包括主控計(jì)算機(jī)、測試控制器、程序控制總線、儀器設(shè)備、開關(guān)組件和通用接口[3];ATE軟件一般包括操作系統(tǒng)、測試診斷測試軟件管理平臺(tái)和支持軟件;TPS可以利用ATE到DUT的各種測試資源進(jìn)行檢測和/或診斷,包括常規(guī)測試程序(TP)、測試接口適配器(ITA)、程序集和測試文檔(測試程序?qū)⑽募O(shè)置為TPSD),CHES的組成如圖1所示。
圖1 CHES的組成框圖
所謂通用,就是一個(gè)不斷發(fā)展和逐步完善的概念[4]。在某種類型的ATS 中,使用一個(gè)通用平臺(tái)以及一些專用部件來實(shí)現(xiàn)研究目標(biāo)。通用平臺(tái)包括主控計(jì)算機(jī)、測試控制器、儀器設(shè)備、通用測試接口、操作系統(tǒng)、測試管理平臺(tái)軟件和測試診斷支持軟件。專用部分包括專用測試資源、專用接口適配器和測試程序。這樣,通過使用通用儀器、通用測試接口、標(biāo)準(zhǔn)測試控制器和通用測試軟件來構(gòu)建通用平臺(tái),并在通用平臺(tái)的基礎(chǔ)上合理縮小或擴(kuò)展,盡可能減少專用的部分,方便靈活[5]。CHES軟件平臺(tái)基于PaaS智云平臺(tái)構(gòu)建,提供了完善的前后臺(tái)開發(fā)框架、調(diào)度引擎、公共組件等模塊,幫助業(yè)務(wù)的產(chǎn)品和技術(shù)人員快速構(gòu)建低成本、免運(yùn)維的支撐工具和運(yùn)營系統(tǒng)。
對于測試管理平臺(tái)軟件,即CHES軟件平臺(tái),采用分層功能模式來實(shí)現(xiàn)開發(fā)體系結(jié)構(gòu),并有效地實(shí)現(xiàn)了組件化、模塊化和標(biāo)準(zhǔn)化的設(shè)計(jì)原則。
對于一般的自動(dòng)化測試軟件平臺(tái),首先需要實(shí)現(xiàn)測試資源管理、測試程序維護(hù)、測試系統(tǒng)校準(zhǔn)、測試任務(wù)執(zhí)行和信息綜合處理等基本功能,為此采用了模塊化設(shè)計(jì),最后提供了測試資源[4]。一組獨(dú)立的軟件組件,例如管理軟件、測試程序維護(hù)軟件、測試系統(tǒng)校準(zhǔn)軟件、測試任務(wù)執(zhí)行軟件、數(shù)據(jù)分析處理軟件以及儀器設(shè)備的虛擬軟面板。其次,測試支持軟件需要提供測試程序開發(fā)環(huán)境和測試驅(qū)動(dòng)的開發(fā)環(huán)境,以支持用戶的二次開發(fā)并實(shí)現(xiàn)測試程序的可移植性和可復(fù)用性[6]。鑒于PaaS平臺(tái)所提供的私有云環(huán)境、高級編輯和調(diào)試工具,豐富的功能庫和圖形控件,在系統(tǒng)開發(fā)方面具有強(qiáng)大的優(yōu)勢[4]。在測試程序方面,CHES 要求測試程序具有可移植性和可復(fù)用性。
軟件體系結(jié)構(gòu)的質(zhì)量直接影響整個(gè)自動(dòng)化測試系統(tǒng)的性能[7]。該CHES 軟件架構(gòu)應(yīng)該是開放的、通用的、標(biāo)準(zhǔn)化的,具有層次和組件化結(jié)構(gòu)。因此遵循該設(shè)計(jì)原則的CHES軟件需要遵循包括使用分層軟件結(jié)構(gòu),可擴(kuò)展性/可切性的支持功能,便攜性和測試程序的可復(fù)用性,并支持儀器的互換性。這些設(shè)計(jì)原則必須依賴于開放式體系結(jié)構(gòu)和模塊化功能設(shè)計(jì),以完全支持信息共享和信息交互[8]。
在某種類型的ATS,使用分層的功能模塊來實(shí)現(xiàn)軟件的開放式結(jié)構(gòu),如圖2所示,從下向上分別為儀器層、測試驅(qū)動(dòng)器層、外圍服務(wù)層、測試管理核心層和用戶界面層等5 個(gè)級別。下部功能組件為上部功能組件提供服務(wù)[9]。每個(gè)級別的功能服務(wù),接口和數(shù)據(jù)信息應(yīng)基于可公開獲得并被接受的規(guī)范。
(1)用戶界面層。用作人機(jī)界面以完成與用戶的交互,至少應(yīng)提供對話框、快捷鍵、菜單和命令按鈕。
(2)測試管理核心層。提供ATE 軟件的核心組件,維護(hù)和管理核心組件之間的通信主干,無縫集成基礎(chǔ)功能服務(wù),并根據(jù)上層需求將其提供給用戶界面[10]。
(3)外圍服務(wù)層。主要完成特定應(yīng)用的功能服務(wù),包括測量控制、診斷推理、維護(hù)和信息管理。這些功能服務(wù)應(yīng)該是動(dòng)態(tài)的和可伸縮的,以便應(yīng)用程序與特定的硬件無關(guān)[11]。
(4)測試驅(qū)動(dòng)程序?qū)?。用作測試程序和相關(guān)資源(例如儀器設(shè)備、開關(guān)組件和被測設(shè)備)之間的鏈接。測試驅(qū)動(dòng)程序應(yīng)實(shí)現(xiàn)相同功能儀器之間的互換[12]。
(5)儀器設(shè)備層。直接面向各種測試資源,其輸入應(yīng)基于VISA功能庫,以便儀器驅(qū)動(dòng)程序獨(dú)立于程序控制總線[13]。
在某些類型的ATS 中,實(shí)現(xiàn)了一個(gè)應(yīng)用程序,該應(yīng)用程序?qū)y試開發(fā)、測試執(zhí)行和測試管理與先進(jìn)和成熟的技術(shù)(包括自定義CHES功能服務(wù))集成在一起。該軟件基于上述層次結(jié)構(gòu),結(jié)構(gòu)清晰,每個(gè)模塊的功能合理分配,符合當(dāng)前的標(biāo)準(zhǔn)規(guī)范,并且最終軟件產(chǎn)品中的軟件組件是可移植的,并且其關(guān)鍵接口符合廣泛使用的標(biāo)準(zhǔn)規(guī)范或具有清晰的定義,為測試程序的開發(fā)、執(zhí)行和管理提供“開放、標(biāo)準(zhǔn)、通用”的環(huán)境,并更好地滿足各種設(shè)計(jì)要求[14]。其中,測試管理核心層的測試管理軟件平臺(tái)分別使用CHES系列軟件。該開發(fā)者工作室和運(yùn)行系統(tǒng)通過定制實(shí)現(xiàn)的功能提供功能性服務(wù)的CHES必要的測試開發(fā)和測試執(zhí)行功能的軟件,出色地完成編譯所有的測試程序編輯、修改、調(diào)試、測試和執(zhí)行。
圖2 軟件平臺(tái)的分層功能結(jié)構(gòu)模型
在該軟件平臺(tái)中,將整個(gè)軟件分為各個(gè)功能模塊,例如測試資源管理、測試程序維護(hù)、測試系統(tǒng)校準(zhǔn)、測試任務(wù)執(zhí)行以及數(shù)據(jù)分析和處理。這些模塊通過標(biāo)準(zhǔn)內(nèi)部總線交換數(shù)據(jù),并通過標(biāo)準(zhǔn)接口提供數(shù)據(jù)。函數(shù)調(diào)用可實(shí)現(xiàn)軟件平臺(tái)的模塊化、組件化和標(biāo)準(zhǔn)化。最終交付的軟件組件包括操作平臺(tái)軟件、測試資源管理軟件、測試程序維護(hù)軟件、測試系統(tǒng)校準(zhǔn)軟件、測試任務(wù)執(zhí)行軟件、數(shù)據(jù)分析處理軟件、虛擬軟面板軟件、測試驅(qū)動(dòng)程序、CHES適配器軟件、系統(tǒng)功能。軟件組件,例如自檢軟件,系統(tǒng)性能自檢軟件和系統(tǒng)計(jì)量軟件[15]。每個(gè)軟組件的基本功能劃分如下。
(1)操作平臺(tái)軟件:作為人機(jī)交互的主要界面,協(xié)助用戶完成功能模塊的調(diào)用,例如測試資源管理、測試程序維護(hù)、測試系統(tǒng)校準(zhǔn)、測試任務(wù)執(zhí)行和數(shù)據(jù)分析處理。
(2)測試資源管理軟件:提供儀器型號(hào)選擇、接口信息配置、端口信息配置和測試驅(qū)動(dòng)程序管理;支持同類儀器之間的互換以及儀器設(shè)備的升級和更新。
(3)測試程序維護(hù)軟件:協(xié)助用戶設(shè)計(jì)、開發(fā)和驗(yàn)證測試程序,提供測試參數(shù)信息庫的維護(hù)功能,并幫助用戶編輯、調(diào)試和執(zhí)行測試參數(shù)/測試程序。
(4)系統(tǒng)功能自檢軟件:可以幫助用戶進(jìn)行ATE 本身的功能測試,以檢查每個(gè)測試資源的功能正常性。
(5)系統(tǒng)性能自測軟件:可以幫助用戶執(zhí)行ATE 自己的性能測試,以確定其是否滿足性能要求。
(6)測試系統(tǒng)校準(zhǔn)軟件:可以幫助用戶執(zhí)行儀器校準(zhǔn)和測試通道校準(zhǔn),并提供通道校準(zhǔn)數(shù)據(jù)的管理功能。
(7)測試系統(tǒng)測量軟件:測量人員可以協(xié)助ATE 對各個(gè)測試資源進(jìn)行測量,以確定每個(gè)設(shè)備中的ATE指標(biāo)是否合格。
(8)測試任務(wù)執(zhí)行軟件:根據(jù)某些規(guī)則執(zhí)行配置的測試序列,并自動(dòng)驅(qū)動(dòng)、控制、測量、顯示和存儲(chǔ)每個(gè)測試計(jì)劃的每個(gè)測試步驟,提供手動(dòng)和自動(dòng)測試模式。
(9)數(shù)據(jù)分析和處理軟件:提供諸如測試結(jié)果信息瀏覽、測試報(bào)告輸出和測試報(bào)告打印等功能。
(10)虛擬軟面板:調(diào)用測試驅(qū)動(dòng)程序庫以幫助用戶完成測試資源的控制和操作。
(11)CHES 適配器軟件:公司完成加載、運(yùn)行、暫停和重新指定的ATLAS測試程序通過調(diào)用CHES/RTS服務(wù)。
(12)測試驅(qū)動(dòng)程序:對頂級軟組件調(diào)用的單個(gè)測試資源的完整驅(qū)動(dòng)控制。
PaaS 平臺(tái)是一個(gè)開放的平臺(tái),讓用戶可以簡單、快速地創(chuàng)建、部署和管理應(yīng)用,提供了完善的前后臺(tái)開發(fā)框架、服務(wù)總線(ESB)、調(diào)度引擎、公共組件等模塊,幫助用戶快速、低成本、免運(yùn)維地構(gòu)建支撐工具和運(yùn)營系統(tǒng)。PaaS 平臺(tái)為一個(gè)應(yīng)用從創(chuàng)建到部署,再到后續(xù)的維護(hù)管理提供了完善的自助化和自動(dòng)化服務(wù),如日志查詢、監(jiān)控告警等,從而使用戶可以將全部精力投入到應(yīng)用的開發(fā)之中。PaaS 平臺(tái)的主要功能有:支持多語言的開發(fā)框架/樣例、免運(yùn)維托管、SaaS運(yùn)營數(shù)據(jù)可視化、企業(yè)服務(wù)總線(API Gateway)、可拖拽的前端服務(wù)(MagicBox)等。基于PaaS 開發(fā)的自動(dòng)化測評平臺(tái)主要包括以下幾部分內(nèi)容。
(1)測試系統(tǒng)需求文件(TRD):應(yīng)用程序使用表和幫助用戶創(chuàng)建測試策略文件和測試程序結(jié)構(gòu)的工具。
(2)測試程序集開發(fā)系統(tǒng)(Developer'sStudio):主要為開發(fā)人員在Windows 環(huán)境中編輯、編譯、調(diào)試和模擬記錄可視化工具和語言測試程序的手段。
(3)運(yùn)行系統(tǒng)(RTS):主要用于完成測試程序的執(zhí)行。在操作員和測試設(shè)備之間提供接口。其可以執(zhí)行二者生成的目標(biāo)代碼和數(shù)據(jù)文件,以及實(shí)際的測試結(jié)果和測試程序調(diào)試功能。
通常,在測試環(huán)境中,測試程序主要由測試模塊、設(shè)備數(shù)據(jù)庫模塊、交換機(jī)數(shù)據(jù)庫模塊、接口適配器數(shù)據(jù)庫模塊、WCEM 模塊和總線配置模塊組成。測試程序是從數(shù)據(jù)庫信息(例如描述設(shè)備、開關(guān)、接口適配器和子集(詞匯庫))編譯而成的,以生成目標(biāo)文件和數(shù)據(jù)文件。該RTS 執(zhí)行系統(tǒng)負(fù)責(zé)執(zhí)行ATLAS 對象的代碼和數(shù)據(jù),并通過CIIL、宏代碼、或WCEM 等可選驅(qū)動(dòng)程序與ATE 硬件平臺(tái)進(jìn)行交互[15],如圖3所示。
圖3 軟件的功能結(jié)構(gòu)示意圖
(1)制定測試程序
測試管理軟件平臺(tái)的測試開發(fā)功能直接在開發(fā)環(huán)境PaaS平臺(tái)軟件中調(diào)用。平臺(tái)軟件首先以命令行參數(shù)傳遞模式將測試程序文件的傳遞信息傳遞給PaaS平臺(tái)軟件,然后從動(dòng)態(tài)加載控件到相應(yīng)的測試程序的工作方式,以便用戶可以直接使用其進(jìn)行編輯、測試程序、編譯、調(diào)試和仿真。
該軟件平臺(tái)支持測試程序的開發(fā)過程如圖4 所示。開發(fā)人員首先需要分析測試需求,確定UUT功能性能測試參數(shù)的特定需求,并優(yōu)化測試資源以構(gòu)建測試平臺(tái);然后選擇合適的子集,編寫測試程序;進(jìn)行ATE 建模,并進(jìn)行測試驅(qū)動(dòng)程序的集成開發(fā);最后是集成工作,主要是測試程序的仿真,調(diào)試和執(zhí)行。
測試程序不包含對實(shí)際物理資源的任何控制操作,因此,測試程序開發(fā)人員可以在硬件資源尚未完全準(zhǔn)備就緒時(shí)使用現(xiàn)有的配置資源來開發(fā)和調(diào)試測試程序。準(zhǔn)備好目標(biāo)硬件資源后,可以直接移植測試程序。
(2)測試驅(qū)動(dòng)程序開發(fā)
采用WDSL 將測試程序?qū)拥膬?nèi)容抽象并通過WCEM 在CHES中集成開發(fā),這允許測試程序開發(fā)人員與繁瑣的設(shè)備驅(qū)動(dòng)程序進(jìn)行交互。同時(shí),借助軟件平臺(tái)中的資源管理軟件,開發(fā)人員可以維護(hù)測試資源信息文件。
WDSL不再使設(shè)備驅(qū)動(dòng)程序成為更換儀器后困擾軟件更新的問題,因?yàn)闇y試資源信息清楚地描述了每種類型的測試驅(qū)動(dòng)程序的功能,而標(biāo)準(zhǔn)接口聲明也清楚地描述了每種測試類型。驅(qū)動(dòng)程序的接口實(shí)現(xiàn)規(guī)范。另外,由于使用的I/O驅(qū)動(dòng)程序功能庫基于VISA規(guī)范,因此設(shè)備驅(qū)動(dòng)程序從根本上獨(dú)立于程序控制的接口總線。這樣,儀器互換性和可編程接口總線獨(dú)立性的完美結(jié)合使測試參數(shù)/測試儀/應(yīng)用程序與硬件無關(guān)。
(3)功能服務(wù)接口設(shè)計(jì)
基于ATS 的測試程序開發(fā)和基于WDSL 的驅(qū)動(dòng)程序開發(fā)使軟件平臺(tái)開發(fā)的測試程序能夠?qū)崿F(xiàn)與特定測試資源硬件的獨(dú)立性。要擴(kuò)展軟件平臺(tái)的應(yīng)用范圍,還必須使用功能服務(wù)接口的標(biāo)準(zhǔn)規(guī)范。在一定的ATS 軟件平臺(tái),建立了一個(gè)CHES/RTS適配器插件作為一個(gè)軟件平臺(tái)來執(zhí)行的交互界面測試程序,并提供測試資源信息。根據(jù)測試程序提供信息測試結(jié)果數(shù)據(jù)文件。這樣,軟件平臺(tái)可以通過統(tǒng)一的規(guī)范接口實(shí)現(xiàn)所需的定制功能,包括調(diào)用CHES/RTS服務(wù)以完成測試項(xiàng)目的加載、卸載、執(zhí)行、停止和重置。設(shè)置屬性信息包括校準(zhǔn)數(shù)據(jù)文件名、校準(zhǔn)數(shù)據(jù)使能開關(guān)、調(diào)試信息輸出開關(guān)、模擬測試開關(guān)等;獲取屬性信息包括版本信息和工作狀態(tài)。
CHES/RTS 適配器的設(shè)計(jì)主要利用COM(組件對象模型)組件技術(shù),并努力提供具有標(biāo)準(zhǔn)接口的CHES/RTS功能服務(wù)調(diào)用。所述的示意圖CHES/RTS 適配器界面中顯示CHES/RTS適配器主要與交互CHES/RTS服務(wù)器。該RTS服務(wù)器充當(dāng)所述的執(zhí)行引擎測試程序。提供的服務(wù)包括RtsMachine、lSubsystem、DataLogger 和 Debugger。其中,RtsMachine 被用來完成測試程序的執(zhí)行和監(jiān)測的執(zhí)行狀態(tài);lOSubsystem 被用于數(shù)據(jù)信息的輸入/輸出操作;DataLogger 提供數(shù)據(jù)記錄功能;調(diào)試器用于調(diào)試測試程序的開發(fā)。
圖4 測試軟件開發(fā)流程示意圖
TYX 為RTS 服務(wù)器提供了3 個(gè)通用接口,即RTSActiveX控件集、RTSCom適配器和TPS服務(wù)器。這3個(gè)公共接口既是RTS 服務(wù)器的客戶端,也是軟件平臺(tái)的服務(wù)器。每個(gè)接口都包含特定的功能和服務(wù),這些功能和服務(wù)使軟件平臺(tái)能夠輕松調(diào)用RTS服務(wù)器的功能和服務(wù),以實(shí)現(xiàn)和監(jiān)視測試程序。
(4)人機(jī)交互界面的定制
為了給用戶提供友好而一致的人機(jī)交互界面,完善CHES的全英文界面,難以實(shí)現(xiàn)信號(hào)參數(shù)的獨(dú)立修改和測試程序的手動(dòng)執(zhí)行,在開發(fā)軟件平臺(tái)時(shí)采用了混合編程設(shè)計(jì)方法。充分利用PaaS平臺(tái)豐富可靠的功能庫和圖形控件,為用戶提供快捷鍵、工具欄按鈕、下拉菜單、彈出菜單、功能按鈕等人機(jī)交互界面,使操作方式簡單明了,用戶界面風(fēng)格統(tǒng)一。圖5所示為測試任務(wù)執(zhí)行界面的示意圖。
圖5 測試任務(wù)執(zhí)行界面示意圖
在目前特定的功能測試案例中,引入了基于PaaS云平臺(tái)開發(fā)的自動(dòng)化測試系統(tǒng)來解決測試程序移植和復(fù)用的問題,并結(jié)合了開放系統(tǒng)軟件體系結(jié)構(gòu)的層次架構(gòu),測試程序的開發(fā)、驅(qū)動(dòng)程序的開發(fā)、功能服務(wù)接口的設(shè)計(jì)、人機(jī)交互界面的定制等都已經(jīng)實(shí)現(xiàn)了測試開發(fā)和測試執(zhí)行功能,并在實(shí)際應(yīng)用中達(dá)到了預(yù)期的效果。
基于PaaS云平臺(tái),建立了一個(gè)開放的架構(gòu)和成熟的先進(jìn)自動(dòng)化測試平臺(tái),并遵循模塊化、組件化和標(biāo)準(zhǔn)化的設(shè)計(jì)原則,實(shí)現(xiàn)了測試程序的可移植性和可測試性,有效地增強(qiáng)了自動(dòng)測試系統(tǒng)的靈活性,可用于支持開放式通用測試軟件在功能性能測試領(lǐng)域的應(yīng)用以及對復(fù)雜系統(tǒng)的維護(hù)支持。