何少林 林健富
1)深圳防災減災技術研究院,廣東深圳 518003 2)甘肅省地震局,蘭州 730000
地震速報是對已發生地震基本參數(時間、地點、震級等)的快速測報(中華人民共和國國家質量監督檢驗檢疫總局等,2008)。中國地震局于2013年4月開始正式向各省地震局和社會提供自動地震速報信息服務,其在線運行的自動地震速報軟件系統包括了福建省地震局研制的大區域自動地震速報軟件、廣東省地震局研制的國家備份自動地震速報軟件和中國地震臺網中心研制的中國/全球地震臺網自動地震速報軟件。
目前,我國自動地震速報系統可在2min左右給出國內東部地區3.0級及以上地震、3min左右給出國內西部地區4.0級及以上地震較合理的地震基本參數,在10min左右給出全球大多數地區6.0級及以上地震較合理的地震基本參數(1)何少林,2015.“自動速報震級測定方法研究與實時運行監控軟件研制”地震行業專項項目任務書. 內部資料.。同時該系統也存在一些不足之處,為了進一步提高自動地震速報系統的產出及時性、運行穩定性和結果合理性,福建省地震局、廣東省地震局和中國地震臺網中心對各自研制的自動地震速報軟件進行了功能的擴充、計算方法的改進、計算流程的優化等完善工作,這些新的業務處理軟件系統在正式上線使用前,均需要進行充分的測試,以保證處理軟件系統的運行質量。
針對測震業務軟件系統,國內開展的針對性測試工作較少。“十五”期間,在儀器質檢中心曾經建設了測震專業軟件測試與評估平臺,其提供的測試方法是以真實地震波形的全數據回放,或計算真實地震的走時,測試評估被測軟件(肖武軍等,2011)。此方法的不足之處為: ①真實地震的震源位置很難準確確定,即使對同一地震進行編目分析,得到的震源位置也不是唯一的,因此采用其作為評測依據(期望結果)也難保證結論的客觀準確;②不易對期望的震源位置,如對震源深度逐次僅相差1km的地震進行測試;③不能得到期望的臺站分布方位均勻度,很難做到對軟件全面測試;④不易對軟件的自動震相識別和定位功能單獨測試與分別評測;⑤無法很快構造期望的測試數據,無法實現快速測試。國外曾有學者也開展過類似工作,如針對地震預警系統ShakeAlert的測試和認證平臺(TCP),其包括2種方式測試,即實時運行系統的實時原位測試和回放測試數據的離線回放測試。實時原位測試評估代碼的優化和穩定性,離線回放測試進行代碼的壓力測試,以評估代碼是否已做好生產準備(Cochran et al,2018;王紅蕾等,2019)。
為了滿足對新的自動速報軟件功能和性能測試的需求,解決目前在測試工作中的不足,在地震行業專項“自動速報震級測定方法研究與實時運行監控軟件研制”的任務中,研制了一種自動地震速報軟件測試平臺,盡可能多、盡可能早地發現自動地震速報軟件存在的缺陷,協助其提升自動地震速報結果的合理性(何少林等,2019)。該測試平臺于2018年2月22日通過中國地震局驗收(2)中國地震局,2018. 關于公布2017年地震行業科研專項項目驗收結果的通知(中震函〔2018〕28號). 內部資料.,其對地震預警軟件的測試也有一定的借鑒意義。
一套軟件的好壞、質量的優劣不僅取決于軟件開發者,也取決于軟件的合理測試。根據電氣與電子工程師協會(IEEE)在1983年提出的定義,軟件測試是使用人工或自動化手段運行或測定某個系統的過程,目的在于檢驗其是否滿足規定的某個需求或是發現預期結果與實際結果之間的差別。軟件測試的目的在于“發現錯誤”而不是“證明程序正確”,即使用最少的測試用例,盡可能多地發現錯誤。
依據IEEE對軟件測試的定義,設計和實現了一套對自動地震速報軟件的功能和性能進行測試、評價的軟硬件平臺——“自動地震速報軟件系統功能和性能測試平臺(Test_AERS)v1.0”(何少林等,2017),其架構框圖如圖1 所示。

