安茂波 王松考
摘要:衛星通信地球站監視控制軟件實現對地球站內各類設備的綜合管理,管理的對象多、設備參數繁雜,軟件在交付前需對設備參數的覆蓋程度、各參數值域的正常及異常處理能力等進行全面測試。當前使用的測試方法主要是人工測試,測試時間長、用例數量有限,很難做到對所有設備參數的全域測試。結合工程應用,設計了基于模板的地球站監控軟件自動測試工具,依據設備模型文件動態加載生成包含測試用例、測試規則在內的測試模板,并基于各個參數定義的類型、值域等實現監控參數的全覆蓋測試,記錄測試過程,生成測試報告。
關鍵詞:地球站監控軟件;自動測試;模型文件;聯動參數
中圖分類號:TP391.4文獻標志碼:A文章編號:1008-1739(2019)10-69-3

0引言
衛星通信地球站監控軟件主要負責對地球站內各種通信設備進行集中的監視和控制,是實時掌握地球站整體運行狀態、及時處理異常問題和提高地球站智能化管理的重要保證[1]。地球站監控軟件需要監控的設備數量多、種類多、協議差異性大、專用性強,通過人工手動或者常用的LoadRunner、TestBed等商用測試工具難以實現對地球站監控軟件監控參數的全覆蓋測試[2-3]。
基于地球站監控軟件松耦合、組件化的開放體系架構[4],在不修改現有軟件主體的情況下,通過構建測試模板,設計實現一種自動化的軟件測試方法,具備動態生成測試用例、自動生成測試報告、測試完畢自動恢復原有參數值的能力,在有效完成全覆蓋測試的同時,大大節省測試周期,提高工作效率。
人工定義全部測試或部分測試,測試期間可隨時終止測試用例并自動恢復參數,并可隨測試自動計算平均控制響應時間和最大控制響應時間。
1地球站監控軟件
1.1軟件組成
地球站監控軟件主要實現對地球站被監控設備的集中監視和控制,為操作維護人員提供簡單、易用、智能化的地球站管理軟件,包括核心管理服務、設備模型單元、操作終端、網管代理、數據庫服務、軟件自維護、軟件自維護及數據總線服務,如圖1所示。
核心管理服務單元實現軟件模塊的加載、線程調度、消息轉發時序控制控制;設備模型單元實現參數解析、指令生成等設備監視和控制功能的封裝;操作終端軟件單元為操作維護人員提供友好、易用的操作界面;數據庫服務單元負責存儲監控過程中生成的給類事件、參數變化、告警故障等信息;數據總線服務單元負責在各軟件單元之間按統一的規范進行信息交互和流轉;自動化測試單元負責根據被監控設備數量和導出的XML模型文件生成測試用例[5],發送查詢指令和設置指令,生成測試報告[6]。

1.2參數屬性分類
①對于設備的各被測參數,被賦予只讀、單設置、可讀寫及禁用等訪問屬性[7]。對于單設置、禁用屬性的參數,由于無法閉環確認,不自動測試,需人工驗證確認。
②對于整數類型和浮點數類型,測試過程按參數的上限值、下限值及步進值進行遍歷測試。
③對于枚舉類型,根據設備模型配置文件中已知的值進行遍歷測試。
④對于字符串類型,按參數格式化中約定的字母組合進行遍歷測試。
1.3聯動參數
在許多被監控設備中,部分監控參數并不是孤立的,而是相互關聯、相互制約,一個參數值的變化會影響其他幾個參數的變化,這些相互關聯的參數就是聯動參數。對于具有關聯關系的聯動參數,軟件會動態建立基于規則的臨時參數列表,在測試完成后釋放。
2自動測試軟件
2.1實現原理
自動測試軟件單元基于地球站監控軟件中配置的設備類型、數量、各類設備內參數、參數類型及參數屬性等信息生成測試模板,并按規則進行自動執行和生成測試報告。
當啟動自動測試功能后,自動測試軟件單元首先循環檢索地球站監控軟件中已經加載運行的被監控設備配置信息,將標識設備的指針插入動態測試隊列中。測試隊列構建完成后,自動測試軟件依次對測試隊列中所有測試節點調用相應的測試函數,并生成報告,測試過程如圖2所示。

