張 偉 廖 濤 吳 昊 慶 毅
(成都蓉威電子技術有限公司 四川 成都 610074) (中國電子科技集團公司第二十九研究所 四川 成都 610036)
自動測試系統(Automatic Test System,ATS)已廣泛應用于軍用電子裝備的測試與測量中,ATS的大量應用及不斷進步的測試理念和測控技術對電子裝備效能的發揮起到了至關重要的作用。
ATS發展的早期階段,研發人員一般直接面向測試儀器編程,綁定測試程序與測試儀器,導致難以適應升級需求或任務擴展。當前主流的ATS以標準總線和通用測試驅動為基礎[1],根據需求設計測試策略,使測試系統具備一定的擴展能力和針對性,但由于體系架構上未做擴展性設計,難以大粒度地復用,屬于一種專用型的測試系統。
相對于專用測試系統,通用測試平臺則是一種由公共測試資源組成的、應用于多場景、針對多系統的測試平臺,美國海軍陸戰隊的COBRA/T[2]是一種應用于基地級和戰場級兩種場景的ATS,具有體積小、功耗低的特點;洛克希德·馬丁公司搭建了LM-STAR[3],應用于F-35閃電II、F-16布洛克60、F-22和AH-64多型系統的維護保障測試,具備支持多任務需求的能力。上述通用化測試平臺減少了ATS的種類和被測系統全壽命周期的保障總成本[4]。
體系架構和標準是自動測試領域關注的重點,IEEE提出的廣域測試環境ABBET框架[5]將測試軟件合理分層配置, 實現測試軟件與測試系統硬件的無關性[6];IVI基金會提出的面向信號的自動測試思想[7],將UUT對儀器能力的需求轉化為對信號的需求,提升了TP的可移植性;IEEE發布的ATML標準[8]有效解決自動測試系統中各種接口和測試診斷信息表達和交換的標準化問題,提高自動測試系統的通用程度和性能[9];美國國防部自動測試系統執行總局協調開展的“NxTest”下一代測試系統[10]實現了通用化的自動測試架構。上述一系列自動測試體系和標準,極大地推動了ATS的發展。
從開發方式的角度,二次開發平臺是一種有效應對重復開發的方案。北航提出的通用二次開發平臺[11]縮短了ATS開發周期,降低了開發成本,提高了標準化程度。文獻[12]提出的UTest通用開發平臺提高了TP的開發效率。上述二次開發平臺基于共性的內核進行定制修改和功能擴展,通過復用技術縮短周期、降低成本。
本文則針對電子對抗裝備存在的多品類、小批量、復雜程度高[13]等特點,提出一種全新的、基于軟件產品線的方法,有效應對該領域ATS對共性和變化性的要求。軟件產品線(Software Product Line,SPL)是一種預先規劃和系統化的大規模復用技術[14],通過構件復用以較少的時間和成本創建一系列高質量的產品[15]。本文分析領域需求,建立電子對抗裝備自動測試產品線(以下或簡稱“產品線”),實現測試程序有效復用的同時又減少程序編寫量,降低了自動測試產品的重復開發率和開發難度,減少交付延遲,提高產品質量,最終有效降低成本[16]。
對特定領域共性和可變性的分析是領域工程中一項重要活動[17],技術產出是為一組相關應用或產品建立公共的體系結構,其定義了領域和衍生產品的共性和可變性[18],為開發者提供了生成新產品實例的藍圖[19],是產品線所有可重用核心資產中的關鍵技術性資源。電子對抗自動測試產品線體系結構如圖1所示,底層為硬件平臺層,包括多種類型的測試儀器及各類總線,用于信號的激勵和測量;驅動體系層的VISA I/O屏蔽下層各類型總線差異,搭建訪問儀器的通用通道。IVI驅動屏蔽測試儀器的差異,為上層提供控制不同儀器的統一接口;領域構件層通過對測量的抽象,形成多種可復用的基礎軟件構件,是產品線核心資產之一;應用層包含自定義應用程序或商用測試執行軟件,核心工作在于調用并執行測試程序(Test Program,TP)序列,完成測試工作。

