?

從用戶角度探討空管自動化系統軟件測試

2016-11-25 00:01侯立鋒
科技視界 2016年25期
關鍵詞:測試用例軟件測試空管

侯立鋒

0 引言

空管自動化系統(以下簡稱自動化系統)直接面向管制員,為管制員提供監視信息、飛行計劃信息,以及各種告警服務,是最重要的空管設備之一。在現實中,自動化廠商將大部分的投入都用在了軟件開發上,對于支持系統運行的硬件,包括:服務器、工作站、網絡設備、記錄儀、GPS授時設備、傳輸設備等,基本上都是直接采購現成的貨架產品,由此可見,只有空管自動化系統軟件才能體現空管自動化系統的核心價值。

隨著自動化系統在空管系統應用越來越廣泛,其軟件質量的優劣也日益受到人們的重視。質量不佳的自動化軟件產品不僅會增加使用和維護費用,還可能影響飛行安全,甚至造成災難性的后果。軟件測試是軟件生命周期中一項非常重要且非常復雜的工作,對軟件質量的保證具有極其重要的意義。

本文將站在用戶角度,分析探討如何在工廠驗收和現場驗收時,提高用戶的參與度,讓軟件測試工作覆蓋更全面,盡可能多的發現自動化系統軟件隱藏的錯誤,為自動化系統正式投產運行把好軟件測試關。

1 軟件測試基礎

1.1 什么是軟件測試

軟件測試是為了發現錯誤而執行程序的過程?;蛘哒f,軟件測試是根據軟件開發各階段的規格說明和程序的內部結構而精心設計一批測試用例(即輸入數據及其預期的輸出結果),并利用這些測試用例去運行程序,以發現程序錯誤的過程。

1.2 軟件測試的目的和方法

1.2.1 軟件測試的目的

Grenford J.Myers就軟件測試目的提出以下觀點:

1)測試是程序的執行過程,目的在于發現錯誤;

2)一個好的測試用例在于能發現至今未發現的錯誤;

3)一個成功的測試是發現了至今未發現的錯誤的測試。

1.2.2 軟件測試方法

在軟件的測試過程中,應該應用各種測試方法,以保證產品有一個較高較穩定的質量。根據不同的生產過程進行不同的測試,包括黑盒測試、白盒測試、功能測試、系統測試、壓力測試、安裝/卸載測試、兼容性測試、α 測試、β 測試等 。

在工廠驗收(相當于α 測試)、現場驗收(相當于β 測試)的測試活動中,主要測試對象都是功能已經完成,即將要交付或者發布的軟件,所以大多是通過黑盒法來進行功能、性能等各種測試。黑盒法中的一些典型方法,如等價分類法、邊界值分析法、錯誤推測法、因果圖以及狀態轉換圖等方法。

2 自動化系統軟件測試現狀

2.1 用戶對軟件測試工作專業知識欠缺,在與廠家共同做軟件測試時,處于弱勢一方,往往依賴于廠家的提供的測試方案和標準。

目前用戶參與到自動化系統軟件測試工作,是從工廠驗收測試開始的。自動化系統廠商按照與客戶談好的需求規格說明書,完成自動化系統軟件開發和測試。在軟件出廠前,廠家會邀請用戶代表到工廠,完成工廠驗收,以確認開發的軟件是否是用戶需要的產品,并按照客戶意見,修改軟件。之后,廠家會將自動化系統安裝到客戶現場。自動化系統調試完成后,自動化系統廠家和客戶以及其他相關方會一起完成現場驗收。在系統驗收時,測試方案由自動化廠家提供。按照自動化廠家提供的測試用例(這些用例廠家已測試多遍)在真實環境下驗證一遍就算通過,現場驗收只是對廠家測試用例的簡單重復,用戶未能對軟件測試工作提供新的幫助。

2.2 某廠家現場考核測試方案舉例

2.2.1 測試目的和依據

依據軟件需求規格說明書,在真實環境下,驗證自動化系統功能的正確性。

2.2.2 測試方案總體結構和測試用例分布

