于萌 何紫薇 任嘉勉 周海旭 姜大偉 左遠(yuǎn)清
(1.中國(guó)民航信息網(wǎng)絡(luò)股份有限公司北京市民航大數(shù)據(jù)工程技術(shù)研究中心;2.中國(guó)民航信息網(wǎng)絡(luò)股份有限公司研發(fā)中心 北京 100000)
中國(guó)航信是航空運(yùn)輸旅游業(yè)信息技術(shù)解決方案主導(dǎo)提供商,航信系統(tǒng)是國(guó)務(wù)院監(jiān)管的八大重點(diǎn)系統(tǒng)之一。近年來(lái),隨業(yè)務(wù)發(fā)展與國(guó)產(chǎn)化進(jìn)程的推進(jìn),越來(lái)越多的新系統(tǒng)建成投產(chǎn),其中不乏配載平衡、旅客服務(wù)等關(guān)鍵業(yè)務(wù)的核心系統(tǒng)。如何確保這些新投產(chǎn)系統(tǒng)功能正常、數(shù)據(jù)準(zhǔn)確,是一個(gè)無(wú)法回避的難題。在實(shí)踐中,新系統(tǒng)的投產(chǎn)往往還涉及與老系統(tǒng)的交互、轉(zhuǎn)移等過(guò)程,隨之產(chǎn)生數(shù)據(jù)兼容性、接口兼容性等問(wèn)題,帶來(lái)更高的風(fēng)險(xiǎn)。通常情況下,對(duì)新投產(chǎn)系統(tǒng)功能與數(shù)據(jù)準(zhǔn)確性的驗(yàn)證,是由軟件測(cè)試部門(mén)通過(guò)測(cè)試環(huán)節(jié)來(lái)完成的,這也是保障軟件質(zhì)量的基礎(chǔ)。高文輝[1]著重研究了軟件測(cè)試中的接口測(cè)試部分,并對(duì)接口測(cè)試必須遵循的原則與要求展開(kāi)了探索;桑鑫[2]、趙明明等人[3]、楊懂懂等人[4]則強(qiáng)調(diào)接口測(cè)試自動(dòng)化的重要性,并對(duì)用例腳本生成與測(cè)試過(guò)程的自動(dòng)化進(jìn)行了嘗試,這些研究對(duì)提升測(cè)試部門(mén)的能力都有重要意義。但由于測(cè)試用例數(shù)據(jù)的真實(shí)性、測(cè)試場(chǎng)景的覆蓋率、特殊場(chǎng)景的參與度等原因,目前在實(shí)際實(shí)踐中,測(cè)試環(huán)節(jié)仍然會(huì)漏過(guò)一些關(guān)鍵問(wèn)題,在投產(chǎn)后實(shí)際生產(chǎn)環(huán)境下才會(huì)被發(fā)現(xiàn)。尤其是一些隱藏在新系統(tǒng)內(nèi)部的不可見(jiàn)接口,由于其深埋在用戶(hù)的可見(jiàn)區(qū)之外,更是難以得到全面測(cè)試,出現(xiàn)問(wèn)題也難以排查,是新系統(tǒng)安全投產(chǎn)的痛點(diǎn)與難點(diǎn)。因此,需要研究探索對(duì)應(yīng)的測(cè)試驗(yàn)證方法,做到對(duì)這些不可見(jiàn)接口的可信驗(yàn)證,以確保新系統(tǒng)投產(chǎn)的萬(wàn)無(wú)一失。
系統(tǒng)接口具有多種用途,不同類(lèi)型的接口對(duì)數(shù)據(jù)質(zhì)量、保障級(jí)別要求都是不同的。不同的數(shù)據(jù)接口,其自身容易出錯(cuò)的程度也是不同的,因此需要首先對(duì)接口分類(lèi)進(jìn)行研究,明確區(qū)分每一類(lèi)不同接口的特性,以便對(duì)不同的接口實(shí)施不同的驗(yàn)證與保障手段。
1.1.1 按接口重要程度
按接口的重要程度,可將其劃分為以下幾個(gè)方面。(1)一般接口。
在一個(gè)系統(tǒng)對(duì)外的大量接口中,一般接口的數(shù)量占比通常來(lái)說(shuō)是最高的,即一個(gè)系統(tǒng)的大多數(shù)接口可能都是一般接口,但一般接口的故障或數(shù)據(jù)錯(cuò)誤可能并不會(huì)帶來(lái)整個(gè)系統(tǒng)核心業(yè)務(wù)阻斷性問(wèn)題,對(duì)核心業(yè)務(wù)整體運(yùn)行的影響也在可控范圍內(nèi)。在運(yùn)維中,一般接口的問(wèn)題通??梢酝ㄟ^(guò)功能降級(jí)、功能暫停、替代功能等方法來(lái)應(yīng)對(duì)。
(2)重要接口。
在一個(gè)系統(tǒng)中,雖然重要接口的數(shù)量較少,但其肩負(fù)重要任務(wù),通常會(huì)對(duì)系統(tǒng)核心業(yè)務(wù)的正常運(yùn)轉(zhuǎn)帶來(lái)重大影響。因此,重要接口的可用性與數(shù)據(jù)準(zhǔn)確性都非常重要。在運(yùn)維中,重要接口的問(wèn)題通??梢酝ㄟ^(guò)功能降級(jí)、替代功能等方法來(lái)應(yīng)對(duì),并通過(guò)編寫(xiě)應(yīng)急預(yù)案來(lái)提升應(yīng)對(duì)的時(shí)效性。
(3)關(guān)鍵接口。
在一個(gè)系統(tǒng)中,能被稱(chēng)為關(guān)鍵接口的少之又少。關(guān)鍵接口的功能一般無(wú)法使用降級(jí)、替代等方法進(jìn)行備份應(yīng)急,因此一旦關(guān)鍵接口出現(xiàn)可用性問(wèn)題或數(shù)據(jù)準(zhǔn)確性問(wèn)題,就會(huì)直接阻斷核心業(yè)務(wù)的正常運(yùn)行,對(duì)生產(chǎn)安全造成重大威脅。
對(duì)于這樣的關(guān)鍵接口,其可用性與數(shù)據(jù)準(zhǔn)確性的保障要求都是最高級(jí)別的,并且僅在投產(chǎn)前進(jìn)行測(cè)試與驗(yàn)證是不能滿(mǎn)足保障需求的,必須在投產(chǎn)后應(yīng)在線持續(xù)對(duì)關(guān)鍵接口的可用性與數(shù)據(jù)準(zhǔn)確性進(jìn)行監(jiān)控與保障。
1.1.2 按接口使用目的按接口的使用目的,可將其劃分為以下幾個(gè)方面。(1)命令接口(行為式接口)。
通過(guò)該接口傳遞命令與動(dòng)作,屬于行為式接口;這種接口一般關(guān)注的重點(diǎn)在于動(dòng)作的“有”或“無(wú)”;針對(duì)命令接口一般采用標(biāo)準(zhǔn)測(cè)試流程驗(yàn)證即可保障,因?yàn)槊罱涌谝话阆鄬?duì)簡(jiǎn)單,出錯(cuò)概率較低。
(2)數(shù)據(jù)接口(內(nèi)容式接口)。
通過(guò)該接口傳遞數(shù)據(jù)內(nèi)容,屬于內(nèi)容式接口,但凡有數(shù)據(jù)信息傳遞,就存在數(shù)據(jù)內(nèi)容的準(zhǔn)確性問(wèn)題。針對(duì)數(shù)據(jù)接口一般需要提升測(cè)試與驗(yàn)證級(jí)別,對(duì)其數(shù)據(jù)準(zhǔn)確性給予深入的驗(yàn)證。
1.1.3 按接口設(shè)計(jì)來(lái)源按接口的設(shè)計(jì)來(lái)源,可將其劃分為以下幾個(gè)方面。(1)原生新接口。
原生新接口指的是新系統(tǒng)從零開(kāi)始,全新設(shè)計(jì)與實(shí)現(xiàn)的接口。這種接口沒(méi)有歷史包袱與束縛,不需要考慮兼容,可以獲得對(duì)新接口內(nèi)容項(xiàng)最原始、最全面的理解與把控。因此,原生新接口的出錯(cuò)概率相對(duì)較低。
(2)轉(zhuǎn)移老接口。
轉(zhuǎn)移老接口,是測(cè)試驗(yàn)證的難點(diǎn)與重點(diǎn)。轉(zhuǎn)移老接口指的是該接口在老系統(tǒng)中存在一個(gè)現(xiàn)有版本,新系統(tǒng)需要更新版本,該新版本可以用于老版本的轉(zhuǎn)移與替換。由于要考慮接口格式的兼容問(wèn)題,很多字段將從老接口帶入到新接口中;而新接口的需求設(shè)計(jì)人員對(duì)老接口字段可能存在了解深度不夠、理解偏差等問(wèn)題,造成新接口“形似而神異”。另外,新接口字段在設(shè)計(jì)時(shí)可能還隱晦地存在與老接口字段之間的數(shù)值精度差異等潛藏問(wèn)題,都導(dǎo)致老接口的轉(zhuǎn)移成為問(wèn)題高發(fā)區(qū),且常常具有問(wèn)題潛伏深、特殊場(chǎng)景多、數(shù)值錯(cuò)誤不易發(fā)現(xiàn)等特點(diǎn),使新接口隱患重重,數(shù)據(jù)可信度低下。
1.1.4 按接口可觀測(cè)性
按接口的設(shè)計(jì)來(lái)源,可將其劃分為以下幾個(gè)方面。
(1)可見(jiàn)接口。
可見(jiàn)接口是指接口的內(nèi)容可以較為簡(jiǎn)單地被用戶(hù)觀測(cè)與理解,從而可以較為容易地被用戶(hù)感知到錯(cuò)誤和問(wèn)題,因此,對(duì)可見(jiàn)接口的測(cè)試與驗(yàn)證較為簡(jiǎn)單。例如:一個(gè)明文傳遞標(biāo)準(zhǔn)業(yè)務(wù)報(bào)文的接口,用戶(hù)如果可以在某個(gè)前端或工具上直接觀測(cè)到該接口上傳遞的業(yè)務(wù)報(bào)文,從而可以較為簡(jiǎn)單地確認(rèn)該接口是否正常地運(yùn)作。
(2)不可見(jiàn)接口。
不可見(jiàn)接口是指接口的內(nèi)容被封裝或編碼,并在系統(tǒng)內(nèi)部被使用與轉(zhuǎn)換,無(wú)法被用戶(hù)直接觀測(cè)與理解,其使用機(jī)器語(yǔ)言進(jìn)行溝通,在系統(tǒng)之間進(jìn)行內(nèi)部處理。例如:離港系統(tǒng)給配載系統(tǒng)提供航班值機(jī)數(shù)據(jù)的LCI接口,其首先是一個(gè)轉(zhuǎn)移老接口,兼容了傳統(tǒng)大型機(jī)離港系統(tǒng)提供的LCI 數(shù)據(jù)格式,使用了一種結(jié)構(gòu)化的數(shù)據(jù)編碼,無(wú)法被用戶(hù)直接理解。LCI 接口數(shù)據(jù)送達(dá)配載系統(tǒng)后,配載系統(tǒng)會(huì)使用這些LCI 數(shù)據(jù)進(jìn)行進(jìn)一步的加工與運(yùn)算,最終呈現(xiàn)給用戶(hù)觀測(cè)到的是加工運(yùn)算后的結(jié)果,這就造成LCI 接口的內(nèi)容被配載系統(tǒng)進(jìn)一步隱藏在用戶(hù)的可見(jiàn)范圍之外。接口中的數(shù)據(jù)一旦出現(xiàn)問(wèn)題,用戶(hù)感知到的已經(jīng)是連鎖影響后的結(jié)果,因此對(duì)不可見(jiàn)接口的測(cè)試驗(yàn)證是難點(diǎn)與重點(diǎn)。
通過(guò)上述對(duì)接口各種分類(lèi)方法的研究,可以看到不同類(lèi)型的接口有其各自的特點(diǎn)。下文將進(jìn)一步對(duì)其中通用的特性抽取出來(lái)進(jìn)行分析與研究。
1.2.1 接口的可信性
接口的可信性指的是因這個(gè)接口的特點(diǎn)而帶來(lái)的這個(gè)接口可以被信賴(lài)的程度,可反映出該接口的易出錯(cuò)程度。
影響接口可信性的因素包括以下幾個(gè)方面。
(1)是否是數(shù)據(jù)接口。命令接口相對(duì)簡(jiǎn)單不易出錯(cuò),而數(shù)據(jù)接口相對(duì)復(fù)雜,較易出錯(cuò)。
(2)是否是從老接口轉(zhuǎn)移而來(lái)。兼容老接口會(huì)帶來(lái)更多的出錯(cuò)點(diǎn),更易出現(xiàn)錯(cuò)誤。
(3)是否經(jīng)過(guò)多層數(shù)據(jù)加工。接口中的數(shù)據(jù)每多一層加工處理,數(shù)據(jù)出錯(cuò)的可能性就多上升一層。
一個(gè)接口的可信性越高,代表這個(gè)接口越不容易出錯(cuò),其對(duì)測(cè)試與驗(yàn)證的要求就越低;另一個(gè)接口的可信性越低,代表這個(gè)接口越混亂,越容易出錯(cuò),其對(duì)測(cè)試與驗(yàn)證的要求就越高。
1.2.2 接口錯(cuò)誤的可感知性
接口錯(cuò)誤的可感知性指的是當(dāng)一個(gè)接口發(fā)生錯(cuò)誤時(shí),該錯(cuò)誤可被用戶(hù)感知的難易程度,亦可反映出該接口發(fā)現(xiàn)問(wèn)題的難易程度。
影響接口錯(cuò)誤可感知性的因素具體包括以下幾個(gè)方面。
(1)是否接口可見(jiàn)。隱藏在系統(tǒng)內(nèi)部的不可見(jiàn)接口往往無(wú)法被用戶(hù)感知。一旦不可見(jiàn)接口出現(xiàn)數(shù)據(jù)問(wèn)題,用戶(hù)看到的是經(jīng)過(guò)轉(zhuǎn)換與計(jì)算后的錯(cuò)誤結(jié)果,很多時(shí)候無(wú)法很快確定具體是哪里出了問(wèn)題。
(2)是否經(jīng)過(guò)多層封裝與處理。接口數(shù)據(jù)每多一層處理與包裝,接口中數(shù)據(jù)的原始錯(cuò)誤被感知到,并被盡快發(fā)現(xiàn)的可能性就下降一層。
接口的可信性決定了需要對(duì)該接口執(zhí)行的測(cè)試與驗(yàn)證工作力度要求,接口錯(cuò)誤的可感知性決定了這個(gè)接口測(cè)試與驗(yàn)證工作的難度,而接口的重要程度分類(lèi),決定了對(duì)該接口進(jìn)行測(cè)試與驗(yàn)證工作的必要性。
針對(duì)接口不同的特性特點(diǎn),劃分出3 個(gè)等級(jí)的測(cè)試驗(yàn)證保障級(jí)別。
1.3.1 常規(guī)測(cè)試
常規(guī)測(cè)試的執(zhí)行成本最低,并可以很好地保證目標(biāo)功能的基礎(chǔ)質(zhì)量。
對(duì)于一般接口、命令接口、原生新接口、可見(jiàn)接口、可信性高的接口,適合使用常規(guī)方式開(kāi)展驗(yàn)證與測(cè)試。
1.3.2 “常規(guī)測(cè)試+離線回放驗(yàn)證”
加入離線回放驗(yàn)證環(huán)節(jié)會(huì)顯著增加測(cè)試執(zhí)行成本,但能夠有效提升測(cè)試用例的真實(shí)性,達(dá)成更好的測(cè)試驗(yàn)證效果。
對(duì)于重要接口、數(shù)據(jù)接口、轉(zhuǎn)移老接口、不可見(jiàn)接口、可信性低的接口,適合使用常規(guī)測(cè)試加離線回放驗(yàn)證的方式開(kāi)展驗(yàn)證與測(cè)試。
1.3.3 “常規(guī)測(cè)試+離線回放驗(yàn)證+在線外掛式復(fù)核”
在線外掛式復(fù)核方法的引入,將整個(gè)驗(yàn)證與保障范圍從投產(chǎn)前延伸到了投產(chǎn)后;新投產(chǎn)系統(tǒng)的個(gè)別關(guān)鍵接口,在投產(chǎn)后的一段時(shí)期內(nèi)將繼續(xù)處于在線外掛式復(fù)核工具的保護(hù)之下。
對(duì)于關(guān)鍵接口這樣絕對(duì)不允許出錯(cuò)的接口,適合結(jié)合使用常規(guī)測(cè)試、離線回放驗(yàn)證、在線外掛式復(fù)核的方式共同進(jìn)行驗(yàn)證。
可信驗(yàn)證方法研究首先需要分析常規(guī)測(cè)試方法無(wú)法達(dá)到可信驗(yàn)證的原因。常規(guī)測(cè)試方法的功能覆蓋全面性與問(wèn)題發(fā)現(xiàn)效率往往直接依賴(lài)于測(cè)試用例的數(shù)量與質(zhì)量,而測(cè)試用例的數(shù)量與質(zhì)量又取決于測(cè)試人員的能力與素質(zhì),其結(jié)果往往存在較大波動(dòng),且傳統(tǒng)的用例測(cè)試方法存在一些固有的局限性。例如:測(cè)試用例設(shè)計(jì)與生產(chǎn)實(shí)踐的偏差,開(kāi)發(fā)者理性設(shè)計(jì)與用戶(hù)感性操作的偏差,往往讓很多問(wèn)題在測(cè)試環(huán)節(jié)無(wú)法被發(fā)現(xiàn),直到投產(chǎn)實(shí)踐中由用戶(hù)觸發(fā)后,系統(tǒng)所有者才會(huì)驚訝地感嘆原來(lái)用戶(hù)竟然還有這種操作,這些操作導(dǎo)致現(xiàn)有的測(cè)試結(jié)果不再那么可信,進(jìn)而造成投產(chǎn)信心下降。
問(wèn)題的核心就是測(cè)試用例數(shù)據(jù),其被局限在了系統(tǒng)投產(chǎn)以前,與現(xiàn)有的生產(chǎn)實(shí)踐數(shù)據(jù)產(chǎn)生了割裂。因此,如果能將現(xiàn)有的生產(chǎn)數(shù)據(jù)引入到測(cè)試過(guò)程中,系統(tǒng)的驗(yàn)證可信度將迎來(lái)一個(gè)大幅度提升。
離線回放驗(yàn)證是指在現(xiàn)有系統(tǒng)(或可類(lèi)比的同類(lèi)業(yè)務(wù)系統(tǒng))中,記錄并保存用戶(hù)的所有操作動(dòng)作與執(zhí)行結(jié)果,然后將其在新系統(tǒng)中進(jìn)行離線回放,并對(duì)執(zhí)行結(jié)果進(jìn)行比對(duì)與分析,從而確認(rèn)新系統(tǒng)是否具備承接目前用戶(hù)業(yè)務(wù)能力的一種方法。它并不是一個(gè)新概念,黃寧等人[5]在網(wǎng)絡(luò)安全領(lǐng)域中就曾提出過(guò)一種面向目標(biāo)網(wǎng)絡(luò)的流量回放方法,以解決目前用戶(hù)行為仿真規(guī)模逼真度不高的問(wèn)題,并證明這種方法是行之有效的;鄭箏等人[6]也通過(guò)對(duì)HTTP流量進(jìn)行錄制與回放,以嘗試實(shí)現(xiàn)自動(dòng)化測(cè)試功能。
這種驗(yàn)證方法實(shí)際上也可以在線運(yùn)行,被稱(chēng)為在線整合驗(yàn)證(ONLINE SIT),即將實(shí)際生產(chǎn)請(qǐng)求同時(shí)分流到現(xiàn)有系統(tǒng)與新系統(tǒng),兩邊同時(shí)運(yùn)行并進(jìn)行結(jié)果比對(duì)分析。這種用實(shí)際生產(chǎn)數(shù)據(jù)與生產(chǎn)流量來(lái)沖擊待驗(yàn)證系統(tǒng)是一種效果非常好的驗(yàn)證手段,能夠提前發(fā)現(xiàn)很多常規(guī)測(cè)試中難以發(fā)現(xiàn)的問(wèn)題,有效提升新系統(tǒng)投產(chǎn)的成功率。但由于關(guān)鍵核心系統(tǒng)往往處于整個(gè)業(yè)務(wù)社區(qū)的中心位置,并通過(guò)多個(gè)接口與周邊系統(tǒng)相連,因此在實(shí)踐中,對(duì)于關(guān)鍵核心系統(tǒng)開(kāi)展在線整合驗(yàn)證往往困難重重,核心系統(tǒng)與外系統(tǒng)之間的實(shí)時(shí)交互接口會(huì)成為ONLINE SIT難以回避的重大障礙,而斷掉這些接口又會(huì)導(dǎo)致這些重要接口無(wú)法得到驗(yàn)證,使整個(gè)驗(yàn)證結(jié)果大打折扣。而離線回放的驗(yàn)證方式可以在非生產(chǎn)環(huán)境運(yùn)行,并通過(guò)在非生產(chǎn)環(huán)境搭建全套關(guān)聯(lián)系統(tǒng)來(lái)模擬生產(chǎn)環(huán)境。因此離線回放驗(yàn)證方法往往可以達(dá)成更好的驗(yàn)證可信度,并且與生產(chǎn)環(huán)境完全隔離,天然具備更好的執(zhí)行安全性。
離線回放驗(yàn)證可以有多種實(shí)現(xiàn)方法與數(shù)據(jù)來(lái)源。在中國(guó)航信新離港系統(tǒng)投產(chǎn)項(xiàng)目中,采用的是基于老系統(tǒng)生產(chǎn)航班跟蹤帶數(shù)據(jù)的離線回放驗(yàn)證方式,如圖1所示;該方法可實(shí)現(xiàn)基于離港航班全生命周期的、全操作流程的跟蹤帶回放驗(yàn)證功能。
圖1 基于跟蹤帶的離線回放驗(yàn)證
該套回放驗(yàn)證體系包括對(duì)目標(biāo)驗(yàn)證航班參數(shù)的靈活配置、全自動(dòng)的跟蹤帶讀取與分析、全自動(dòng)的目標(biāo)驗(yàn)證航班操作序列生成、基于操作序列的驗(yàn)證回放與全過(guò)程結(jié)果比對(duì)。
通過(guò)在投產(chǎn)前對(duì)大量航班進(jìn)行離線驗(yàn)證,可以模擬真實(shí)生產(chǎn)航班的全量生產(chǎn)操作,在數(shù)據(jù)與操作兩方面實(shí)現(xiàn)投產(chǎn)前的有效驗(yàn)證。
離線回放驗(yàn)證的最大特點(diǎn)是使用生產(chǎn)數(shù)據(jù)與生產(chǎn)操作,并采用結(jié)果比對(duì)方式進(jìn)行正確性驗(yàn)證,杜絕主觀影響,使最終結(jié)果更加真實(shí)可信;同時(shí),在回放過(guò)程使用集成聯(lián)調(diào)環(huán)境,能夠全面地驗(yàn)證功能與接口。
上述特點(diǎn)與關(guān)鍵點(diǎn)是離線回放驗(yàn)證結(jié)果被認(rèn)為是可信的關(guān)鍵因素。
基于可視數(shù)據(jù)的外掛式復(fù)核驗(yàn)證方法,就是將自身視為第三方審核者,以一個(gè)外部掛件的方式審視新系統(tǒng)展示出來(lái)的數(shù)據(jù),然后以自身的邏輯來(lái)判斷系統(tǒng)數(shù)據(jù)是否準(zhǔn)確。
對(duì)于重要程度達(dá)到了關(guān)鍵層次的接口,尤其是涉及了安全這種決不允許有失的業(yè)務(wù)場(chǎng)景,有必要啟用外掛式復(fù)核方法。例如:配載系統(tǒng)與離港系統(tǒng)之間的值機(jī)數(shù)據(jù)接口(LCI),其交互數(shù)據(jù)參與飛機(jī)載重平衡計(jì)算,直接關(guān)乎飛行安全,任何數(shù)據(jù)上的錯(cuò)誤都是不允許的。因此,對(duì)于LCI這樣一個(gè)關(guān)鍵接口,就需要使用外掛式復(fù)核方法來(lái)確保其數(shù)據(jù)的準(zhǔn)確性。
3.2.1 選擇外掛式復(fù)核方法的原因
(1)目標(biāo)接口的特點(diǎn)。
作為關(guān)鍵接口,很可能面臨最復(fù)雜的情況與場(chǎng)景,即該接口是一個(gè)經(jīng)由老系統(tǒng)轉(zhuǎn)移過(guò)來(lái)的、復(fù)雜的、不可見(jiàn)的數(shù)據(jù)接口,其接口可信性很低,接口錯(cuò)誤的可感知性也很低,如LCI接口,就完全符合這些條件。這樣的一個(gè)深埋在系統(tǒng)內(nèi)部的復(fù)雜接口,數(shù)據(jù)經(jīng)過(guò)層層加工處理,采用傳統(tǒng)的測(cè)試手段幾乎無(wú)法做到場(chǎng)景的覆蓋,而使用回放驗(yàn)證手段也受限于回放數(shù)據(jù)的范圍,同樣不能完全確保全場(chǎng)景覆蓋。而且由于接口數(shù)據(jù)是經(jīng)過(guò)加工處理封裝后的數(shù)據(jù),導(dǎo)致直接對(duì)接口數(shù)據(jù)進(jìn)行驗(yàn)證與分析會(huì)非常困難。同時(shí),針對(duì)接口字段開(kāi)展的驗(yàn)證,容易落入這樣一個(gè)窘境,即新系統(tǒng)接口對(duì)數(shù)據(jù)的理解加工錯(cuò)了,則驗(yàn)證算法也同樣理解加工錯(cuò)了。在實(shí)踐中這其實(shí)是非常容易出現(xiàn)的問(wèn)題,因?yàn)檫@種針對(duì)字段的“同質(zhì)加工”,由于大家在現(xiàn)階段對(duì)該字段的理解是趨同的,所以很容易導(dǎo)致同一個(gè)錯(cuò)誤在原始算法與復(fù)核算法中同時(shí)出現(xiàn)。
(2)驗(yàn)證的可信性。
“同質(zhì)加工”趨勢(shì)導(dǎo)致驗(yàn)證算法一并出錯(cuò)的概率是很高的,因此簡(jiǎn)單地根據(jù)數(shù)據(jù)加工算法“重寫(xiě)”另一套數(shù)據(jù)驗(yàn)證算法,以此來(lái)對(duì)接口數(shù)據(jù)進(jìn)行驗(yàn)證的“可信”性是非常值得懷疑的。而使用用戶(hù)可見(jiàn)數(shù)據(jù)進(jìn)行計(jì)算,并將其結(jié)果作為驗(yàn)證依據(jù),是可以稱(chēng)為“可信”的,基于如下幾點(diǎn)考慮。
①眼見(jiàn)為實(shí)。用戶(hù)可以直接看見(jiàn)的數(shù)據(jù),是用戶(hù)最為相信的數(shù)據(jù);用戶(hù)看見(jiàn)的結(jié)果,是用戶(hù)最為相信的結(jié)果。②可見(jiàn)數(shù)據(jù)具有最好的糾錯(cuò)性。因?yàn)橐坏┛梢?jiàn)數(shù)據(jù)出現(xiàn)錯(cuò)誤,其可以被用戶(hù)迅速地感知與發(fā)現(xiàn),并迅速地進(jìn)行報(bào)告與調(diào)整修復(fù)。③可見(jiàn)數(shù)據(jù)正確即最終結(jié)果正確。對(duì)用戶(hù)而言,如果可見(jiàn)數(shù)據(jù)正確,意味著由所有可見(jiàn)數(shù)據(jù)計(jì)算而出的最終結(jié)果也應(yīng)該是正確的。④最終結(jié)果正確性高于一切。以最終用戶(hù)可見(jiàn)結(jié)果為標(biāo)準(zhǔn)進(jìn)行復(fù)核驗(yàn)證,可以完全保證最終結(jié)果的正確性;對(duì)于安全性相關(guān)接口,如LCI接口,最終計(jì)算結(jié)果的正確性是大于一切的。
因此,基于以上討論與思考,不能直接針對(duì)接口數(shù)據(jù)本身進(jìn)行復(fù)核與驗(yàn)證,以避免落入“同質(zhì)加工”的困境。需要把目光聚焦在用戶(hù)的可視數(shù)據(jù)上,復(fù)核的內(nèi)容集中在最終計(jì)算結(jié)果上,以最終結(jié)果的匹配與比對(duì)來(lái)反證關(guān)鍵接口數(shù)據(jù)的準(zhǔn)確性。
3.2.2 復(fù)核驗(yàn)證體系的設(shè)計(jì)
設(shè)計(jì)與實(shí)現(xiàn)了基于用戶(hù)視角的、外掛式的復(fù)核驗(yàn)證體系,如圖2所示。
圖2 基于可視數(shù)據(jù)的外掛式復(fù)核方法
該外掛復(fù)核體系可以使用只讀工作號(hào)從用戶(hù)視角全自動(dòng)獲取目標(biāo)驗(yàn)證航班的相關(guān)數(shù)據(jù),并基于這些可見(jiàn)數(shù)據(jù)進(jìn)行全自動(dòng)的計(jì)算。由外掛工具計(jì)算出來(lái)的結(jié)果將與新系統(tǒng)使用接口數(shù)據(jù)計(jì)算出的結(jié)果進(jìn)行全自動(dòng)的復(fù)核比對(duì),生成的結(jié)果報(bào)告將實(shí)時(shí)郵件通知投產(chǎn)支持與維護(hù)人員。
該體系的最大特點(diǎn)是基于可視數(shù)據(jù),所見(jiàn)即所得,且比對(duì)的是最終結(jié)果,確保關(guān)鍵數(shù)據(jù)的最終結(jié)果正確,可信度高。該體系采用外掛式設(shè)計(jì),模擬用戶(hù)視角,運(yùn)行時(shí)僅需使用用戶(hù)級(jí)只讀工作號(hào),對(duì)系統(tǒng)的影響最小化,特別適合作為在線守護(hù)進(jìn)程來(lái)為關(guān)鍵接口提供安全的實(shí)時(shí)比對(duì)復(fù)核服務(wù)。
該體系徹底規(guī)避了新投產(chǎn)系統(tǒng)內(nèi)部接口不可信、不可見(jiàn)的種種難題,以對(duì)現(xiàn)有系統(tǒng)最小的影響,實(shí)現(xiàn)了現(xiàn)階段最可信的計(jì)算結(jié)果復(fù)核比對(duì),是新系統(tǒng)關(guān)鍵接口安全投產(chǎn)的“定心丸”。
對(duì)不可見(jiàn)接口做可信驗(yàn)證的研究成果在中國(guó)航信新離港系統(tǒng)的建設(shè)與試投產(chǎn)過(guò)程中進(jìn)行了應(yīng)用。經(jīng)過(guò)接口分析,識(shí)別出LCI接口為關(guān)鍵接口,急需以最高的要求與標(biāo)準(zhǔn)進(jìn)行測(cè)試與驗(yàn)證復(fù)核;同時(shí),還識(shí)別出其他一系列重要接口需要進(jìn)行高標(biāo)準(zhǔn)的測(cè)試與驗(yàn)證。
為此,針對(duì)新離港系統(tǒng)的特點(diǎn),在繼續(xù)加強(qiáng)開(kāi)展所有常規(guī)測(cè)試活動(dòng)的基礎(chǔ)上,最終確定對(duì)其在投產(chǎn)前增加基于老系統(tǒng)跟蹤帶的離線回放驗(yàn)證與基于可視數(shù)據(jù)的外掛式配載復(fù)核驗(yàn)證,以增強(qiáng)所有功能與接口的可信性,并在投產(chǎn)后繼續(xù)開(kāi)展外掛式配載復(fù)核驗(yàn)證,以在線守護(hù)關(guān)鍵接口的數(shù)據(jù)安全,具體情況詳見(jiàn)圖3。
圖3 在新離港系統(tǒng)應(yīng)用回放驗(yàn)證與外掛復(fù)核驗(yàn)證
在2019—2020年新離港系統(tǒng)試投產(chǎn)的準(zhǔn)備期間,測(cè)試驗(yàn)證團(tuán)隊(duì)成功對(duì)近2 000 實(shí)際生產(chǎn)航班開(kāi)展了的全流程離線回放驗(yàn)證與外掛式配載復(fù)核驗(yàn)證工作,成功檢出并修正了多個(gè)潛藏在LCI關(guān)鍵接口與其他重要接口中的問(wèn)題隱患。
2020年末,新離港系統(tǒng)成功進(jìn)行了為期一個(gè)月的投產(chǎn)試運(yùn)行。使用期間,系統(tǒng)運(yùn)行平穩(wěn)正常,在線的外掛配載復(fù)核服務(wù)同步部署,為所有投產(chǎn)的離港航班提供配載復(fù)核服務(wù),并實(shí)時(shí)為投產(chǎn)支持人員與后臺(tái)運(yùn)維人員提供航班狀態(tài)報(bào)告,確認(rèn)每一個(gè)投產(chǎn)航班的數(shù)據(jù)安全,如圖4所示。
圖4 開(kāi)放離港系統(tǒng)投產(chǎn)航班外掛配載復(fù)核結(jié)果通報(bào)
新離港系統(tǒng)試投產(chǎn)的成功,證明了以離線回放驗(yàn)證與外掛式復(fù)核為主體的可信驗(yàn)證方法,在投產(chǎn)前測(cè)試驗(yàn)證與投產(chǎn)后守護(hù)保障兩方面均達(dá)到了預(yù)定的研究目標(biāo),完全可以成為保障新系統(tǒng)未來(lái)進(jìn)一步安全投產(chǎn)的重要力量。
在對(duì)新投產(chǎn)系統(tǒng)接口研究方面,由于其往往具有不同的類(lèi)型與特性,針對(duì)不同特點(diǎn)的接口因地制宜地開(kāi)展不同的驗(yàn)證與復(fù)核保障是最優(yōu)選擇。因此,在研究接口各維度分類(lèi)的基礎(chǔ)上,根據(jù)接口的不同特性與需求,提出了3個(gè)層次的驗(yàn)證與保障級(jí)別模型。該模型可成為未來(lái)接口驗(yàn)證保障級(jí)別評(píng)定的重要參考依據(jù)。
在可信驗(yàn)證研究方面,基于跟蹤帶的離線回放驗(yàn)證方法,與基于可視數(shù)據(jù)的外掛式驗(yàn)證復(fù)核方法,是實(shí)現(xiàn)可信驗(yàn)證落地的重要研究成果,也是支撐三層驗(yàn)證與保障級(jí)別模型的重要支柱。使用這套接口分類(lèi)與保障分層的結(jié)構(gòu)模型,可以對(duì)各系統(tǒng)的接口進(jìn)行通用的分類(lèi)與劃分,明確其推薦的保障級(jí)別,并參考相應(yīng)推薦的可信驗(yàn)證方法,為其設(shè)計(jì)適合的驗(yàn)證與復(fù)核方案。
在新離港系統(tǒng)試投產(chǎn)實(shí)踐中對(duì)上述可信驗(yàn)證方法的成功應(yīng)用,也為其他系統(tǒng)進(jìn)一步開(kāi)展可信驗(yàn)證工作提供了理論依據(jù)與實(shí)踐樣例。