圖1 電子對抗自動測試產品線體系架構
電子對抗自動測試產品線本質上是基于“測試能力”設計“測試策略”滿足“測試需求”。底層包括支持混合總線的儀器集合,表征產品線的“測試能力”;中間層使產品線向下兼容多種不同架構和類型的測試儀器及其通信總線,向上匹配電子對抗系統多樣的測試需求,表征“測試策略”;頂層使用標準的描述語言定義被測單元,表征了電子對抗領域“測試需求”。
測試產品通常由一系列的共性特征和少量的變化點構成[20],硬件平臺和驅動體系使衍生產品具備相似的行為特性和質量屬性,體現了對共性的支持;領域共性構件通過對可變性特征的提取、篩選、組合和配置[21],實現測試程序的有效復用,進而衍生出一個產品譜,體現了對可變性的支持。
產品線共性平臺包含“硬件平臺”和“驅動體系”。硬件平臺由NI、是德、R&S等廠商的電子測試測量儀器構成,并且各儀器支持如GPIB、Ethernet和PXI等多種總線結構。產品線定義測試能力描述文件InstInfo.xml,對儀器固有信息、能力信息、資源信息等內容進行標準化的描述,包含儀器的邏輯名及與邏輯名匹配的功能、帶寬、采樣率、量程、精度和相應的驅動信息等,實現測試需求到測試能力的映射,支撐產品有效快速地演化。
驅動體系包括VISA和IVI驅動。VISA I/O是VPP系統聯盟制定的接口軟件標準及其相關規范的總稱[22],用于搭建訪問不同儀器的通用通道,為上層驅動屏蔽混合總線結構的差異。IVI(Interchangeable Virtual Instruments)是一種測試程序高性能、易于開發維護的編程模型[23],包含專用驅動(IVI Specific Driver)和類驅動(IVI Class Driver),向下利用VISA建立的通用通道實現對儀器的控制,向上提供標準的儀器類操作接口。產品線采用類驅動開發測試程序,使測試程序脫離了具體儀器的約束,具備“可移植性”。共性平臺體系結構拓撲形式[24]如圖2所示。主控計算機利用接口轉換卡在物理上連通各儀器,主控軟件通過物理地址來訪問各個儀器,基于VISA驅動,可以用相同的函數訪問GPIB、VXI、LXI和PXI等不同總線類型的儀器,傳遞不同“操作指令”實現不同的功能;而IVI驅動提供了更高級別的功能函數,通過物理地址即可調用各儀器的功能,不關心儀器總線類型和“操作指令”,使儀器和總線的差異對上層應用透明。

圖2 混合總線自動測試系統
共性平臺在產品線生命周期中保持基本穩定,并在應用工程中成體系地應用于不同衍生產品,使衍生產品支持儀器庫中各種儀器的動態互換和TP的可移植。
測試程序(TP)是對UUT測試方法的描述,其“有效復用”是產品線關注的重點,有效復用不等同于“可移植”,其關注點在TP不被具體測試需求所綁定,實現與特定需求的解耦,能有效應對需求的變化。
對電子對抗裝備的測試,即是對測頻能力、測向能力、測幅能力、時域參數測試能力和干擾能力進行檢測,要求產品線模擬激勵信號并測量輸出信號。信號激勵和測量需求的背后存在大量共性特征,如共性的方法或對儀器的共性操作,將這些共性特征對應的軟件功能模塊稱作測試子項(Test Subitem,TS),TS既是面向儀器操作的共性序列,也是面向測試需求的變化點,將少量的TS組合配置,就能形成大量功能各異的TP,有效地匹配測試需求的變化,完成測試任務,而不必重頭編寫程序,使TP系統化大規模的有效復用成為可能。如圖3所示,TP1用于測試項2的自動測試,但是不能復用于測試項3,但是粒度更細;TS1和TS2不僅能組裝TP1實現對測試項2的測試,也能有效復用于TP2,實現對測試項3的自動測試,同時也能組合成更多的TP,用少量的TS就能完成大量的測試任務。

圖3 TS組裝形成TP
TS在領域工程中被編譯為鏈接庫的形式,實現可視化調用而無須編程,是產品線復用的基礎和核心資產,并且在應用工程中不斷地增長和優化。
TS的開發一般從測試流程入手,抽取測試流程中對儀器的共性操作,并覆蓋測試項的變化點。以電子對抗領域常見的6個測試項為例,測試流程如下:
(1) 測頻范圍(TI-1)和測頻精度(TI-2):信號源輸出信號功率固定,在頻率范圍內駐留一定時間(比如100 ms),根據步進切換頻點,輸出多個頻點信號,計算測試項數據。
(2) 靈敏度(TI-3)和信號增益(TI-4):信號源輸出信號,在頻率范圍內設置多個頻點,輸出功率在設定范圍內按步進變化,根據觸發指令切換頻點。
(3) 相位噪聲(TI-5)和無雜散動態范圍(TI-6):利用頻譜儀測量信號,設置頻譜儀中心頻率和分辨率帶寬,設置△Marker移動至指定頻偏fm處,并讀取電平值,利用相關公式計算待測試項數據。
測試流程的共性如表1所示,其中編號對應的共性操作如下:1#-信號激勵;2#-設定頻率范圍;3#-設定頻率步進;4#-設定輸出的功率值;5#-信號切換觸發方式;6#-設定功率范圍;7#-設定功率變化步進;8#-設定信號功率頻率變化優先級;9#-信號測量;10#-設定中心頻率;11#-設置RBW;12#-移動△Marker;13#-獲取△Marker電平值。