圖1 自動地震速報軟件測試評價平臺架構框圖
測試平臺包括基礎信息維護、測試數據構建、數據信息交換、測試結果分析、系統管理等5個模塊。其中,“基礎信息維護”實現臺站信息、地殼速度模型、地震事件波形數據等資源信息的維護,供系統創建測試案例時使用。“測試數據構建”實現在系統中根據需要對震相數據構建、對波形數據重構,形成測試案例數據,供各速報系統測試時使用。“數據信息交換”實現將構建好的案例數據推送至各被測速報系統,以供測試;并將被測速報系統產出的結果接收到測試平臺。“測試結果分析”實現各被測系統產出結果的展示和比較分析。“系統管理”實現用戶管理、單位管理、角色管理、字典管理、日志信息等模塊,管理員可通過該模塊添加用戶、分配權限、維護字典信息、查看系統操作日志等。
測試平臺與被測軟件系統間的數據信息交換采用“消息總線”機制實現跨進程、異步、高可靠的通信,具體采用RabbitMQ方式,基于AMQP協議實現在不同的應用之間(跨平臺、跨語言)共享數據。測試平臺最主要的功能為:
(1)測試用例數據構建。構建期望的理論震相數據集、重構期望的實際地震波形數據集,將其提供給被測軟件系統進行測試運行。
(2)功能和性能評價。對被測軟件產出的結果進行分析,評估自動地震速報軟件是否滿足規定的需求,或是發現預期結果與實際結果之間的差別。
該平臺的特點是可按需求快速構建測試用例,獨立測試被測軟件的震相識別功能、定位功能,提供相互的消息隊列和流數據交換。
軟件測試的目的是分析、給出軟件的適用場景,不只是簡單地評價好或不好,而要給出同一方法在不同條件下的優或劣,或不同方法在不同條件下的優或劣,為軟件使用者提供使用條件建議。
本平臺開發和使用的資源如下:
操作系統:Windows 2007及以上;
支持環境:NET Framework 4.0、ArcGis 10.2、Adobe Reader XI;
框架平臺:Spring、Spring MVC、Hibernate+JPA;
開發工具軟件:Eclipse2013、Microsoft Visual Studio 2010;
建模工具軟件:Microsoft Visio 2010、PowerDesigner 16。
平臺基于B/S架構,使用時通過瀏覽器的方式進行訪問。本系統支持使用搜狐瀏覽器、谷歌瀏覽器、IE8及以上的瀏覽器等。為了得到更好的用戶體驗,推薦使用搜狐瀏覽器。
(1)按測試目的構建期望的測試用例數據。
(2)既包括輸入的測試數據,也包括預期的輸出結果。
(3)既包括合理的輸入數據,也包括不合理的輸入數據。
(4)構建盡可能少的測試用例,發現盡可能多的程序錯誤。注重測試用例的代表性或類型,而不僅僅是用例的數量。
(5)針對自動地震速報軟件的自動震相識別、自動定位兩大主要功能,構建兩類測試用例數據,分別測試兩大功能。
針對自動地震速報軟件的測試,在具體的用例數據構建時,采用了以下構建方法:
(1)等價類劃分法,包括有效等價類、無效等價類。
(2)邊界值分析法,作為對等價類劃分法的補充,不僅包括輸入條件邊界,也考慮輸出域邊界。
(3)錯誤推測法,基于地震速報經驗推測程序中可能存在的各種錯誤,有針對性地設計測試用例。
理論震相數據構建的目的是構建期望的震相數據,以測試被測軟件的定位功能和性能。
在平臺的“自動速報系統功能和性能測試評價平臺”界面,選擇“理論震相數據構建”,可在GIS界面中完成以下構建過程:
(1)設定1個震源位置。在GIS界面下,在期望的震中空間位置點擊,通過GIS功能支持,自動得到設定震中的經緯度以及缺省震源深度(10km),其中震源深度值可人工修改。此震源位置作為被測程序定位結果的期望輸出。
(2)設定多個臺站位置。在GIS界面下,在期望的臺站空間位置點擊,通過GIS功能支持,自動生成臺站的經緯度、缺省高程(500m),其中臺站高程值可人工修改。同時實時自動計算和顯示設定的單個臺站與震源間的震中距和方位角,以及全部設定臺站的6個臺站分布參數,即總臺站數量、最小震中距、最大震中距、最大空隙角、最大次空隙角、臺站分布方位均勻度(中國地震局,2016)。
(3)設定地球分層均勻速度模型或選擇走時表。可選擇平臺內部提供的J-B走時表,或設定地球分層均勻速度模型,同時還可對每個臺站震相設定走時隨機擾動值。
(4)設定地震發震時刻。完成上述設定后,系統可自動生成符合地震編目規范要求的以下文件:①地震臺站參數文件;②地震震相數據文件;③地球分層均勻速度模型或走時表;④震源位置參數;⑤臺站分布參數(圖2)。5個文件或記錄之間通過唯一的震源代碼內部關聯。

