摘 要: 針對ATS工程應用中測試任務開發難度大、維護成本高的問題,分析軟件測試自動化中的腳本技術,設計了一套新的腳本規范,提出了一種面向應用的測試任務自動生成與運行方法。基于該方法,構建了ATS通用開發平臺的軟件體系結構。分析了其中的層次結構、模塊功能、接口標準,介紹了該方法的具體實現過程。實際應用表明,該方法實現了測試系統的任務重構、系統擴展和測試任務生成與運行的零編程,提高了ATS軟件的開發效率。
關鍵詞: ATS; 測試任務; 零編程; 腳本技術
目前虛擬儀器ATS(自動測試系統)的研究是國內外測試領域的研究熱點,其研究方向主要集中在TPS[1]的可移植性、ATE的互換性和軟件模塊的可重用性上,形成了基于儀器[1]、基于信號[2]、基于組件[1]的三類較為成熟的ATS軟件體系結構,但同時也不難看到測試人員開發和維護測試系統的難度正不斷增大,這嚴重制約著ATS的推廣應用。
傳統的測試任務生成方法,不僅開發難度大、維護成本高,而且需要測試人員既要懂得測試原理,也要有扎實的程序設計基礎。當前國際通用的自動測試語言——ATLAS[3],作為面向被測單元而與測試儀器無關的信號描述語言,實現了測試程序與ATE(自動測試設備)的無關性,但基于該語言的ATS開發成本極高,同時也需要開發人員花大量時間掌握紛繁的ATLAS語言結構。這都與一般工程應用實際的要求存在著較大差距。為此通過借鑒軟件測試自動化中的腳本技術[4],并結合虛擬儀器成熟的軟件框架結構,提出面向應用的測試任務自動生成與運行方法,實現從傳統用代碼操作PXI儀器的開發方式轉換為面向應用的開發方式,有效解決在變更測試任務需求時,傳統自動化測試方法難以快速適應的問題。
該方法的核心思想是利用測試人員熟悉儀器操作,為測試人員設計一個操作和測試程序相對應的自動生成、運行平臺,力求實現測試用戶開發測試系統的零編程 [5]。本文將重點介紹該方法所基于的平臺軟件體系結構以及各功能模塊的功能、組成和接口情況。
1 通用ATS開發平臺的軟件體系結構設計
結合現有的ATS軟件體系結構、分層思想,設計基于該技術的通用ATS開發平臺軟件體系結構[6]如圖1所示,其中實線箭頭表示實際存在的調用關系,虛線表示存在的間接的調用關系。整個故障測試系統分為四層,下層通過組件技術封裝成動態鏈接庫的形式供上層調用,這樣方便系統的維護,模塊化的開發也將有利于提高開發效率。各層具體功能如下:
(1) 測試任務管理層
每一個測試項目都分為若干個測試單元,每個測試單元由多個測試模塊組成,一個測試模塊由多個元器件組成,對測試單元、測試模塊、元器件分別添加測試任務就能完成不同規模、不同層次的測試。在管理層就是完成測試項目流程庫的構建,是自動測試的前提。
(2) 儀器管理層
該層作為中間層,主要實現向上提供統一的調用接口,對下層的儀器模塊實現管理。另外,該層還完成腳本的管理、編輯,在該層實現測試任務腳本的生成。
(3) 儀器模塊層
該層由具體的儀器模塊組成,一個儀器模塊外部由儀器軟面板構成,內部主要包含針對該儀器的三個功能模塊:直接運行、腳本生成、腳本解釋器。腳本解釋器功能模塊供腳本執行層調用,它是測試任務管理層實現自動測試的基礎。腳本生成功能模塊主要提供給儀器管理層完成測試任務腳本的生成。
(4) 腳本執行層
該層作為儀器管理層的腳本管理功能的具體實現,供測試任務管理層在測試任務執行時調用,主要完成根據不同的腳本語句第一個標識符(邏輯設備名或其他腳本控制標識),將測試任務的腳本分發給不同儀器的解釋器解釋執行。
四層功能既相互獨立,又相互依存。面向應用的測試任務自動生成與運行方法以整個軟件框架為依托,是整個測試系統的核心思想。
2 腳本規范設計
為了保證腳本的統一解釋運行,使得測試運行時具有良好的交互性,通過借鑒成熟的軟件自動測試中的關鍵字驅動腳本技術[3],并且利用IVI中通用驅動函數庫,定義了一套腳本規范,包括儀器操作腳本集、運行提示腳本集、腳本注釋集、腳本延時運行集、并行腳本。
(1) 儀器操作腳本集中語句語法格式定義為:
DevName,OPERAT,(Para 1,...,Para n),(RetPara), RetType;
其中:DevName為邏輯設備名,例如,“AFA”(音頻分析儀),“DMM”(數字萬用表);OPERAT為儀器操作定義,例如,“CONFIG”(配置),“OPEN”(打開),“CLOSE”(關閉);Para n為儀器參數,例如,輸出信號的頻率、幅值,輸入信號的采樣頻率、采樣點數等,其順序關系確定后就被固定下來;RetPara為返回參數,指定該次測試需要返回的測量值;RetType為返回類型,將測量值按照指定的數據格式進行轉換。
(2) 運行提示腳本集定義如下:
MSG,STRING,這是操作提示,NORET; MSG,END,NORET;
(3) 腳本注釋集:
COMMENT,這是腳本注釋;
(4) 腳本延時運行集:
DELAY,延時值(雙精度數值);
(5) 并行腳本集:
SUBSCRIPT_BEGIN,并行腳本標識;
SUBSCRIPT_END,并行腳本標識;
SUBSCRIPT_START,并行腳本標識。
3 儀器模塊設計
為了儀器管理層更好地管理、維護儀器模塊,利用制定儀器模塊統一的開發方法和接口標準,具體的開發步驟如下:
(1) 分析該儀器的功能、參數、驅動函數情況,利用腳本規范制定該模塊的腳本語句;
(2) 設計該儀器模塊的軟界面;
(3) 完成該模塊直接運行模式、腳本生成模式和對應解釋器功能實現;
(4) 封裝該模塊成動態鏈接庫,提供統一的三個接口供上層調用,具體接口如下:
int DevNameInterpreter(char *lineScript, void *PTESTTABLE); //解釋器入口
int LaunchDevNameDevice(void *PTESTTABLE);//儀器面板入口
int EnforceCloseDevNameDevice(void *PTESTTABLE);//強制關閉儀器入口
其中DevName指定義的邏輯設備名,例如數字萬用表定義為DMMInterpreter,*lineScript指傳遞給該解釋器解釋執行的腳本指針,*PTESTTABLE指整個系統的配置文件指針,從該文件讀入儀器資源符,返回值的指針等信息。在直接運行模式下,儀器的操作按鈕直接調用儀器驅動庫函數完成相應功能。在腳本生成模式下,儀器操作按鈕觸發腳本生成,腳本生成器將儀器參數作為操作屬性按照腳本規范中的定義組成一條有效的操作腳本語句生成給用戶。儀器模塊中的解釋器將有效腳本解釋成儀器驅動函數庫中的具體函數,并調用具體函數操作。
以射頻信號源為例,根據腳本規范定義其所需的初始化、配置參數、上變頻、停止腳本語句分別如下:
RFSG,INIT,信號源資源名,上變頻資源名,NORET;
RFSG,CONFIG,調制模式,載波頻率,調制頻率,調制頻偏,NORET;
RFSG,UPCONVERT,載波輸出,輸出功率電平,載波帶寬,NORET;
RFSG,STOP,NORET;
射頻信號源的軟面板儀器操作與腳本之間對應的關系如圖2所示。
4 測試任務自動生成與運行的實現
測試任務的自動生成首先建立在被測設備的全面分析的基礎之上,通過分析理清被測設備輸入和待測信號的關系,根據測試任務需求,用戶在信號對應的儀器模塊的軟件界面上直接操作儀器,比如使用數字IO配置信號通道,使用射頻信號源發送射頻信號,使用射頻分析儀進行頻譜分析。在對應軟面板操作結束后,其儀器模塊中的解釋器將完成對操作記錄的轉化,生成相應的操作腳本。在一系列操作能滿足測試需求后,整個測試過程將被以腳本的形式記錄保存。在需要重現某一測試任務的測試過程時,儀器操作腳本可以被腳本執行層統一調度后解釋執行,通過預定義的交互接口,調用程序能方便快捷地得到測試返回結果。圖3給出該技術的基本原理。
生成的測試任務腳本利用測試任務管理層可以添加到數據庫中,通過分析被測設備的測試要求可以構建整個測試項目的不同層次的測試任務,比如通信設備的整機測試、板級測試、功能模塊測試、元器件級測試。當執行一個故障測試時,測試任務的自動運行由測試任務管理層提交測試腳本給腳本執行層開始,到腳本執行層解釋執行完腳本后結束,測試項目的自動運行流程圖如圖4所示。
面向應用的測試任務自動生成與運行技術實現了具體測試系統開發的零編程,用戶在開發和維護測試系統時,只需要關心被測設備的信號關系、故障診斷等專業知識,只要會使用儀器就會開發和維護,這將用戶從底層測試代碼開發的過程中解放出來,使得用戶可以直接關注于被測對象,而不必花費太多精力在如何設計程序上。由于借助于模塊化的標準開發,用戶自身可以方便地修改某個模塊或者變更某測試任務而不影響整個系統,大大縮短了開發和維護的難度。
通過對上述通用ATS開發平臺功能的擴張,例如增加測試任務管理層中測試點的電氣特性參數、實物圖信息,深化腳本的控制、操作等功能,就能實現真正意義上的故障測試通用開發平臺。利用該方法開發的多個通信設備電路板板級和元器件級故障測試系統已交付某單位正式使用,證明了整個技術的可行性。
參考文獻
[1] 李寶安,李行善.基于組件的自動測試系統(ATS)軟件體系結構[J].電子測量與儀器學報,2002,16(4):74-78.
[2] 林翔,孟晨.基于信號組件的ATS軟件系統模型[J].儀表技術,2008(6):46-50.
[3] 劉勇,遲華山,許愛強. 新一代通用測試語言—ATLAS2000[J].國外電子測量技術,2006,25(3):52-55.
[4] 凌永發,張云生,郭秀萍.軟件測試自動化中的腳本技術[J]. 云南民族學院學報:自然科學版,2002,11(1):544- 548.
[5] 湯寶平.新一代虛擬儀器—智能控件化虛擬儀器系統 的研究[D].重慶:重慶大學.2003:5-10
[6] 余成波,馮麗輝,潘盛輝.虛擬儀器技術與設計[M].重慶:重慶大學出版社,2006.7:258-260