王文智
(1.西北工業大學航海學院,陜西西安,710072;2.航空工業西安航空計算技術研究所,陜西西安,710068)
隨著數字技術在飛機上的大量應用,機載電子設備功能日益復雜,其測試工作量和測試難度也在不斷增加,導致設備供應商的進度和成本控制壓力越來越大[1]。
如何應對測試帶來的挑戰?國外機載電子設備供應商的主要解決方案是實現測試活動的自動化,盡量降低人工的參與程度;同時開發通用性的測試系統,盡量實現多個測試場景的覆蓋,降低測試系統的開發和維護成本。此解決方案的核心是研制面向機載電子設備的自動化測試系統[2],既能滿足測試活動的自動化要求,又能滿足多個測試場景的通用化要求。
國外領先的機載電子設備供應商都研制了具有自主知識產權的自動化測試系統,能夠快速、靈活、低成本地適用于各種型號的設備測試。國內的機載電子設備供應商以采購貨架商品為主,尚未形成具有自主知識產權的測試系統,需要加強這方面的研究和工程開發,盡快填補空白。
基于機載電子設備的測試要求[3],按照系統工程方法[4],梳理自動化測試系統的測試場景,分析系統需求,設計自動化測試系統的硬件架構和軟件架構,并對自動化測試軟件框架進行專項設計,然后開發系統實物并在測試場景下進行驗證。
根據機載電子設備的特點,自動化測試系統應滿足多個場景下的測試需求,如表1所示。在每個測試場景下,自動化測試系統都應支持測試的自動化運行和結果記錄,以節省人力成本。

表1 自動化測試系統的測試場景
測試人員使用自動化測試系統,基于各場景下的測試依據,開發測試用例和測試程序[5];通過測試程序的自動化運行對被測設備進行測試,分析結果,確定被測設備的行為是否達到測試目的。
分析設備級功能與性能測試等四個測試場景對自動化測試的要求,并進行整合和歸納,得到自動化測試系統的系統需求。
自動化測試系統應為被測設備提供所有外部接口,包括機械、電源、冷卻和專用電子信號接口等,以保證被測設備的外部接口與機載環境一致。
自動化測試系統應提供被測設備運行所需的所有外部數據激勵,包括通信協議和ICD等。外部數據激勵可采用仿真模型或仿真程序等形式實現。
自動化測試系統應能采集被測設備輸出的所有數據,包括各種接口輸出的不同頻率的數據,并按照一定格式進行存儲,用于結果分析。
自動化測試系統應能提供測試主界面,用于測試人員進行測試程序的配置、開發、執行或查看等操作。
自動化測試系統應支持測試的自動化運行。系統應提供測試腳本和各種支持函數庫。
自動化測試系統應提供用戶的權限管理,為測試運行人員和系統管理人員配置不同的權限。
自動化測試系統應能夠進行開機自檢,對各板塊、電源、和線路的健康狀態進行測試,保證自身的可用性。
自動化測試系統應能夠連續運行至少72小時無故障,以滿足測試過程的時長要求。
自動化測試系統應具有可移動性,在不同的測試地點間可以由2個或更少人進行移動。
基于系統需求,分別設計系統的硬件架構和軟件架構,同時針對自動化測試的特點,專門設計自動化測試軟件框架。
為了滿足自動化測試系統在多個使用場景下的可移動要求,系統的硬件采用整體可移動式設計,各組成設備及線纜采用結構固定的方式安裝在機柜內部,如圖1所示。

圖1 自動化測試系統的硬件架構
可移動機柜:具有機柜腳輪和前后可拆卸式柜門;內部設置多層設備架,可以固定設備和線纜;采用機柜后面走線,前面操作的方式實現測試人員無障礙操作。
接口轉接盒:通過航空連接器和線纜與被測設備進行連接,并將被測設備所有的航空專用接口轉為工業控制計算機及其他設備可識別的接口,用于設備間的互聯。
專用電源:為自動化測試系統內部設備提供相應的電源輸入和控制。
實時端主機:配置多種專用接口卡,通過接口轉接盒與被測設備進行連接,仿真被測設備的外部環境。
控制端主機:對系統進行配置,運行自動化測試程序,實現測試激勵,捕獲測試輸出,進行結果比對和分析等測試功能。
顯示控制終端:采用機架式顯示器、鍵盤和鼠標套件,用于人機交互。
自動化測試系統的控制端主機和實時端主機通過高速以太網絡進行連接,實現大量測試數據的高速交換。顯示控制終端通過視頻線或者USB接口與控制端或實時端主機連接,通過切換,分別實現對兩個主機的顯示和輸入控制。
為了適應被測設備的實時性要求以及測試軟件的運行和處理要求,自動化測試系統的軟件采用分布式設計,如圖2所示。