2.2測試方法和功能
①常態化測試:軟件自動發現整站所有在線設備,并依次根據設備關聯的測試模板進行測試,對每個設備測試完成后自動生成測試報告保存到磁盤。
②指定設備測試:按需對單臺或多臺指定的設備執行測試。
③指定參數測試:操作員可有選擇地針對一個或者幾個參數進行遍歷測試,以減少測試時間。
④保存/加載當前參數:測試軟件在開始測試前將當前的工作參數存儲到文件中,在測試完成后,可一鍵將原參數配置恢復到被測試設備。
⑥強制終止測試:測試過程可按需由操作員強制終止,軟件只生成針對已測試設備的測試報告。
3測試流程
3.1自動測試的主要流程
自動測試時,軟件首先對所有在線設備進行檢查,確認對應的設備工作狀態是否正常。測試單元根據站內配置的設備生成測試隊列,并循環所有參數對可控制參數生成待測模板。同時根據預先定義的聯動關系,對測試序列進行定義,先測試無聯動關系的參數,再測試聯動參數,具體測試流程如圖3所示。
①被監控設備在線狀態檢測,建立在線設備列表;
②讀取設備模型文件,生成測試用例集合(包括聯動測試用例和非聯動測試用例);
③向被測試設備發送查詢命令,并根據查詢響應分析,對設備當前的工作狀態進行正確性檢查;
④依次測試無聯動關系的參數;
⑤依次測試有聯動關系的參數;
⑥恢復參數值。
⑦生成測試報告并按約定進行存儲。

3.2單個值的基本測試流程
①首先將該值發送到設備等待控制響應,如果控制失敗則退出測試,否則繼續測試。
②等待當前參數值是否與控制值一樣,如果超時則直接返回失敗。
③如果當前值與設置值一樣則返回成功。
3.3有聯動關系參數的測試流程
有聯動關系的測試與基本測試流程類似,只需在發送測試命令前檢測待測試值是否符合參數聯動關系。如果符合,按照基本流程執行;如果不符合,測試需要計算設備當前參數需要改動哪些參數才可以測試當前值;如果計算測試值,則先對這些值進行測試,全部成功后再發送當前參數的測試,否則輸出無法測試該節點的報告信息。
3.4測試報告
測試完成后,軟件自動生成測試報告,報告內容主要包括起始時間、結束時間、測試設備數量、參數數量、用例數量、正常測試用例數、異常測試用例數及原因等,如圖4所示。

4應用效果
自動化測試軟件單元已經在工程應用中得到廣泛使用,工作效率明顯提升,表1是在工程應用中分別對調制解調器、TDMA終端、功放等設備進行對比后的測試記錄表。

5結束語
本文針對站內監控軟件在軟件開發、版本更新、軟件部署和設備更換等過程中,需要對設備監視和控制功能的正確性、完整性進行全面驗證的應用需求,在不影響監控軟件結構的情況下,開發設計了基于設備模型的自動測試軟件單元,降低了地球站監控軟件測試復雜度,縮短了測試時間、提高了測試的效率及覆蓋率,并在多個項目中得到推廣使用,取得了非常好的效果,并為其他軟件的測試工作的開展提供了示范作用。
參考文獻
[1] Gerard Maral,Michel Bousquet.Satellite Communications Systems 5th Edition[M].Chichester:John Wiley & Sons Ltd., 2009:432-434.
[2]韓柯,杜旭濤.軟件測試[M].北京:機械工業出版社,2003.
[3]趙瑞蓮.軟件測試[M].北京:高等教育出版社,2003:182-195.
[4]安茂波.基于模型的衛星通信地球站監控系統設計與實現[D].西安:西安電子科技大學,2013.
[5]梁月圓.軟件自動化測試方法研究及系統開發[D].西安:長安大學,2013.
[6]李凌.廣播電視地球站綜合設備管理系統的設計和實現[D].南寧:廣西大學,2015,65-72.
[7]杜江,劉楓.導航地球站軟件接口測試用例設計[J].時間頻率學報,2015,38(4):235-242.