范書義,姜會(huì)霞,魏保華,王 成
(軍械工程學(xué)院,石家莊 050003)
?
ATML測(cè)試資源與測(cè)試需求自動(dòng)匹配方法研究
范書義,姜會(huì)霞,魏保華,王 成
(軍械工程學(xué)院,石家莊 050003)
基于ATML測(cè)試描述文檔自動(dòng)生成測(cè)試程序過程中,關(guān)鍵是實(shí)現(xiàn)測(cè)試資源與測(cè)試需求的自動(dòng)匹配;首先對(duì)ATML測(cè)試描述文檔中測(cè)試能力、測(cè)試需求、開關(guān)、端口、能力與資源的映射等基本數(shù)據(jù)元素的表示方法進(jìn)行分析研究,定義了與其對(duì)應(yīng)的C++數(shù)據(jù)類型;然后在研究圖論相關(guān)理論的基礎(chǔ)上,分析了描述文檔中測(cè)試路徑的表示方法,確定了采用鄰接矩陣表示測(cè)試路徑的方法;最后,在以上研究的基礎(chǔ)上,提出了以稀疏矩陣和單鏈表為基礎(chǔ)的測(cè)試能力與測(cè)試需求匹配算法,實(shí)現(xiàn)了測(cè)試能力與測(cè)試需求的自動(dòng)匹配;該算法在實(shí)際測(cè)試程序開發(fā)中得到了應(yīng)用,結(jié)果表明該算法能夠?qū)崿F(xiàn)基于ATML描述文檔的測(cè)試資源與測(cè)試需求自動(dòng)匹配,并能極大提供測(cè)試程序開發(fā)效率。
ATML;測(cè)試資源;測(cè)試需求;自動(dòng)匹配
在基于自動(dòng)測(cè)試標(biāo)記語言(automatic test markup language, ATML)中的測(cè)試描述文檔自動(dòng)生成測(cè)試程序過程中,需要判定一個(gè)給定的測(cè)試系統(tǒng)能否對(duì)指定的UUT進(jìn)行測(cè)試。如果測(cè)試系統(tǒng)有能力對(duì)指定的UUT進(jìn)行測(cè)試,還需要確定具備測(cè)試能力的測(cè)試儀器與被測(cè)UUT的之間是否有正確的線纜連接。
文獻(xiàn)[1]和文獻(xiàn)[2]通過分析UUT Description文檔、Instrument Description文檔、Test Adapter文檔和Test Description文檔,以確定測(cè)試系統(tǒng)中配置的儀器是否滿足測(cè)試需求。雖然兩篇文獻(xiàn)提供的方法都可以確定測(cè)試系統(tǒng)是否具有某種能力,但均未涉及測(cè)試能力到被測(cè)UUT端口之間的映射,因此不能判斷測(cè)試能力與測(cè)試需求之間是否存在測(cè)試通路,即不能判斷測(cè)試能力是否能夠連接到指定的UUT測(cè)試端口。
1.1 ATML能力
ATML中“能力(Capabilities)”[3]的概念與日常生活中能力概念有所不同,因?yàn)樗劝布臏y(cè)試能力,又包含測(cè)試需求。實(shí)際上可以這樣理解ATML中的能力,它能以某種方式將測(cè)試項(xiàng)目映射到測(cè)試儀器或測(cè)試系統(tǒng)上,使得可以確定一個(gè)測(cè)試系統(tǒng)是否能執(zhí)行指定的某項(xiàng)測(cè)試。為了與日常生活中的概念相一致和便于描述,后面文章中提到的能力僅僅指測(cè)試硬件提供的測(cè)試能力,而不包含測(cè)試需求,而文中提到的測(cè)試需求指測(cè)試UUT時(shí)需要測(cè)試系統(tǒng)提供的測(cè)試能力。
ATML通過對(duì)測(cè)試儀器可產(chǎn)生或可測(cè)量的信號(hào)的描述來表示測(cè)試儀器的能力,通過對(duì)需施加給UUT的激勵(lì)信號(hào)或需測(cè)量的UUT響應(yīng)信號(hào)的描述來表示測(cè)試需求。
描述ATML能力需要的信息包括[4]:
● 需要產(chǎn)生的信號(hào);
● 信號(hào)之間的同步;
● 信號(hào)施加的位置;
● 測(cè)試系統(tǒng)的拓?fù)浣Y(jié)構(gòu);
● 測(cè)試系統(tǒng)中每種測(cè)試儀器可產(chǎn)生的信號(hào)的類型、精度;
● 測(cè)試系統(tǒng)中每種測(cè)試儀器可測(cè)量的信號(hào)的類型、精度。
1.2 描述能力的主要元素
在描述ATML能力時(shí),用到的主要元素包括連接器(Connector)、針腳(Pin)、端口(Port)、線纜連接(Wire list)和資源(Resource),為了便于理解,首先對(duì)這些概念進(jìn)行介紹。
連接器指硬件(如UUT、儀器、測(cè)試適配器、測(cè)試平臺(tái)等)的物理實(shí)體,如RS232口、D型口等。端口是一個(gè)邏輯實(shí)體,它指的是可以映射到一個(gè)或一組信號(hào)的抽象接口,信號(hào)可以流入或流出端口,端口只是表示邏輯上的接口和接口信號(hào)的存在。連接器、針腳和端口之間的關(guān)系如圖1所示。
圖1 連接器、端口和針腳
圖1中J1為連接器,J1包含14個(gè)針腳,分為3個(gè)端口P1、P2和P3(注意:這里的端口是第二種類型的端口)。
資源指一個(gè)邏輯實(shí)體,表示儀器的內(nèi)在能力。在ATML中,儀器能力是通過一組資源來描述的。一個(gè)儀器可以包含一個(gè)或多個(gè)資源,而一個(gè)資源也可以對(duì)應(yīng)一個(gè)或多個(gè)能力。ATML中資源只是作為一個(gè)邏輯實(shí)體實(shí)現(xiàn)信號(hào)到端口的映射,并且它還可以定義對(duì)信號(hào)的約束以及同一個(gè)儀器中不同能力之間的關(guān)系。
線纜連接用于描述ATS組件間的互連信息,可以提供信號(hào)在ATS中的連接路徑。線纜連接除了包含硬件之間的靜態(tài)連接之外,還包括針對(duì)每項(xiàng)具體測(cè)試的測(cè)試路徑線纜連接,利用這些信息可以生成測(cè)試圖。
1.3 儀器能力和ATML測(cè)試需求描述
ATML對(duì)儀器能力的描述是通過以下步驟實(shí)現(xiàn)的:
1)定義儀器物理接口;
2)定義儀器能力,主要部分為信號(hào)定義;
3)定義資源;
4)將能力映射到資源;
5)將資源接口連接到儀器接口。
通過以上步驟就可以將儀器的物理接口與信號(hào)連接在一起。
ATML提供了TestDescription.xsd模式文檔來描述測(cè)試需求。ATML中的測(cè)試需求的主要部分是在ATML測(cè)試描述文檔中利用IEEE Std 1641中定義的信號(hào)描述的。ATML支持以下測(cè)試需求信息的描述:
● 信號(hào)類型,如AC_SIGNAL;
● 信號(hào)角色,包括Source、Sensor或Monitor;
● 測(cè)量、監(jiān)視或控制的信號(hào)屬性,如直流電壓等;
● 信號(hào)屬性值的范圍、分辨率、精度;
● 信號(hào)同步關(guān)系;
● 與UUT針腳的信號(hào)連接。
2.1 測(cè)試設(shè)備與UUT間的互連
要實(shí)現(xiàn)ATE對(duì)特定UUT的測(cè)試,需要將UUT連接到測(cè)試系統(tǒng)中,大多數(shù)情況下還需要使用ITA來匹配ATE和UUT的連接。ATE、ITA和UUT的連接示例如圖2所示。
圖2 ATE、ITA和UUT之間的互連
圖2中的UUT有兩個(gè)連接器J1和J2,這兩個(gè)連接器及其針腳信息在ATML UUT描述文檔中定義。ITA有3個(gè)連接器J1、J2和J3,這3個(gè)連接器及其針腳信息在ATML測(cè)試適配器描述文檔中定義。ATE有一個(gè)連接器J1,它在測(cè)試平臺(tái)描述文檔中定義。連接ITA和UUT的兩根電纜,以及ATE、ITA和UUT的連接都是在ATML的WireLists描述文檔中定義的。
此外,WireLists模式文檔中還定義了元素TestWireList,該元素用于定義TestDescription文檔描述的每項(xiàng)測(cè)試的信號(hào)激勵(lì)和測(cè)量路徑[5]。該元素可用于生成測(cè)試程序的測(cè)試圖,測(cè)試圖可以提供從測(cè)試平臺(tái)儀器到UUT端口的完整路徑。
2.2 基本數(shù)據(jù)結(jié)構(gòu)定義
根據(jù)ATML能力描述,可以判斷ATML描述的測(cè)試系統(tǒng)是否能夠?qū)UT進(jìn)行測(cè)試,其中包含對(duì)測(cè)試路徑的判斷。但ATML文檔作為一種半結(jié)構(gòu)化的數(shù)據(jù)表示方式,檢索非常不方便且處理速度慢。而在匹配ATML資源能力與測(cè)試需求時(shí),需要用到大量的檢索操作,所以直接訪問XML格式的ATML文檔顯然不是一個(gè)合理的選擇。所以需要將它們換成計(jì)算機(jī)方便檢索的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),以方便計(jì)算機(jī)處理。
2.2.1 連接器、端口、資源、針腳和物理接口
連接器、端口、資源、針腳和物理接口是具有關(guān)聯(lián)關(guān)系的,根據(jù)這些數(shù)據(jù)描述文檔的特點(diǎn),宜采用struct類型表示,它們的定義及其關(guān)系如圖3所示(篇幅所限,圖中沒有給出每個(gè)struct類型的數(shù)據(jù)域名稱和類型)。
圖3 連接器、端口、資源、針腳和物理接口
2.2.2 信號(hào)和能力
ATML中的能力表示采用了IEEE Std 1641中定義的信號(hào)。IEEE Std 1641中基本信號(hào)組件庫(BSC)和測(cè)試信號(hào)框架庫(TSF)中Signal元素的定義分別如圖4和圖5所示。
圖4 BSC中的信號(hào)定義
圖5 TSF中的信號(hào)定義
比較兩圖可以看出,這兩個(gè)庫中信號(hào)的結(jié)構(gòu)類似,所以可以定義一個(gè)統(tǒng)一的信號(hào)類型Signal表示這兩個(gè)庫中的信號(hào),通過綜合分析各種數(shù)據(jù)類型的特點(diǎn)和程序開發(fā)要求,將其定義為union類型比較合適,這樣可以將所有信號(hào)統(tǒng)一用一個(gè)union類型定義即可,簡(jiǎn)化了數(shù)據(jù)類型的種類,方便了使用。
這些類型之間的關(guān)系如圖6所示。無論是描述儀器、測(cè)試平臺(tái)或測(cè)試適配器的能力,還是描述測(cè)試需求中的信號(hào)需求描述,只要是符合IEEE Std 1641規(guī)范,都可以采用上面定義的能力類型來表示。
2.2.3 能力、資源和儀器端口間的映射
能力、資源和儀器端口間的映射關(guān)系也需要相應(yīng)的數(shù)據(jù)結(jié)構(gòu)表示,由于能力和資源之間、資源和儀器端口之間是多對(duì)多的映射關(guān)系,并且能力和資源之間的映射可以有多種含義,因此數(shù)據(jù)結(jié)構(gòu)不但要表示能力與資源之間的關(guān)聯(lián),還要表示關(guān)系的具體含義。
圖6 信號(hào)類型和能力類型
刺葡萄(Vitis davidii Foex.)[1]是一種野生葡萄,屬于被子植物門(Magnoliphyta),雙子葉植物綱(Dicotyledoneae),葡萄目 (Vitales),葡萄科 (Vitaleae,Vine Family),葡萄屬 (Vitis),真葡萄亞屬(EuVitis),東亞種群。刺葡萄是福建省寧德市福安市的特產(chǎn),是國(guó)家農(nóng)產(chǎn)品地理標(biāo)志保護(hù)產(chǎn)品。福安市穆云畬族鄉(xiāng)葡萄產(chǎn)業(yè)帶以溪塔刺葡萄溝為主產(chǎn)地,遍及虎頭、玉林、高嶺等16個(gè)村,面積400多hm2,年產(chǎn)量逾7 500多t,是農(nóng)業(yè)三大主導(dǎo)產(chǎn)業(yè)之一[2]。
ATML中能力、資源和儀器端口之間的映射采用了XML的XPath表達(dá)式,XPath采用類似于Window操作系統(tǒng)文件目錄的表示方式。能力與資源之間的映射可以采用鄰接矩陣[6]的方式進(jìn)行存儲(chǔ),矩陣中值為1的位置表示對(duì)應(yīng)的能力和資源有關(guān)聯(lián)關(guān)系。典型萬用表的各種能力和對(duì)應(yīng)的萬用表資源的鄰接矩陣如表1所示。
從表1可以看出,表中的許多元素都為空,表明該矩陣是稀疏矩陣,這也說明一個(gè)能力端口只和一個(gè)或少數(shù)幾個(gè)資源端口之間有關(guān)聯(lián)關(guān)系,對(duì)于稀疏矩陣來說,沒有哪一種存儲(chǔ)結(jié)構(gòu)是最好的,應(yīng)結(jié)合稀疏矩陣的具體情況來選擇存儲(chǔ)結(jié)構(gòu)[7-8]。結(jié)合測(cè)試系統(tǒng)實(shí)際應(yīng)用情況,選擇CSR存儲(chǔ)需要19個(gè)存儲(chǔ)單元,如下所示:
存儲(chǔ)A中值為1的元素的列坐標(biāo)數(shù)組C={1,3,9,11,2,4,5,7,10,12,6,8,13,14}。
存儲(chǔ)A中每一行在數(shù)組C中起始元素序號(hào)的數(shù)組R={1,5,11,14,14}。
為了表示關(guān)聯(lián)之間的具體含義,需要將表示矩陣的數(shù)組元素定義為struct類型,利用其中的數(shù)據(jù)域指明能力和資源之間的關(guān)系。實(shí)際上,只需區(qū)分當(dāng)一種能力對(duì)應(yīng)多種資源時(shí),能力是否占用資源即可。
與此類似,資源與儀器端口之間的映射,測(cè)試平臺(tái)、適配器內(nèi)部線纜連接,ATE、ITA和UUT間的連接及測(cè)試項(xiàng)目的測(cè)試通路同樣適宜采用稀疏矩陣進(jìn)行存儲(chǔ)。
2.2.4 開關(guān)
自動(dòng)測(cè)試系統(tǒng)中,為了復(fù)用測(cè)試儀器,不可避免地要使用開關(guān)。開關(guān)拓?fù)淇筛鶕?jù)復(fù)雜程度分成三類:簡(jiǎn)單繼電器開關(guān)、多路開關(guān)和矩陣開關(guān)[9]。
無論對(duì)于哪種類型的開關(guān),其針腳數(shù)量和可能的連接數(shù)量都是不確定的,所以定義的開關(guān)數(shù)據(jù)結(jié)構(gòu)應(yīng)能適應(yīng)這種要求。因此,可以采用C++支持的標(biāo)準(zhǔn)模板庫(standard template library,STL)中的vector容器來存儲(chǔ)針腳和可能的連接。最終定義的兩種開關(guān)數(shù)據(jù)結(jié)構(gòu)的類C++代碼如下所示。
表1 能力、資源鄰接矩陣
typedef struct _switch_pin_conn{//定義開關(guān)兩針腳的連接結(jié)構(gòu)
string conn_description; //連接說明
string pin_from;
string pin_to;
}switch_pin_conn;
typedef struct _switch{ //簡(jiǎn)單繼電器開關(guān)
vector
vector
……
}switch;
矩陣開關(guān)有可以是單線或多線矩陣開關(guān),可將多線矩陣開關(guān)看作是多個(gè)單線矩陣開關(guān)。有的多路開關(guān)模塊可以配置成多種模式,如果在測(cè)試系統(tǒng)中使用了多種配置方式,應(yīng)將不同的配置方式看作是不同的資源。
typedef struct _matrix_switch{//矩陣開關(guān)
vector
vector
vector
……
}matrix_switch;
2.3 能力與測(cè)試需求匹配算法
定義數(shù)據(jù)結(jié)構(gòu)之后,還要根據(jù)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)合適的算法來實(shí)現(xiàn)ATML中描述的能力與測(cè)試需求之間匹配。能力與測(cè)試需求之間匹配的目的是要檢查測(cè)試系統(tǒng)提供的測(cè)試能力是否能夠滿足測(cè)試需求。如果測(cè)試系統(tǒng)不能滿足UUT的測(cè)試需求,則表示該測(cè)試系統(tǒng)不能對(duì)指定UUT進(jìn)行測(cè)試,系統(tǒng)應(yīng)給出相應(yīng)的提示,并停止測(cè)試程序的生成過程。
能力與測(cè)試需求的匹配包含兩方面的內(nèi)容,一是能力的判斷,即測(cè)試系統(tǒng)提供的測(cè)試能力是否滿足UUT的測(cè)試需求。二是路徑的判斷,即滿足UUT測(cè)試需求的能力與測(cè)試需求之間是否存在線纜連接。如果能力不能滿足測(cè)試需求或不存在測(cè)試路徑,則表明測(cè)試系統(tǒng)提供的測(cè)試能力與UUT的測(cè)試需求不匹配,否則表示測(cè)試系統(tǒng)提供的測(cè)試能力與UUT的測(cè)試需求匹配,測(cè)試系統(tǒng)能夠?qū)χ付ǖ腢UT進(jìn)行測(cè)試。
能力與測(cè)試需求匹配算法描述如下:
步驟1:檢查測(cè)試系統(tǒng)的ATML描述文檔是否完整,如不完整,則提示并退出程序;
步驟2:建立表示測(cè)試能力與資源、資源與儀器端口或測(cè)試設(shè)備端口之間映射關(guān)系的鄰接矩陣。從測(cè)試平臺(tái)描述文檔、測(cè)試適配器描述文檔、儀器描述文檔、儀器實(shí)例文檔中提取這些信息;
步驟3:建立表示ATE、ITA和UUT之間連接關(guān)系的鄰接矩陣,以及測(cè)試項(xiàng)目測(cè)試通路鄰接矩陣。從WireLists描述文檔中提取這些信息;
步驟4:建立測(cè)試系統(tǒng)能力鏈表capLists和UUT測(cè)試需求鏈表reqLists。從測(cè)試平臺(tái)描述文檔、測(cè)試適配器描述文檔、儀器描述文檔、儀器實(shí)例文檔、測(cè)試描述文檔中提取這些信息;
步驟5:對(duì)于reqLists中的每一個(gè)測(cè)試需求req,根據(jù)線纜連接中測(cè)試項(xiàng)目線纜連接查找鏈表capLists中對(duì)應(yīng)的測(cè)試能力cap;
步驟6:如果不能找到滿足當(dāng)前req的測(cè)試能力,則返回匹配不成功,程序退出;
步驟7:如果找到了滿足當(dāng)前測(cè)試需求req的測(cè)試能力cap,則返回匹配成功,程序退出。
以上步驟中關(guān)鍵的兩點(diǎn)是判斷測(cè)試能力能否滿足測(cè)試需求和查找能力映射到的物理端口與測(cè)試需求物理端口之間的物理通路。
測(cè)試能力能否滿足測(cè)試需求的判斷比較簡(jiǎn)單,此處不再贅述。能力映射到的物理端口與測(cè)試需求物理端口之間的物理通路實(shí)際上構(gòu)成了一個(gè)圖,所以可以應(yīng)用離散數(shù)學(xué)中圖論[10]的相關(guān)知識(shí)來考察測(cè)試能力到測(cè)試需求間的可達(dá)路徑。文獻(xiàn)11討論了幾種常見的由鄰接矩陣求圖的可達(dá)矩陣[10]算法,也就是圖中任意兩個(gè)頂點(diǎn)之間是否存在通路的算法,其中效率最高的是Warshall算法。
本文結(jié)合ATML測(cè)試描述文檔及測(cè)試程序自動(dòng)生成的相關(guān)要求,定義了ATML文檔中相應(yīng)元素的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。在此基礎(chǔ)上,結(jié)合圖論相關(guān)知識(shí)設(shè)計(jì)了測(cè)試能力與測(cè)試需求的匹配算法。該算法在我院研制的通用機(jī)電檢測(cè)平臺(tái)測(cè)試程序自動(dòng)生成過程中得到了應(yīng)用,節(jié)約測(cè)試程序開發(fā)時(shí)間成本達(dá)70%,體現(xiàn)出了巨大優(yōu)勢(shì),證明了算法的有效性和正確性。本文提出的匹配算法也可以為其它類似研究提供方法指導(dǎo)。
[1] John Ralph.A proposed comprehensive architecture utilizing the automatic test Markup language (IEEE 1671 and 1636.1)[A].IEEE AutoTestCon[C]. 2007:179-185.
[2] Pirker-Frühauf A.A knowledge-based test program following the ATML Standard [A]. IEEE AutoTestCon.[C]. 2009:195-199.
[3] IEEE Std 1671-2010.Standard for Automatic Test Markup Language (ATML) for Exchanging Automatic Test Equipment and Test Information via XML[S].2011,01.
[4] IEEE Std 1671.2.Trial-Use Standard for Automatic Test Markup Language (ATML) for Exchanging Automatic Test Equipment and Test Information via XML: Exchanging Instrument Descriptions[S]. 2008,12.
[5] IEEE Std 1671.5.Trial-Use Standard for Automatic Test Markup Language (ATML) for Exchanging Automatic Test Equipment and Test Information via XML, Exchanging Test Adapter Information[S]. 2008,12.
[6] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2007.
[7] 張永杰,孫 秦.稀疏矩陣存儲(chǔ)技術(shù)[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào),2006,29(3):38-41.
[8] Smailbegovic F, Georgi N. Vassiliadis G S.Sparse matrix storage format [J]. Journal of Signal Processing Systems,2005(4):445-448.
[9] 測(cè)試系統(tǒng)信號(hào)開關(guān)[EB/OL]. http://cp.literature.agilent.com/litweb/pdf/988-8627CHCN.pdf. 2005.
[10] 耿素云,屈婉玲.離散數(shù)學(xué)[M].北京:北京大學(xué)出版社,2003.
[11] 王欣欣,李金保.關(guān)于由鄰接矩陣求可達(dá)性矩陣的方法[J].吉林化工學(xué)院學(xué)報(bào),2005,22(4):89-93.
Study of Test Resources and Test Requirements Automatic Matching Method in ATML
Fan Shuyi, Jiang Huixia, Wei Baohua, Wang Cheng
(Ordnance Engineering College, Shijiazhuang 050003, China)
In the process of test program automatic generation based on ATML test description documents, the key is to realize the automatic matching of test resources and test requirements. Firstly, the basic data elements, such as ATML test ability, test requirement, switch, port, capability and resource mapping, are analyzed, and the corresponding C++ data types are defined. Then, based on the theory of graph theory, the representation method of the test path is analyzed, and the adjacency matrix is used to represent the test path. Finally, on the basis of above research, a test capabilities and test requirements matching algorithm based on sparse matrix and single linked list is proposed. The automatic matching of test capabilities and test requirements is realized. The algorithm has been applied to the development of real test program. The result shows that the algorithm can realize the automatic matching of test resource and test requirements based on ATML description documents. It also can greatly improve the efficiency of the test program development.
ATML, test resource, test requirements, automatic matching
2015-11-19;
2015-12-14。
國(guó)家自然科學(xué)基金青年科學(xué)基金項(xiàng)目(61501493)。
范書義(1974-),男,河北靈壽人,博士,講師,主要從事自動(dòng)測(cè)試系統(tǒng)方向的研究。
1671-4598(2016)06-0008-04
10.16526/j.cnki.11-4762/tp.2016.06.002
TP391
A