圖2 自動化測試系統的軟件架構
實時端軟件駐留于實時端主機,基于實時操作系統實現被測設備的外部環境,并與被測設備進行實時通信。
實時端管理軟件:對實時端系統和應用軟件進行配置,包括配置文件的更新、日志記錄、網絡設置和自檢維護等。
數據采集與發送軟件:按照被測設備所需的數據頻率、通信協議和ICD[7]格式,與被測設備通信。通過控制網絡和數據網絡,接受控制端軟件的遠程控制,對發送數據進行賦值,并向控制端軟件返回所需的數據。
仿真模型[8]:用于模擬被測設備的交聯設備,通過控制網絡和數據網絡接受控制端軟件的調度和設置。
控制端軟件駐留于控制端主機,采用非實時操作系統,完成測試設置、測試程序開發和運行、結果分析等測試功能。
操作視圖管理軟件:為控制端主界面,用于ICD管理、控制端管理和自動化測試軟件等控制端軟件之間的視圖切換。
ICD管理軟件:對被測設備的ICD進行統一管理,并按照測試需要生成各軟件運行所需的ICD配置文件,用于各軟件之間的數據通信。
控制端管理軟件:對控制端系統和應用軟件進行配置和操作,包括配置文件更新、日志記錄、網絡設置和自檢維護等。
數據監控與存儲軟件:可以對被測設備的通信數據進行實時監控,并按照特定條件進行存儲,用于結果分析。
自動化測試軟件:在無人參與的情況下可以實現整個測試過程的程序化運行及測試結果的程序化判斷,為系統的核心軟件。
經過權衡分析后,自動化測試軟件框架采用層次化設計方案,如圖3所示。各層功能如下:

圖3 自動化測試軟件框架
控制層:為測試用戶提供兩種界面,一種為開發界面,另一種為運行控制界面。測試用戶可以通過開發界面進行測試程序的開發,或者通過運行控制界面選擇待運行的測試程序,并觀察測試過程和結果。
程序層:使用解釋性語言編寫的測試程序,可以通過調用接口層提供的各種API,設置測試條件、啟動外圍仿真、為被測設備的ICD進行賦值,并獲取被測設備反饋的ICD信息,與預期結果進行比較,得到測試結果。測試程序可以調用數據監控與存儲API,控制數據監控與存儲軟件實現特定數據的監控和存儲。
接口層:提供各種系統配置、控制和通信等API,支持程序層編寫測試程序。
網絡層:提供管理網絡、控制網絡和數據網絡的接入,實現與其他軟件的通信。
在某電子設備的測試系統研發過程中,采用了前文的硬件和軟件設計方案。硬件采用KVM設備[9]、多網口服務器、工控機(含多種接口卡)及定制減震機柜等設備實現。
在軟件的實現上,操作系統采用Cent OS及 Windows7;應用軟件采用LabWindows/CVI和Eclipse平臺開發環境;自動化測試腳本[10]采用Python語言;管理網絡采用跨語言的Thrift框架[11];控制網絡和數據網絡采用DDS[12]技術,其中控制網絡設置更高的傳輸優先級。

圖4 自動化測試系統外形
該自動化測試系統的最終實施結果如圖5所示。連接被測設備后,對自動化測試系統進行驗證。
加電自檢正確后,進入自動化測試軟件的人機界面,選擇周期性自檢、單項功能檢測和性能測試等多個Python測試程序,啟動對被測設備的自動化測試。測試程序順序執行并顯示執行狀態,運行結束后顯示匯總分析結果。各項測試功能滿足自動化測試系統的需求。
對自動化測試系統進行了測試場景梳理、需求分析、硬件架構設計、軟件架構設計以及自動化測試設計,并在某機載電子設備的測試系統中進行了應用。測試結果表明本文提出的系統設計能夠滿足測試場景需求和系統需求,是一個有效的、通用的自動化測試系統解決方案。