文/劉亞民
隨著對飛機作戰能力、執行任務難度以及飛行環境適應性的要求不斷提高,機載傳感器以及設備的功能也日趨復雜,機內各級別告警信號的數量也日益增多。機載集中告警設備對機上設備發送的告警信號及其告警優先級進行綜合處理,及時向飛行員提示當前告警故障,確保飛機安全,提高飛行安全性和可靠性。
為確保機載集中告警設備功能正常,避免飛行事故,需對告警設備進行嚴格測試,以期被測設備能夠對測試設備發送的信號做出正確的響應。機載集中告警設備應處理的數據總線信號數量繁多,邏輯關系復雜,原用測試環境是測試人員手動依據測試用例人為點擊測試軟件界面上的按鈕,模擬機上設備發送各種告警測試信號,并根據界面上所顯示的等級告警信息是否符合測試用例的預期測試結果,判斷測試結果是否正確。采用人工方式逐個按測試用例輸入測試信號,并判定測試通過,存在測試效率低,準確性不穩定,成本高等問題。另外,依據機載集中告警設備的測試需求而編制的信號發送界面,存在規模龐大、維護困難、更改頻繁等問題。因此,尋求一種減少人為介入、自動化程度高、可擴展性好的解決方案。
本文中的自動化測試軟件是為某型飛機的機載集中告警設備而設計的,包含了測試用例數據庫和測試軟件兩個部分,全面考慮了各測試用例中被測信號與期望結果之間的邏輯關系、總線通信數據與告警數據之間的數據結構等,充分考慮到后期因需求頻繁變化導致測試用例變化的情況。
為提高可靠性,機載集中告警設備擁有兩套控制平臺,互為備份,確保在某一平臺故障時能實施降級處理,保證設備繼續運行。與機載集中告警設備進行交互的機上系統有約二十多個,交互信號形式主要包含ARINC429總線數據和離散信號,其中ARINC429總線數據類型多達一百多種。機載集中告警設備依據通信協議及處理需求的要求,將各路ARINC429總線數據以及離散信號進行邏輯分析,并按照一定策略將緊急程度不同的等級告警信息以ARINC429總線數據的形式發送給顯示、音頻及記錄設備等,為飛行員提供視覺和聽覺告警。

圖1:數據庫中各表格的關系圖

圖2:自動化測試軟件模塊組成