表1 測試項目共性分析
根據上述共性操作,形成以下5個測試子項:
(1) TS1-信號輸出頻率設置:FreqListSet[] =FreqSweep (StartFreq、StopFreq、CenterFreq、Span、SwpTime、FreqStep、PwerLevel)。針對所有激勵源儀器的輸出信號頻率控制,返回信號頻率列表值,其覆蓋共性:1#、2#、3#、4#。
(2) TS2-信號輸出功率設置:PwerListSet[] =PowerSweep(PwerStart、PwerStop、SwpTime、PwerStep、Frq)。針對所有激勵源儀器的輸出信號功率的控制,返回信號功率列表值,覆蓋共性:4#、6#、7#、8#。
(3) TS10-測量設置:MeaConfig(CenterFreq、Span、FreqOffset、SwpTime、RBW、VBW、NOofSwps、DetectorType、VerticalScale)。針對所有類型頻譜儀的測試參數配置,其覆蓋共性:9#、10#、11#。
(4) TS14-Marker設置:Marker(TraceIndex、 MkerType、SearchType、MvMkerPos、MkerPos、MkerAmplitude、RefMkerAmp、RefMkerPos)。針對所有測量儀器Marker的控制和參數讀取,返回Marker和△Marker的頻率和電平值,覆蓋共性:12#、13#。
(5) TS30-信號切換方式:StepChange(Dwell、SingleStep)。單步觸發或駐留時間方式切換信號,針對所有激勵或測量信號,覆蓋共性:5#。
如圖4所示,梳理分析六個測試項的測試流程共性,形成編號為TS1、TS2、TS10、TS14和TS30的測試子項,通過五個TS的組合覆蓋六個測試項,實現測試程序有效復用。

圖4 TS的組合實現有效復用
管理可變性是產品線的重要工作[25],需求作為產品線最重要的可變性輸入,對需求進行標準化描述是可變性管理的手段之一。產品線定義TestReq.xml描述測試需求,其包含UUT描述和多個測試項描述,如接口、供電、信號頻率、動態和脈寬等信息。由于結構化的需求描述能夠以較小的代價抽取新需求中的可重用模塊[26],因此面向信號的測試需求作為可變性建模的基礎,為產品線的演化和優化提供支撐,同時為測試程序與需求的解耦打下基礎。TestReq.xml核心元素及其限定如表2所示。

表2 測試需求XML元素定義
協議適配器(Protocol Adaptor,PA)用于自動測試系統與UUT的通信協議適配,是實現自動化測試的必要軟件模塊。PA規范了產品線數據交換的內容和格式,并將協議適配根據雙生周期分兩個部分實現,一部分已在領域工程中完成,另一部分需在應用工程中根據具體UUT接口需求實現,其原理如圖5所示。

圖5 協議適配器原理
產品線數據交換標準:領域工程中規定的產品線對外通信數據標準,定義特定結構體存儲待交換數據。待交換數據包括兩類:(1) 指令類數據,如測試開始、暫停、停止、信號切換;(2) 測試數據,包含激勵或測量信號的參數和其他數據,如時戳信息、信號駐留時間、信號類型、信號頻率、幅度、脈寬、重頻和信號帶寬等信息。
適配模塊是PA的核心,若UUT標準不符合產品線數據交換標準,那么在應用工程中,開發人員需編程實現“適配模塊”,轉換UUT與主控軟件的通信協議。適配模塊主要有三種實現方法:(1) 適配模塊將涉及數據交互的各項功能封裝成函數,向主控軟件提供接口,通過參數傳遞進行數據的交換;(2) 開辟緩存空間,雙方將數據存入該空間中,適配模塊和主控軟件按約定機制在緩存空間中存取數據,實現數據交換;(3) 開辟緩存空間用于數據存取,適配模塊和主控軟件實現read()、write()、open()、close()等進程通信函數通知對方存取數據,實現數據交換。
配置管理(Configuration Management,CM)是產品線演化的重要技術工作,用于組織核心資產搭建產品的硬件和軟件[27]。配置管理模塊原理如圖6所示。