圖2 理論震相數據構建

圖3 理論震中和測試程序反饋震中▲為地震臺站;⊙為設定的震中;?為被測軟件定位的震中
可對已設定的震源位置以及相關的多個臺站數據(即測試歷史數據)進行管理,包括刪除設定震源位置、刪除設定地震的每一個臺站。
構建的數據文件①、②和③可通過平臺“數據信息交換”功能,以MQ消息方式發送給測試軟件,被測試軟件接收到數據文件后進行定位處理,并將定位結果文件以MQ消息方式反饋給測試平臺,供用戶對被測軟件性能進行分析。設定(期望)的地震震源位置和被測試軟件反饋的震源位置可同時顯示在GIS界面中,如圖3 所示。
通過構建期望的理論震相測試數據,對設定(期望)的震源位置和被測軟件反饋的震源位置進行比較,可對被測軟件的定位功能進行以下方面的測試:
(1)對臺站分布的適應性。可構建網內、網緣和網外3種類型地震,對每種類型地震又可構造多種不同分布方位均勻度的臺站,如設置臺站分布方位均勻度為0(均勻分布)、0.2、0.4、0.6、0.8和1.0(臺站分布在同一方位上)等,實現盡可能全面地了解定位程序在多種情況下的適應性。

圖4 波形數據重構
(2)對震相偏差的容錯性。通過設定震相隨機擾動值,如設置震相偏差為0.01s、0.02s、0.05s、0.10s、0.20s、0.50s、1.0s、1.5s、2.0s等,模擬震相識別偏差,可測試震相偏差對定位結果的影響程度,指導人工識別震相時允許的震相判別誤差范圍。
(3)臺站高程差異對震源深度測定的影響。通過設定不同臺站高程值,如臺站高程為1000m、500m、200m、-50m、-100m、-150m、-200m、-250m、-300m等,可模擬不同高程的臺站分布以及井下觀測,分析臺站高程差別、或若干個井下觀測對定位震源深度的影響,指導井下臺站建設時對臺站數量和井深的選擇。
(4)對震源深度的敏感性。通過多次設定同一震中、不同震源深度的地震,如10m、11m、12m、13m、14m、15m、16m、17m、18m、19m、20m等,對設定的震源深度和定位反饋的震源深度進行比較,可測試定位方法對震源深度的敏感性或分辨力。
地震波形數據重構是通過實際記錄的地震波形文件刪除部分臺站,重構期望的臺站分布,并重構地震波形數據,形成新的測試波形數據集,基于上述對被測軟件定位性能的了解,進一步測試被測軟件的震相識別性能以及震級計算性能。
地震波形數據重構以地震案例庫(包括臺站參數文件、地震目錄數據、編目震相數據和地震波形數據)為支撐基礎,提供以下波形重構功能:
(1)地震目錄數據管理,包括各臺站記錄波形瀏覽、地震目錄刪除。
(2)波形數據重構,在瀏覽臺站波形的基礎上,考慮波形質量和信噪比,可標記不希望參加測試的臺站,以構建符合期望臺站分布參數的地震波形文件,見圖4。
通過平臺“數據信息交換”功能,將重構的臺站參數文件和地震波形數據以文件和流方式發送給測試軟件,被測試軟件接收到數據文件后,再進行自動震相識別、定位處理、震級計算,并將產出的震相文件和定位結果文件以MQ消息方式反饋給測試平臺,以對被測軟件性能進行分析。
通過重構期望的地震波形測試數據集,可對被測軟件進行以下方面的測試:
(1)自動震相識別能力,通過比較原有編目震相數據和被測軟件反饋的震相數據,可測試其在不同信噪比情況下的自動震相識別能力以及具體的偏差值。
(2)震級計算能力,通過比較編目地震目錄和被測軟件反饋的結果文件,可測試其震級計算的合理性以及具體偏差值。
本平臺基于B/S架構,使用時通過瀏覽器的方式進行訪問。被測軟件與平臺之間通過RabbitMQ方式交換數據信息,無需安裝其他軟件。
本平臺在試運行期間,對福建省地震局研發的大區域自動地震速報軟件、中國地震臺網中心研發的全國自動地震速報軟件進行了多次測試。使用情況表明:系統自身運行穩定、正常,與被測軟件之間信息交換通暢、信息解譯正確。
以下為針對幾個被測軟件產出結果給出的示例。在示例中,被測程序包括福建省地震局研發的大區域自動地震速報軟件(結果標記為“FJ”)、廣東省地震局研發的國家備份中心自動地震速報軟件(結果標記為“GD”)、中國地震臺網中心研發的全國自動地震速報軟件(結果標記為“CB”)。中國地震臺網中心發布的自動速報結果標記為“AU”,人工正式速報結果標記為“CC”。
需要特別說明的是,示例結果僅僅是為了說明本測試平臺具備的功能,其圖中的結果不作為評價各被測軟件功能或性能的依據,正式的被測軟件測試結果需在相關部門的指定下才能得出。
可以分別對發震時刻、震中經度、震中緯度、震中偏差、震級和震源深度等6項結果進行比較。
由于自動地震速報軟件允許同一個地震隨接收臺站數的增加可產出多個結果,因此,可對單個地震、多個程序的多個結果進行比較,見圖5;也可對多個地震、多個程序的最終結果進行比較,見圖6。