某自動化廠家的現場考核測試方案,該方案分為8個部分,共320個測試用例,具體如下:雷達數據處理(43),飛行數據處理功能(54),人-機界面和人-機對話功能(90);記錄、重演(14),技術監控功能(25),數據庫管理(19),飛行數據操作席(62),性能指標(31)。在功能、性能測試的同時,系統連續運行72小時,進行可靠性考核。系統通過可靠性考核驗證。

2.2.3 系統錯誤等級分類

1)第1級錯誤(嚴重錯誤):不能完全滿足系統基本要求或系統正常運行,導致系統癱瘓或危及人員安全的錯誤并且不存在合理的、可以變通解決的辦法(重新裝入或重新啟動該系統不屬于變通解決辦法)。

2)第2級錯誤(一般錯誤):不利于完全滿足系統基本要求或系統正常運行,但卻存在合理的、可以變通解決的辦法(重新裝入或重新啟動該系統不屬于變通解決辦法)。

3)第3級錯誤(輕微錯誤):不影響系統要求的滿足或基本功能的實現,但操作不方便。

2.2.4 考核測試通過標準

1)沒有1級錯誤;

2)2級錯誤不多于3個;

3)3級錯誤不多于12個;

4)針對系統考核還需驗證對需求的覆蓋程度:

5)每個系統功能至少被一個測試用例覆蓋;

6)覆蓋期望的系統性能需求;

7)覆蓋所有外部接口;

8)覆蓋100%的系統主流程(根據用戶需求);

9)主流程、主要功能至少被2個測試用例覆蓋。

廠家的測試方案很專業,也很正規,具備包括測試目的、測試依據、測試方法(測試用例)、錯誤等級定義、考核通過標準等全部要素,可操作性很強。測試用例基本覆蓋了系統主流程的功能模塊,測試用例的數量分布相對合理,是一個不錯的測試方案。

2.3 廠家測試方案的不足

2.3.1 觀察測試角度存在局限性

目前有兩種需用戶參與的測試。一個是工廠測試,一個是現場測試。當軟件開發完成,自動化廠商搭建模擬測試環境,邀請用戶完成出廠測試。另一種是在用戶現場,當系統安裝調試完成后,在真實的環境下完成的現場驗收測試。這兩種測試均為廠家提供測試方案??展茏詣踊到y是一個非常復雜的軟件系統,測試方案僅站在開發者角度編制,觀察測試角度存在局限性。

2.3.2 廠家的測試方案存在覆蓋盲點

盡管廠家提供的測試方案,已涵蓋絕大部分功能,但再好的測試方案,也很難覆蓋全部測試要點,存在覆蓋盲點。下面的案例很好的說明了這一點。

2015年12月4日18:45,飛服通報某航班落地,主用系統自動拍發落地報不成功,人工補發。維護人員發現系統提示不能找到收報地址,檢查收報地址庫數據無缺失。事后查明,因現用收報地址條數(1011)已超出系統容量(1000)限制,排在容量之外的收報地址將被棄用,導致發報時不能找到收報地址,發送不成功。

現場考核測試方案中涉及收報地址庫的測試用例只有一條,該測試用例僅驗證了收報地址庫的增加、刪除、修改功能,并沒有覆蓋收報地址庫的容量測試。收報地址庫1000條的容量限制隱患被保留下來,自動化系統頭幾年工作運行都正常,幾年后,隨著航班量的增加,收報地址條目超過1000條,1000條以外的地址被認為無效地址,導致系統自動派發起飛報/落地報功能異常。

3 完善自動化系統軟件測試方案的建議

3.1 自動化系統要符合民航規章標準

2010年民航出臺了《民用航空空中交通管制自動化系統配置規范》MH/T4029.1-2010,2012年出臺了《民用航空空中交通管制自動化系統技術規范》MH/T4029.2-2012,兩個重要規范性文件。2012年以后建設的自動化系統,在現場驗收時,用戶一定要按照上述規章標準,檢查所建自動化系統是否符合規章要求。當然在項目前期的需求規格說明書中一定注明所建自動化系統應符合民航規章要求。

3.2 雇傭第三方軟件測試機構設計測試用例

前文提到用戶對于軟件測試相關技術不熟悉,致使不會設計測試用例,可以聘請第三方軟件機構,根據軟件需求規格說明書,站在第三方角度,采用黑盒測試方法(例如控件測試法、邊界值分析法,等價類劃分法,性能指標法等),協助用戶設計測試用例。這樣可以讓測試工作更完善。