圖6 基于核心資產進行產品演化
CM主要完成三方面工作:(1) 根據測試需求組裝配置TS形成具有針對性的TP,進而形成測試程序集(TPS),是應用工程的核心工作;(2) 實現測試需求到測試能力映射,從儀器庫和專用驅動庫中選型符合量程、精度等要求的測試儀器及其對應的驅動,配置儀器的通信接口資源字符串,完成類驅動到專用驅動的映射,搭建硬件平臺與驅動體系,確保測試能力大于測試需求;(3) 根據測試需求和測試儀器參數生成配置文件,并對配置文件進行管理。
產品開發是產品線的最終目標,電子對抗自動測試產品線通過以下步驟配置核心資產演化新產品:
(1) 引入產品線共性平臺的軟件工程項目,其包括了產品線體系結構的共性平臺和可變部分的所有內容。
(2) 在CM中導入TestReq.xml文件,自動解析后,在界面顯示UUT和各測試項參數及待配置的TP,并為后續TS參數配置提供輸入,如圖7所示。

圖7 導入測試需求描述
(3) 根據測試需求描述和測試能力描述在儀器庫中篩選符合要求的測試儀器,并完成相應驅動體系的配置。
(4) CM平臺選擇待配置TP,在TS資產庫中選擇適當的TS,CM根據測試需求自動配置TS參數,無須編程,快速簡便地組裝生成TP,如圖8所示。針對特殊需求,調用IVI或VISA驅動定制開發形成TS,并組裝相關TS形成TP,有必要時將其納入核心資產庫。

圖8 配置TS形成TP
(5) 實現適配模塊,根據UUT通信標準編寫適配模塊程序,搭建產品線與UUT通信的橋梁。
從開發方法的角度上,ATS的研制包括針對專用型ATS的傳統開發方法、通用開發平臺方法和產品線開發方法,以下對三種方法的工作量進行比較。
文獻[28]提出了一種對軟件工作量進行定量評估的方法,本文借鑒該文獻思想對研制系列化ATS的長遠工作量進行初步評估,工作量模型如式(1)所示。
(1)
式中:M為總工作量;N同類型功能點數量;S為單個功能點規模;V為單個功能點復雜度;h為功能點個數。
表3對三種開發方法工作量進行量化評估和對比,其基于單個項目包含30個TP的假設,并采用1~10個級別對規模和復雜度進行度量,數字越大表示規模越大、復雜度越高。表3中“功能點”一列各編號對應為:1-共性平臺搭建,2-PTA實現,3-CM實現,4-TS優化,5-TP直接復用,6-TS開發,7-驅動配置,8-儀器配置,9-PA編碼,10-開發平臺研制,11-硬件平臺搭建,12-基于平臺的TP開發,13-驅動搭建,14-傳統TP開發,15-UUT的通信。

表3 工作量對比分析
根據文獻[29]提出的logistic曲線方程結合工程經驗,采用式(2)模擬TP直接復用率,表3中M0為一次性的工作量投入;M1(n)為持續工作量投入,如式(3)所示,產品線累計工作量如式(4)所示。
(2)
M1(n)=496-450×p(n)
(3)
(4)
通用開發平臺的方法累計開發工作量為F2(n)=100+(128×n);傳統方法累計工作量為F3(n)=M3×n,其中n為開發項目個數。
如圖9所示,產品線方法在第5個項目開始降低工作量,累計開發第19個項目后產品線效益超過傳統開發方式,累計開發30個項目后效益超過通用開發平臺方法,大幅降低企業開發系列產品的成本。

圖9 產品線工作量評估
軟件產品線是一種大粒度的復用技術,能解決特定領域系列產品復用率低、開發量大的問題。本文通過構建電子對抗自動測試產品線,分析領域需求,設計產品線體系架構、測試子項、硬件平臺等核心資產,在應用工程中利用核心資產的組裝配置實現測試資源大粒度復用,提升長遠效益。后續工作需增加對可變性需求的管理,建立適用的模型分析領域可變性、TS與TP的復用率、核心資產間的復雜依賴關系,進而實現對產品線的高效管理和優化。