張 成 何少林
1)中國(guó)黑龍江 161000 黑龍江省地震局齊齊哈爾地震臺(tái)
2)中國(guó)蘭州 730000 甘肅省地震局
3)中國(guó)廣東 518003 深圳防災(zāi)減災(zāi)技術(shù)研究院
地震速報(bào)是對(duì)已發(fā)生地震的時(shí)間、地點(diǎn)、震級(jí)等的快速測(cè)報(bào)。隨著測(cè)震臺(tái)網(wǎng)數(shù)字化和網(wǎng)絡(luò)化的實(shí)現(xiàn),以及測(cè)震臺(tái)站密度的增加、計(jì)算機(jī)處理能力的提高和地震數(shù)據(jù)處理方法的改進(jìn),人工地震速報(bào)用時(shí)大幅度縮短。目前,人工速報(bào)地震平均用時(shí):國(guó)內(nèi)地震約10 min,國(guó)外地震約20 min。自動(dòng)地震速報(bào)也已于2013 年實(shí)現(xiàn)向各省地震局和社會(huì)提供地震速報(bào)信息的服務(wù)。在我國(guó),可在2 min 左右給出國(guó)內(nèi)東部地區(qū)3.0 級(jí)及以上、3 min左右給出國(guó)內(nèi)西部地區(qū)4.0 級(jí)及以上地震較合理的地震速報(bào)結(jié)果(楊陳等,2010,2012,2014;吳永權(quán)等,2011)。目前我國(guó)地震速報(bào)過(guò)程執(zhí)行自動(dòng)地震速報(bào)、省級(jí)地震臺(tái)網(wǎng)中心人工初報(bào)、國(guó)家地震臺(tái)網(wǎng)中心人工正式報(bào)的三級(jí)協(xié)同(或三階段)工作的速報(bào)產(chǎn)出體系①中國(guó)地震局.地震速報(bào)技術(shù)管理規(guī)定(2015 年修訂版)(中震測(cè)發(fā)〔2018〕51 號(hào)).2015.。地震速報(bào)時(shí)間的縮短,為政府和社會(huì)有效應(yīng)對(duì)地震災(zāi)害提供了強(qiáng)有力的信息支持。
測(cè)震臺(tái)網(wǎng)建設(shè)完成后,其地震速報(bào)結(jié)果的時(shí)效性、合理性和穩(wěn)定性主要取決于地震速報(bào)軟件,可以說(shuō),地震速報(bào)軟件質(zhì)量的好壞,直接影響了地震速報(bào)結(jié)果。而地震速報(bào)軟件的質(zhì)量,不僅取決于軟件開(kāi)發(fā)者,也取決于軟件的全面測(cè)試。我國(guó)對(duì)地震速報(bào)軟件測(cè)試工作開(kāi)展的研究不多,可供使用的工具和平臺(tái)較少?!笆濉逼陂g,曾在儀器質(zhì)檢中心建設(shè)測(cè)震專業(yè)軟件測(cè)試與評(píng)估平臺(tái)(肖武軍等,2011),其提供的測(cè)試數(shù)據(jù)是以真實(shí)地震為基礎(chǔ),存在一定不足之處,加之其他原因等,該平臺(tái)的實(shí)際使用有限。目前,地震速報(bào)軟件測(cè)試主要指開(kāi)發(fā)人員進(jìn)行的單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試,軟件質(zhì)量評(píng)定往往由開(kāi)發(fā)人員的保證確定,而由專業(yè)測(cè)試人員和用戶/客戶進(jìn)行的系統(tǒng)測(cè)試與驗(yàn)收測(cè)試則相對(duì)簡(jiǎn)單且不規(guī)范。
筆者曾負(fù)責(zé)或參與多個(gè)地震業(yè)務(wù)軟件驗(yàn)收測(cè)試工作,認(rèn)為地震業(yè)務(wù)軟件測(cè)試尚存在不足之處②何少林.一種地震自動(dòng)速報(bào)軟件測(cè)試平臺(tái)研制.2020.:①缺乏行業(yè)軟件的管理體系,難以保證專用軟件測(cè)試的規(guī)范性;②測(cè)試投入時(shí)間較短,一般僅2—3 天,且需保留足夠時(shí)間編寫(xiě)軟件測(cè)試報(bào)告,軟件驗(yàn)收測(cè)試內(nèi)容往往不完備,測(cè)試用例也以用戶提供數(shù)據(jù)為主,難以進(jìn)行較全面的功能和性能的詳細(xì)測(cè)試;③缺少必要的支持工具或平臺(tái),主要是以現(xiàn)有數(shù)據(jù)運(yùn)行被測(cè)軟件,難以進(jìn)行各種典型應(yīng)用場(chǎng)景的模擬測(cè)試;④缺少相應(yīng)的測(cè)試指標(biāo)體系或評(píng)估打分標(biāo)準(zhǔn),難以與類(lèi)似軟件進(jìn)行比較測(cè)試?;诖?,地震速報(bào)軟件測(cè)試的相關(guān)研究和工作亟待加強(qiáng)和規(guī)范,借以促進(jìn)地震速報(bào)軟件質(zhì)量的提高,為地震速報(bào)數(shù)據(jù)處理提供高質(zhì)量軟件支撐。
軟件測(cè)試的定義有多種,比較權(quán)威的定義由IEEE 于1983 年提出:“軟件測(cè)試是使用人工或自動(dòng)化手段運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的某個(gè)需求或是發(fā)現(xiàn)預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。即軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,也可以說(shuō),軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例,并用它們?nèi)?zhí)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。軟件測(cè)試是在軟件投入使用前,對(duì)軟件的需求分析、設(shè)計(jì)規(guī)格說(shuō)明和系統(tǒng)編碼的最終復(fù)審。
測(cè)試的關(guān)鍵在于“發(fā)現(xiàn)錯(cuò)誤”而不是“證明程序正確”,即使用最少的測(cè)試用例,盡可能多地發(fā)現(xiàn)錯(cuò)誤。《計(jì)算機(jī)軟件測(cè)試規(guī)范》(GB/T 15532—2008)指出,軟件測(cè)試的目的是:①驗(yàn)證軟件是否滿足軟件開(kāi)發(fā)合同或項(xiàng)目開(kāi)發(fā)計(jì)劃、系統(tǒng)/子系統(tǒng)設(shè)計(jì)文檔、軟件需求規(guī)格說(shuō)明、軟件設(shè)計(jì)說(shuō)明和軟件產(chǎn)品說(shuō)明等規(guī)定的軟件質(zhì)量要求;②通過(guò)測(cè)試,發(fā)現(xiàn)軟件缺陷;③為軟件產(chǎn)品的質(zhì)量測(cè)量和評(píng)價(jià)提供依據(jù)。
據(jù)悉,美國(guó)每年因軟件Bug 面臨近600 億美元的經(jīng)濟(jì)損失。歷史上典型的、具有毀滅性軟件Bug 的例子較多,如:1987 年華盛頓因程式交易引起股票系統(tǒng)崩盤(pán),1 天就損失5 000 億美元;1991 年海灣戰(zhàn)爭(zhēng),由于軟件的舍入錯(cuò)誤,美國(guó)愛(ài)國(guó)者導(dǎo)彈系統(tǒng)未能及時(shí)發(fā)現(xiàn)和攔截飛入伊拉克境內(nèi)的飛毛腿導(dǎo)彈,造成28 名士兵死亡;1999 年因千年蟲(chóng)Bug,損失5 000 億美元;2000 年因愛(ài)蟲(chóng)病毒,損失87.5 億美元③截至2014 年全球最具毀滅性的20 個(gè)軟件Bug.http://www.idcps.com/news/20141017/78642.html.?;谌绱藝?yán)重的教訓(xùn),在軟件業(yè)較發(fā)達(dá)的國(guó)家,軟件測(cè)試不僅成為軟件開(kāi)發(fā)的一個(gè)有機(jī)組成部分,而且在軟件開(kāi)發(fā)的系統(tǒng)工程中占據(jù)著相當(dāng)大的比重。以美國(guó)的軟件開(kāi)發(fā)和生產(chǎn)的平均資金投入為例,通常是“需求分析”約占3%、“規(guī)劃確定”約占3%,“設(shè)計(jì)”約占5%,“編程”占約7%,“測(cè)試”約占15%,投產(chǎn)和維護(hù)占60%—70%,可見(jiàn)測(cè)試在軟件開(kāi)發(fā)中的地位。僅就“編程”和“測(cè)試”過(guò)程看,“測(cè)試”的平均資金投入約為“編程”的2 倍。更廣泛的統(tǒng)計(jì)表明,軟件測(cè)試工作量一般占軟件開(kāi)發(fā)總工作量的40%以上,測(cè)試經(jīng)費(fèi)占軟件開(kāi)發(fā)總經(jīng)費(fèi)的30%—50%,測(cè)試人員和開(kāi)發(fā)人員的比例約為1.5—2.5(陳春玲等,2002)。例如,在Windows 2000研發(fā)團(tuán)隊(duì)中,測(cè)試人員約1 800 人,開(kāi)發(fā)人員約900 人、測(cè)試人員與開(kāi)發(fā)人員比例為2.0:1.0。
一個(gè)軟件的好壞和質(zhì)量的優(yōu)劣不僅取決于軟件開(kāi)發(fā)者,還取決于軟件測(cè)試。軟件測(cè)試是提高軟件質(zhì)量的重要環(huán)節(jié),貫穿于軟件項(xiàng)目的整個(gè)生命過(guò)程。
按照《軟件產(chǎn)品分類(lèi)》(GB/T 36475—2018)規(guī)定,測(cè)震軟件分類(lèi)號(hào)為C.2.13,其中“C”標(biāo)識(shí)“應(yīng)用軟件”,“2”標(biāo)識(shí)“行業(yè)應(yīng)用軟件”,“13”標(biāo)識(shí)“其他行業(yè)應(yīng)用軟件”。根據(jù)測(cè)震軟件在應(yīng)用中的重要性、使用范圍、結(jié)果的影響等因素,可將測(cè)震軟件分為關(guān)鍵性軟件(暫定分類(lèi)號(hào)為C.2.13.1,簡(jiǎn)稱“Ⅰ”類(lèi))、一般性軟件(暫定分類(lèi)號(hào)為C.2.13.2,簡(jiǎn)稱“Ⅱ”類(lèi))。Ⅰ類(lèi)軟件是指大范圍使用的,或產(chǎn)出結(jié)果影響范圍較大,或產(chǎn)出結(jié)果作為其他地震科學(xué)研究基礎(chǔ)資料的軟件或軟件系統(tǒng)。Ⅱ類(lèi)軟件指其產(chǎn)出結(jié)果不會(huì)造成重大的,或廣泛的政府、社會(huì)和行業(yè)影響,或其結(jié)果不會(huì)對(duì)行業(yè)發(fā)展造成影響,或不會(huì)造成后續(xù)處理錯(cuò)誤的軟件或軟件系統(tǒng)。
在具體劃分時(shí),符合以下條件之一的測(cè)震軟件可認(rèn)為是Ⅰ類(lèi)軟件:①在5 個(gè)或以上省地震局測(cè)震臺(tái)網(wǎng)正式使用的軟件;②在20 個(gè)或以上地震臺(tái)站正式使用的軟件;③省地震局測(cè)震臺(tái)網(wǎng)/中國(guó)地震臺(tái)網(wǎng)中心在線運(yùn)行的地震速報(bào)(含自動(dòng)和人機(jī)交互)、地震編目、地震烈度速報(bào)、地震預(yù)警等軟件;④在地震行業(yè)內(nèi)提供觀測(cè)數(shù)據(jù)存貯、交換、服務(wù)的軟件;⑤對(duì)外提供信息公共服務(wù)的軟件,如地震應(yīng)急產(chǎn)品產(chǎn)出軟件、地震信息發(fā)布軟件、地震信息公開(kāi)展示軟件等。
從測(cè)震業(yè)務(wù)軟件分類(lèi)看,地震速報(bào)軟件屬于Ⅰ類(lèi)軟件。對(duì)于Ⅰ類(lèi)軟件,至少應(yīng)建立軟件產(chǎn)品的供方(含開(kāi)發(fā)方、維護(hù)方)、業(yè)務(wù)管理方和用戶方(含質(zhì)量保證管理者、操作方)構(gòu)成的管理組織,明確各自的責(zé)任要求。各方的責(zé)任至少包括但不限于以下內(nèi)容。
(1)供方。供方應(yīng)提供軟件開(kāi)發(fā)過(guò)程形成的有關(guān)材料,包括系統(tǒng)需求分析、軟件需求分析、軟件體系結(jié)構(gòu)設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、源程序、可執(zhí)行程序、軟件安裝說(shuō)明、軟件使用說(shuō)明、軟件更新(升級(jí))與維護(hù)說(shuō)明、軟件單元測(cè)試文檔、軟件集成測(cè)試文檔、軟件配置項(xiàng)測(cè)試文檔、合同授權(quán)的系統(tǒng)測(cè)試的文檔、軟件遷移文檔等(GB/T 8566—2007)。相關(guān)測(cè)試文檔的內(nèi)容應(yīng)符合《計(jì)算機(jī)軟件測(cè)試規(guī)范》(GB/T 15532)要求。
(2)業(yè)務(wù)管理方。需方管理部門(mén)管理軟件的系統(tǒng)測(cè)試、Ⅱ類(lèi)軟件的驗(yàn)收測(cè)試、軟件試運(yùn)行、軟件使用培訓(xùn)、軟件運(yùn)行;行業(yè)業(yè)務(wù)管理部門(mén)管理與Ⅰ類(lèi)軟件有關(guān)的驗(yàn)收測(cè)試組織、認(rèn)證、在線運(yùn)行許可、軟件退役。
(3)用戶方。用戶方負(fù)責(zé)軟件安裝、試運(yùn)行、正式運(yùn)行,提供軟件的運(yùn)行文檔,包括軟件改進(jìn)建議。Ⅰ類(lèi)軟件應(yīng)有3 個(gè)及以上用戶試運(yùn)行文檔。
地震速報(bào)軟件供方應(yīng)提供文檔作為驗(yàn)收測(cè)試時(shí)文檔評(píng)價(jià)的材料。文檔應(yīng)包括表1 中所列信息,但不限于所列信息。表1 中標(biāo)“*”為應(yīng)有內(nèi)容。
表1 地震速報(bào)軟件信息表Table 1 Information table of rapid earthquake information report software
軟件測(cè)試包含多方面內(nèi)容,文中重點(diǎn)從文檔和軟件功能、性能和易用性方面探討自動(dòng)地震速報(bào)軟件的測(cè)試問(wèn)題。
軟件文檔是軟件使用和維護(hù)過(guò)程中的必備資料。文檔能提高軟件開(kāi)發(fā)效率,保證軟件質(zhì)量,而且在軟件使用過(guò)程中具有指導(dǎo)、幫助、解惑的作用,尤其在維護(hù)工作中,是不可或缺的資料。
文檔檢查主要是檢查文檔的正確性、完備性和可理解性。正確性是指不要將軟件功能和操作寫(xiě)錯(cuò),也不允許文檔內(nèi)容前后矛盾。完備性是指文檔不可以“虎頭蛇尾”,更不許漏掉關(guān)鍵內(nèi)容。文檔中諸多內(nèi)容對(duì)開(kāi)發(fā)者可能是“顯然”的,但對(duì)用戶而言不見(jiàn)得都是“顯然”的。軟件的可理解性是理解計(jì)算機(jī)程序、規(guī)程、相關(guān)文檔和數(shù)據(jù)的難易程度??蓞⒄毡?所列內(nèi)容進(jìn)行文檔檢查。
功能測(cè)試又稱正確性測(cè)試,就是對(duì)產(chǎn)品的各功能進(jìn)行驗(yàn)證,檢查軟件的功能是否符合規(guī)格說(shuō)明,是否按照項(xiàng)目任務(wù)書(shū)的要求,完成任務(wù)書(shū)要求實(shí)現(xiàn)的功能。由于正確性是軟件最重要的質(zhì)量因素,所以其測(cè)試也最重要。
功能測(cè)試可根據(jù)功能測(cè)試用例,逐項(xiàng)測(cè)試,檢查產(chǎn)品是否達(dá)到用戶要求的功能。功能測(cè)試也叫黑盒測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,只需考慮需要測(cè)試的各個(gè)功能,不需要考慮整個(gè)軟件的內(nèi)部結(jié)構(gòu)及代碼。一般從軟件產(chǎn)品的界面、架構(gòu)出發(fā),按照需求編寫(xiě)測(cè)試用例,輸入數(shù)據(jù)在預(yù)期結(jié)果和實(shí)際結(jié)果之間進(jìn)行評(píng)測(cè),進(jìn)而提出使產(chǎn)品達(dá)到用戶使用的要求。
在功能測(cè)試中要考慮軟件的容錯(cuò)性。容錯(cuò)性主要檢查系統(tǒng)的容錯(cuò)能力,檢查軟件自身在異常條件下是否具有防護(hù)性措施或者某種災(zāi)難性恢復(fù)手段,是檢查軟件在異常條件下的行為。容錯(cuò)性好的軟件能確保系統(tǒng)不發(fā)生無(wú)法意料的事故。容錯(cuò)性測(cè)試通常構(gòu)造一些不合理的輸入來(lái)誘發(fā)軟件出錯(cuò),例如:①輸入錯(cuò)誤的數(shù)據(jù)類(lèi)型;②輸入定義域之外的數(shù)值等。
可按照表2 所列指標(biāo)對(duì)軟件進(jìn)行功能測(cè)試。功能測(cè)試的產(chǎn)出有:①功能完成情況:全部完成、部分完成比例、偏離情況;②總體評(píng)價(jià):根據(jù)功能整體完成情況、主要功能完成情況給出總體評(píng)價(jià)。
功能評(píng)價(jià)主要檢查是否具有以及其適應(yīng)范圍。自動(dòng)地震速報(bào)系統(tǒng)的功能包括多個(gè)方面,這些功能根據(jù)工作的重要性可分為基本功能和擴(kuò)展功能?;竟δ苁亲詣?dòng)地震速報(bào)軟件必須具備的功能,見(jiàn)表2 中一級(jí)功能的第1—5 項(xiàng)。擴(kuò)展功能是可選擇的功能,見(jiàn)表2 中一級(jí)功能的第6—20 項(xiàng)。
表2 軟件功能測(cè)試Table 2 Software function test
續(xù)表2
性能測(cè)試是為了驗(yàn)證系統(tǒng)是否達(dá)到用戶提出的性能指標(biāo),同時(shí)發(fā)現(xiàn)系統(tǒng)中存在的性能瓶頸,起到優(yōu)化系統(tǒng)的目的。通常驗(yàn)證軟件的性能在正常環(huán)境和系統(tǒng)條件下重復(fù)使用是否仍能滿足性能指標(biāo)。系統(tǒng)性能主要體現(xiàn)在處理響應(yīng)時(shí)間的長(zhǎng)短上,執(zhí)行同樣任務(wù)時(shí)新版本不比舊版本慢。性能測(cè)試一般還檢查系統(tǒng)記憶容量在運(yùn)行程序時(shí)會(huì)不會(huì)出現(xiàn)內(nèi)存泄露。
測(cè)試要點(diǎn):①軟件性能測(cè)試是在功能測(cè)試完成后進(jìn)行的;②軟件性能測(cè)試的計(jì)劃、方案,一般與測(cè)試用例統(tǒng)一在一個(gè)文檔里;③測(cè)試環(huán)境應(yīng)盡量與用戶環(huán)境保持一致;④軟件性能測(cè)試一般使用測(cè)試工具,由測(cè)試人員編制測(cè)試腳本來(lái)完成,軟件性能測(cè)試的環(huán)境應(yīng)單獨(dú)運(yùn)行,盡量避免與其他軟件同時(shí)使用;⑤軟件性能測(cè)試的重點(diǎn)在于前期數(shù)據(jù)設(shè)計(jì)與后期數(shù)據(jù)分析;⑥軟件性能測(cè)試用例主要涉及整個(gè)系統(tǒng)架構(gòu)的問(wèn)題,所以測(cè)試用例一旦生成,改動(dòng)一般不大,但是如果某個(gè)功能有較大修改,軟件性能測(cè)試也應(yīng)重新進(jìn)行測(cè)試;⑦軟件性能測(cè)試指標(biāo)的來(lái)源:測(cè)試依據(jù)是產(chǎn)品需求規(guī)格說(shuō)明書(shū);如果用戶未提出性能指標(biāo),則根據(jù)用戶需求、測(cè)試設(shè)計(jì)人員的經(jīng)驗(yàn)來(lái)設(shè)計(jì)各項(xiàng)測(cè)試指標(biāo)。
自動(dòng)地震速報(bào)系統(tǒng)軟件的性能測(cè)試主要是對(duì)自動(dòng)地震速報(bào)涉及的2 個(gè)主要環(huán)節(jié)(震相自動(dòng)識(shí)別、自動(dòng)定位),以及產(chǎn)出結(jié)果的時(shí)效性、穩(wěn)定性、合理性等進(jìn)行評(píng)價(jià)。
通過(guò)性能測(cè)試,綜合分析給出軟件的適用場(chǎng)景。不是簡(jiǎn)單的好與不好,應(yīng)是同一方法,在不同條件下的好與不好;不同方法,在相同條件下的好與不好。
根據(jù)自動(dòng)地震速報(bào)軟件系統(tǒng)的特點(diǎn),結(jié)合功能要求,提出如下性能評(píng)價(jià)指標(biāo),見(jiàn)表3,其中自動(dòng)地震速報(bào)得分100 分,可參照表4 打分。
表3 軟件性能測(cè)試Table 3 Software performance test
表4 自動(dòng)地震速報(bào)得分(100 分)Table 4 Automatic rapid earthquake information report score (100)
關(guān)于軟件的易用性問(wèn)題,可按照一級(jí)指標(biāo)、二級(jí)指標(biāo)進(jìn)行分級(jí)測(cè)試,對(duì)軟件安裝、維護(hù)、升級(jí)和遷移進(jìn)行評(píng)價(jià),具體測(cè)試內(nèi)容見(jiàn)表5所示。
表5 易用性測(cè)試Table 5 Usability test
針對(duì)地震速報(bào)專用軟件測(cè)試的現(xiàn)狀,討論了測(cè)震業(yè)務(wù)軟件進(jìn)一步細(xì)分類(lèi)的參考依據(jù),提出了構(gòu)建地震速報(bào)軟件管理組織的建議,給出了地震速報(bào)軟件的內(nèi)容信息表。以自動(dòng)地震速報(bào)軟件測(cè)試為例,從文檔檢查、功能測(cè)試、性能測(cè)試、易用性測(cè)試等提出了測(cè)試的內(nèi)容,并給出了自動(dòng)地震速報(bào)結(jié)果評(píng)分表。
文中針對(duì)地震速報(bào)專用軟件測(cè)試提出的建議和內(nèi)容具有一定操作性,可在實(shí)際工作中參考使用。鑒于地震行業(yè)軟件測(cè)試相關(guān)研究和規(guī)范性工作的不足之處,文中提出的內(nèi)容尚需在今后實(shí)踐中不斷補(bǔ)充和修改,以達(dá)到軟件測(cè)試促進(jìn)軟件質(zhì)量提高的最終目的。