圖3:自動測試執行模塊的工作流程
由此可見,機載集中告警設備具有交互設備數量多、處理信息量龐大、邏輯判斷復雜等特點。此外,該設備的研制過程還存在數據處理邏輯、ICD變更頻繁等問題。分析機載集中告警設備的產品及研制過程特點,所設計的自動化測試軟件需具備以下特征:
(1)能夠適應多路ARINC429總線交互的測試環境。
(2)能夠涵蓋所有交互信號,建立符合告警測試信號輸入和等級告警信息輸出的復雜邏輯關系的測試處理策略。
(3)能夠提供友好的用戶界面,方便操作人員根據ICD的內容對告警測試信號、等級告警信息、測試用例等數據信息進行編輯。
(4)自動批量執行測試用例,測試過程應為人不在環的閉環自動測試,即應能模擬機上各系統通過各自ARINC429總線自動發送告警測試信號,并針對機載集中告警設備通過ARINC429總線回復的等級告警信息。
(5)能夠進行自動分析判別,在界面上實時顯示測試結果。
(6)能根據測試結果自動生成并保存測試報告。
結合通信協議中機上各系統發送的告警測試信號以及機載集中告警設備輸出的等級告警信息的特征,自動化測試軟件的數據庫主要分為這幾個部分:總線信號位域值域表、總線信號位域表、總線信號表、總線數據塊表、測試輸入表、預期測試結果表等。各表之間的關系如圖1所示。
3.1.1 總線信號位域值域表
總線信號位域值域表保存每個ARINC429總線數據中的各個位域的值域定義,包括值域所包含的各數值、對應的數值含義、所屬的ARINC429總線數據的位域等字段。
3.1.2 總線信號位域表
總線信號位域表保存每個ARINC429總線數據中各個位域的定義,包括位域名稱、起始位置和終止位置、所屬的ARINC429總線數據等字段。
3.1.3 總線信號表
總線信號表保存著機上系統發送給機載集中告警設備的和機載集中告警設備回復的每個ARINC429總線數據的定義,包括總線數據名稱、規范號、Label號、在數據塊中的位置、所屬的ARINC429總線數據塊等字段。
3.1.4 總線數據塊表
總線數據塊表保存著ICD中所定義的每個ARINC429數據塊的定義,包括總線數據塊名稱、規范號、傳輸方向、傳輸通道號、傳輸類型、傳輸周期等字段。
3.1.5 測試輸入表
測試輸入表用來存放自動化測試軟件在每個測試用例中向機載集中告警設備發送的測試輸入定義,包括測試用例標識號、測試步驟號、測試輸入的總線數據塊規范號、總線數據規范號及其中各個位域的值等。
3.1.6 預期測試結果表
預期結果表用來保存每個測試用例中期望從機載集中告警設備處接收到的測試結果定義,與測試輸入表中的輸入定義存在對應關系,包括測試用例標識號、測試步驟號、預期接收的總線數據塊規范號、總線數據規范號及其中各個位域的值等。
自動化測試軟件運行在Windows操作系統中,使用C#語言進行開發,不僅擁有簡單友好的自動測試操作界面,測試人員可以直觀地監控當前每個測試輸入、預期結果、實測數據以及用例通過情況,而且提供編輯數據庫中ARINC429總線信號、ARINC429總線數據塊、測試用例設計的用戶界面,解決了后期因ICD或者處理邏輯變更而導致的總線信號或者測試用例設計的變化問題。圖2是自動化測試軟件的模塊組成,主要包含六個模塊:數據庫管理模塊、通信協議管理模塊、測試用例管理模塊、ARINC429總線通信模塊、自動測試執行模塊、測試結果輸出模塊。
3.2.1 數據庫管理模塊
數據庫管理模塊是測試用例管理模塊、通信協議管理模塊以及自動測試執行模塊訪問數據庫的中間層,通過使用ADO.NET組件與數據庫建立連接,或進行數據交互。ADO.NET提供了DataSet類,可通過DataAdapter類中的Fill方法將數據庫中各個表的數據存儲入DataSet中,在內存中建立一個訪問數據庫的程序模塊與數據庫之間的數據緩沖區,這樣可以斷開數據庫處理其中的數據,避免頻繁訪問數據庫。由于DataSet與基礎數據庫斷開連接,代碼無需經常調用數據庫,因而顯著地提高了性能。
初始時,數據庫管理模塊通過OleDbConnection實現與數據庫之間建立連接,通過Fill方法將數據庫中的總線信號位域值域表、總線信號位域表等各表數據存入DataSet中。同時,定義多個操作函數實現對各表進行查詢、刪除、插入、更新操作。對數據庫各表的操作主要使用了微軟公司提供的LINQ技術,它的最大特點就是能夠把查詢功能直接引入到.NET Framework3.5所支持的編程語言(如C#、Visual Basic.NET)中,并整合為一體,從而查詢操作成為編程語言的一部分,可以向創建編程語言代碼的方法一樣,方便地創建查詢操作表達式。
3.2.2 通信協議管理模塊
通信協議管理模塊是用戶通過特定界面管理數據庫中總線信號位域值域表、總線信號位域表、總線信號表、總線數據塊表的接口,用戶可以根據通信協議的內容靈活配置各ARINC429總線數據塊、數據塊中各ARINC429總線信號、總線信號中各位域以及位域的各個值域數值,為設計測試用例中的測試輸入以及預期輸出結果提供基礎信息。由于ARINC429總線信號與ARINC429總線數據塊之間、位域以及位域中的各個值域數值存在一對多的關系,ARINC429總線信號和總線信號中的位域存在一對一的關系,因此軟件設計了三個頁面,分別用于根據ICD的內容編輯ARINC429總線信號、各個位域以及ARINC429總線數據塊的配置,操作人員在定義各個ARINC429總線信號的具體信息后,才能將其與對應的位域及ARINC429總線數據塊進行關聯定義。

圖4:自動測試軟件信息編輯界面
3.2.3 測試用例管理模塊
由于單一的ARINC429數據塊的測試輸入和預期輸出不能滿足機載集中告警設備的功能驗證要求,測試用例管理模塊通過界面獲取操作人員輸入的ARINC429總線數據塊及其中各個信號的賦值,并按照操作人員輸入的測試步驟數據依次將單一的ARINC429數據塊的輸入及其對應的預期測試輸出進行組合,形成復雜的測試用例存入數據庫中。
3.2.4 ARINC429總線通信模塊
ARINC429總線通信模塊是自動化測試軟件與專用測試設備中多個ARINC429通信擴展卡EP-H5272直接進行交互的驅動層,將ARINC429通信擴展卡的參數設置、打開、關閉、讀寫的函數進行封裝,更易于進行底層硬件的調試與維護。考慮機載集中告警設備響應較為迅速以及自動化測試軟件進行測試分析的實時性,在ARINC429總線通信模塊中設計了一個讀取ARINC429通信擴展卡數據的線程,將ARINC429總線數據的讀取與其他線程如主界面線程分開,避免因讀取通信擴展卡數據導致響應延遲的問題,該讀取線程由自動測試執行模塊中的主界面線程負責它的開啟和結束。
3.2.5 自動測試執行模塊
自動測試執行模塊是整個自動化測試軟件的核心,主要負責測試用例的抽取和執行、預期和實測結果的對比和判別、測試最終結果的顯示、主界面的消息響應等。自動測試執行模塊通過解析數據庫中各個測試用例,依次逐條對每個測試用例的每條測試輸入中要求發送的ARINC429數據塊進行賦值,通過對應的ARINC429通道發送至機載集中告警設備。模塊在限定時間內讀取機載集中告警設備反饋的ARINC429總線數據,與對應測試用例的預期測試輸出進行數值比對,判斷反饋數據是否與預期一致。軟件使用線程的方式執行自動測試,以便于使主界面能夠實時顯示測試輸入輸出數據、測試進度以及最終測試結論。自動測試執行模塊的工作流程如圖3。
面向機載集中告警設備的自動化測試軟件通過以上方式設計,能夠為操作人員提供便捷的測試信息編輯界面(如圖4),自動生成測試報告,功能運行正常。軟件測試人員針對機載集中告警設備的需求共設計了1490個測試用例,全部執行時間2247s,遠低于人工測試執行時間。
機載集中告警設備的自動化測試軟件采用數據庫、ADO.NET、LINQ等技術,使得對機載集中告警設備的測試流程轉變為對數據庫中測試數據的編輯,其測試軟件不再依賴ICD文件設計程序架構和執行邏輯,解決了研發過程中因為ICD或者功能邏輯變化而修改測試軟件的情況。此外,該軟件大大降低了人工介入程度,實現了對測試效率、準確性、穩定性等方面的要求。