圖5 單個地震、多個程序的多次震源深度結果

圖6 多個地震、多個程序的最終結果
單個地震、多個程序的多個震級結果見圖7;20個地震、多個程序的最終結果比較見圖8。

圖7 單個地震、多個程序的多個震級結果

圖8 20個地震、多個程序的最終震級結果

表1 自動地震速報結果評分標準
本平臺可對被測自動地震速報軟件產出的結果進行打分,根據打分結果可比較不同的軟件在不同的條件下的相對優劣,并將測試結果反饋給軟件使用者,以便幫助其全面了解軟件特點、關注軟件使用場景,同時將測試結果反饋給軟件研制者,以便使其有針對性地完善軟件系統,提高軟件質量。
本平臺可對被測自動地震速報軟件產出的發震時刻、震中偏差(體現震中經緯度偏差)、震級和震源深度等結果打分。對于自動地震速報,由于沒有正式的評分標準,本平臺編制了暫行的評分標準,并采用60分值,見表1。對于偏差太大的結果,最終得分也可能出現負分,僅表明不同被測軟件之間的差異大小。
地震行業對自動地震速報軟件的基本要求是少漏報、不誤報、時效性快且結果合理,而自動地震速報軟件質量的好壞不僅僅取決于軟件開發者,也取決于軟件的測試和合理使用。針對新研制或完善后的自動地震速報軟件的功能和性能需要進行專門測試的必要需求,以及目前行業內相關測試方法或過程的不足,研制了一種自動地震速報軟件測試平臺。
該平臺支持構建期望的震相數據,并同時給出期望的震源位置,可重構期望的地震波形數據等,能快速測試自動地震速報軟件的以下特性:①定位方法對臺站分布的適應性;②定位方法對震相偏差的容錯性;③臺站高程差異對震源深度測定的影響;④定位方法對震源深度的敏感性;⑤自動識別震相的能力;⑥震級計算的能力。
通過本平臺的測試與評估,為用戶客觀了解自動地震速報軟件的功能和性能特性給出具體依據,可給出自動地震速報軟件“放心使用”、“慎重使用”和“不宜使用”的場景條件,也可為研制者完善軟件給出參考方向,進而逐步提高軟件質量。該平臺的建設思路、測試數據構建原則和方法對人工交互地震速報軟件、地震預警中相關軟件的測試也有一定的借鑒意義。