3.3 聘請空管業內專家參與測試

空管一體化后,各個空管單位之間的聯系加強,對于初次建設空管自動化系統的單位,可以邀請其他單位有經驗的業內專家,參與現場驗收測試。

3.4 參考空管積累的經驗補充測試用例

3.4.1 敏感時間節點測試

某空管自動化系統,每天早晨8點(北京時間)會刪除24小時前的計劃,廠家設計軟件時正處于閏年,故此將系統2月份計劃結算天數設為29天。這個缺陷非常隱蔽,工廠驗收河現場驗收均未能發現。系統投入使用后,第二年剛好為平年,2月份變成只有28天。系統仍然按照29天結算,導致結算天數比正常時間多一天,根據系統設置,若航班計劃實際執行時間與系統推算執行時間相差24小時,系統將自動刪除該航班計劃。當3月1日來臨時,系統認為2月28日的計劃已超過24小時,將2月28日為執行的計劃自動刪除。而航班計劃被刪除后,航跡無法找到對應的計劃,會自動去相關。建議系統測試時,增加例如2月29日時間節點測試。

3.4.2 磁盤空間可能耗盡測試

一般應用軟件運行,會往磁盤里寫一些東西,例如運行日志,每天數據量不大,如果軟件沒有設計日志定期自動清除機制,日積月累會,會逐漸耗盡磁盤空間。

空管安全信息網記載了這樣一則案例,2016年3月12日,某地發生管制綜合信息系統某一模塊無法操作的問題。經查原因為服務器磁盤空間已經完全被占滿,數據庫日志無法寫入。期間該模塊退出服務,無法正常使用。事后查明,主數據庫服務器的X盤(DATA)已占465G,Y盤(LOG)已占499G,兩個盤分配的空間均為500G。檢查Y盤剩余空間,為0KB。每當程序往數據庫寫入、更新、刪除數據時,需先增加一個日志記錄,也就是要先往Y盤(LOG)寫入一條數據。由于Y盤已經沒有剩余的空間去保存這條日志記錄,所以整個數據庫更改操作都失敗。建議在系統驗收時,增加磁盤空間自動釋放機制檢查。

3.4.3 AFTN報文壓力測試

AFTN網傳輸的報文數據流具有突發性特點,用大流量報文可以驗證系統電報處理能力。自動化系統在接入轉報鏈路后,通過關閉轉報機對該端口報文的轉發,讓轉報機積壓一定量的報文,當放開端口后,積壓的報文會涌入自動化系統。壓力測試也是系統處理性能極限測試,在極端情況下更容易暴露系統隱藏的缺陷。

4 總結

自動化系統是面向管制員的重要空管設備,其核心是軟件,軟件質量的好壞與運行安全息息相關,而做好軟件測試工作是保障軟件質量的重要手段。本文針對常規軟件測試的目的、原則進行了闡述,簡單描述自動化系統軟件測試的現狀,在用戶參與的工廠測試、和現場測試環節,提出了一些個人建議,僅供參考。

目前關于自動化系統軟件測試還缺少權威性的規范作為指導,對于自動化系統軟件測試工作用戶參與度較低,主要依賴自動化廠家軟件測試水平。另一方面,空管系統的運行標準越來越高,運行壓力越來越大,用戶作為自動化系統的使用者,是自動化系統因軟件缺陷導致異常的責任載體。用戶必須想盡辦法,在系統投入使用前,盡可能多的發現并消除自動化系統中的隱患,降低自動化系統的運行風險。

[責任編輯:李書培]

猜你喜歡
測試用例軟件測試空管
基于SmartUnit的安全通信系統單元測試用例自動生成
基于OBE的軟件測試課程教學改革探索
民航空管2018年運行統計公報
EXCEL和VBA實現軟件測試記錄管理
基于混合遺傳算法的回歸測試用例集最小化研究
關于軟件測試技術應用與發展趨勢研究
軟件測試工程化模型及應用研究
基于依賴結構的測試用例優先級技術
如何做好空管質量安全管理體系(QSMS)內部審核的幾點思考
空管自動化系統GPS時鐘同步方式
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合