跨系統(tǒng)缺陷定位和調(diào)試方法研究
0 引言
跨系統(tǒng)的業(yè)務(wù)場景是指業(yè)務(wù)需要在2個(gè)或者
2個(gè)以上系統(tǒng)/平臺(tái)進(jìn)行操作或者數(shù)據(jù)流轉(zhuǎn)。聯(lián)調(diào)測試是針對跨系統(tǒng)的業(yè)務(wù)場景(即系統(tǒng)間外部接口)進(jìn)行業(yè)務(wù)流和數(shù)據(jù)流的測試,不含系統(tǒng)自身的單元測試、內(nèi)部集成測試和交付測試(含功能、性能和安全測試)。聯(lián)調(diào)測試可分為聯(lián)調(diào)功能測試、聯(lián)調(diào)非功能測試(含性能和安全測試)。測試內(nèi)容主要包括:①依據(jù)系統(tǒng)需求規(guī)格說明書、詳細(xì)設(shè)計(jì)文檔及SOA相關(guān)標(biāo)準(zhǔn),檢查接口是否遵循設(shè)計(jì)要求、安全規(guī)范;②通過自動(dòng)化工具及人工驗(yàn)證的測試方法,驗(yàn)證系統(tǒng)間接口的規(guī)范性、數(shù)據(jù)匹配性、連通性及性能效率、接口系統(tǒng)配置合規(guī)性、應(yīng)用及數(shù)據(jù)的安全性等,并驗(yàn)證其抵御惡意攻擊的能力,以達(dá)到減少系統(tǒng)試運(yùn)行調(diào)試成本的目的[1]。
當(dāng)前,在電力企業(yè)大型管理信息系統(tǒng)工程建設(shè)中,尚缺乏針對跨系統(tǒng)缺陷定位和調(diào)試技術(shù)的專門研究,聯(lián)調(diào)測試基本上依靠的是測試人員的個(gè)人經(jīng)驗(yàn)和能力,導(dǎo)致了缺陷無法定位、缺陷定位不準(zhǔn)確、調(diào)試效率低下等問題,無法滿足大規(guī)模信息系統(tǒng)工程建設(shè)測試的需要。因此,亟需建立一套完整的工作方法和流程,輔以相關(guān)的軟件工具,以指導(dǎo)聯(lián)調(diào)測試工作。
本文基于廣東電網(wǎng)大型管理信息系統(tǒng)建設(shè)工程中聯(lián)調(diào)測試的工作實(shí)踐,提出了一整套的跨系統(tǒng)缺陷定位和調(diào)試的方法,歸納和定義了常見錯(cuò)誤類型,規(guī)范了測試工作流程,并對具體調(diào)試工作所需工具給出了建議。
1 跨系統(tǒng)缺陷定位和調(diào)試的工作流程
跨系統(tǒng)缺陷定位的工作流程包括5個(gè)階段,分別是入口、調(diào)試準(zhǔn)備、調(diào)試中、缺陷驗(yàn)證以及調(diào)試總結(jié),各個(gè)階段又包含各自的子過程。
1)入口:缺陷單描述缺陷的完整信息,能幫助調(diào)試人員復(fù)現(xiàn)缺陷。
2)調(diào)試準(zhǔn)備:包括技術(shù)文檔收集、測試環(huán)境準(zhǔn)備、調(diào)試工具安裝部署、報(bào)文或場景數(shù)據(jù)準(zhǔn)備等子過程,交付物可以是測試用例(包含測試數(shù)據(jù))。
3)調(diào)試中:包含復(fù)現(xiàn)問題、收集過程記錄(日志、報(bào)文、數(shù)據(jù)庫、界面提示等)、假設(shè)原因、驗(yàn)證假設(shè)、波及分析等子過程,交付物是問題指向主體說明文檔。
4)缺陷驗(yàn)證:包含缺陷驗(yàn)證、回歸測試等子構(gòu)成,交付物是缺陷分析和修復(fù)報(bào)告。
5)調(diào)試總結(jié):缺陷分析和修復(fù)報(bào)告。
2 跨系統(tǒng)缺陷類型的定義
根據(jù)缺陷發(fā)生時(shí)的特征,將跨系統(tǒng)的缺陷劃分為7個(gè)大類、20個(gè)小類。
2.1 環(huán)境配置問題
環(huán)境配置問題主要涉及到網(wǎng)絡(luò)、中間件、數(shù)據(jù)庫、服務(wù)器、客戶端、操作系統(tǒng),這6類設(shè)備的問題可能導(dǎo)致接口無法聯(lián)通,或者接口性能無法滿足要求。
2.2 應(yīng)用配置問題
應(yīng)用配置問題主要有權(quán)限賬號(hào)配置、流程配置以及接口配置這3類問題。
2.3 接口連通性問題
接口連通性問題主要有兩方連通性、三方連通性、多方連通性問題。
2.4 接口規(guī)范性問題
接口規(guī)范性測試主要對請求/響應(yīng)報(bào)文的格式、內(nèi)容是否符合SOA應(yīng)用技術(shù)規(guī)范和設(shè)計(jì)要求進(jìn)行驗(yàn)證,不符合接口規(guī)范性的問題,通常歸類為接口規(guī)范性問題。具體有以下幾類:服務(wù)命名問題、服務(wù)報(bào)文設(shè)計(jì)問題、服務(wù)實(shí)現(xiàn)問題、服務(wù)異常處理問題、大數(shù)據(jù)量處理問題以及其他相關(guān)約束問題。
2.5 接口一致性問題
接口一致性問題定位在應(yīng)用系統(tǒng)服務(wù)的開發(fā)和實(shí)現(xiàn)是否嚴(yán)格遵守系統(tǒng)設(shè)計(jì)的規(guī)范和要求進(jìn)行,包括應(yīng)用系統(tǒng)的服務(wù)實(shí)現(xiàn)在命名、接口、功能、性能以及異常處理等方面與具體規(guī)格的設(shè)計(jì)描述保持
一致。
2.6 數(shù)據(jù)問題
各系統(tǒng)間數(shù)據(jù)交換時(shí)需要將基礎(chǔ)數(shù)據(jù)做好映射,即各系統(tǒng)間的基礎(chǔ)數(shù)據(jù)信息存在并保持一致。在數(shù)據(jù)交換時(shí)存在數(shù)據(jù)映射問題引起缺陷,此類問題定位數(shù)據(jù)映射問題;如在接口連通性測試時(shí),SOA的響應(yīng)報(bào)文返回的異常信息顯示“接口數(shù)據(jù)映射找不到”,此時(shí)的問題主體可能為接口數(shù)據(jù)映射。
2.7 業(yè)務(wù)邏輯問題
在實(shí)施接口功能性測試時(shí),需要制定業(yè)務(wù)測試場景并且確保業(yè)務(wù)場景符合聯(lián)調(diào)實(shí)際測試需求,如果測試操作不符合操作手冊和應(yīng)用集成設(shè)計(jì)說明書,將會(huì)導(dǎo)致測試失敗,接口不能成功調(diào)用或者不能查到接口響應(yīng)消息,此缺陷則定義為業(yè)務(wù)邏輯問題。
3 跨系統(tǒng)缺陷調(diào)試的方法和工具
3.1 跨系統(tǒng)缺陷調(diào)試的過程
跨系統(tǒng)缺陷調(diào)試的過程如
1)問題重現(xiàn)。當(dāng)收到一個(gè)問題的報(bào)告時(shí),應(yīng)首先在測試環(huán)境進(jìn)行程序的運(yùn)行,觀察在當(dāng)前環(huán)境下是否可以重現(xiàn)問題,以確認(rèn)這個(gè)問題是一個(gè)偶發(fā)性現(xiàn)象還是一個(gè)真正的缺陷。經(jīng)此步驟可以排除掉網(wǎng)絡(luò)端口不通等偶發(fā)性問題,使調(diào)試人員可以集中精力關(guān)注真正的缺陷。
2)信息收集。聯(lián)調(diào)環(huán)境包括多個(gè)應(yīng)用平臺(tái),牽涉到多個(gè)應(yīng)用的時(shí)候,需要調(diào)試人員對系統(tǒng)架構(gòu)了然于胸,清楚每一個(gè)應(yīng)用在整個(gè)系統(tǒng)交換中的輸入、輸出、處理過程,以及每一個(gè)不同的模塊具體負(fù)責(zé)的功能。根據(jù)復(fù)現(xiàn)步驟,通過調(diào)試工具,收集并分析缺陷信息,包括問題表象、操作步驟、實(shí)際輸出的結(jié)果以及預(yù)期輸出的結(jié)果。除此之外,調(diào)試人員也需要收集其他相關(guān)專業(yè)的信息,如日志/報(bào)文信息、數(shù)據(jù)庫數(shù)據(jù)信息、界面顯示信息等。
3)提出假設(shè)。調(diào)試和測試的區(qū)別是,調(diào)試不僅要測試以發(fā)現(xiàn)缺陷,而且還要找出問題原因和問題解決方案。經(jīng)驗(yàn)豐富的調(diào)試人員可以根據(jù)已有的數(shù)據(jù)資料,大膽提出假設(shè),如果假設(shè)有效則可以大大縮短調(diào)試所需時(shí)間。如果環(huán)境涉及多個(gè)平臺(tái)或有多個(gè)應(yīng)用主體,可能需要多次嘗試才能形成有效的
假設(shè)。
4)驗(yàn)證假設(shè)。在測試工具的輔助下,對相關(guān)應(yīng)用運(yùn)行并察看所涉及的日志、報(bào)文、數(shù)據(jù)庫數(shù)據(jù)、界面數(shù)據(jù)的變化,以驗(yàn)證對于問題的假設(shè)是否正確。很多情況下,這個(gè)假設(shè)和數(shù)據(jù)流相關(guān),按照數(shù)據(jù)流方向,對每個(gè)主體做正確性判定,找到問題指向主體。
5)對缺陷解決方案做相關(guān)性分析。一般而言,開發(fā)人員在解決缺陷過程中,關(guān)注的是缺陷的一個(gè)點(diǎn),而作為一個(gè)軟件產(chǎn)品,需要注意的是整個(gè)軟件的全面表現(xiàn),因此需要對缺陷解決方案做相關(guān)性分析,保障回歸測試的充分性。
3.2 跨系統(tǒng)缺陷調(diào)試的方法
3.2.1 分解法
當(dāng)在應(yīng)用場景中測試問題時(shí),需采用一系列的步驟來重現(xiàn)這個(gè)問題,分解法就是把一個(gè)要重現(xiàn)的問題分解成幾個(gè)最小的解決步驟,以更好定位缺陷。應(yīng)用分解法可以實(shí)現(xiàn)以下目標(biāo):①每次只需要重新測試其中一個(gè)步驟,從而提高了測試的效率;②有效地隔離問題;③在測試過程的每一個(gè)步驟中只需要檢查系統(tǒng)中有限的一些癥狀,就能發(fā)現(xiàn)引起問題的原因,例如三方連通性缺陷,將問題分解為提供方-SOA間連通性和SOA-消費(fèi)方間連通性。
3.2.2 追蹤法
在跨系統(tǒng)調(diào)試的過程中,追蹤事件的最精確的辦法是記錄并查看應(yīng)用運(yùn)行的報(bào)文/日志,通過查看報(bào)文/日志可以知道事件發(fā)生的時(shí)間、地點(diǎn)、操作步驟、環(huán)境因素和系統(tǒng)其他假設(shè)條件,同時(shí)記錄輸入、輸出以及處理過程。如果系統(tǒng)記錄的報(bào)文/日志己經(jīng)有了正確的輸出,就不需要進(jìn)行重新開發(fā)或者調(diào)試,同時(shí)這些正確的執(zhí)行記錄也為快速執(zhí)行回歸測試和問題重定義認(rèn)證測試提供了有效參考。
數(shù)據(jù)追蹤法有幾種方式,最常見的是在應(yīng)用內(nèi)部嵌入相應(yīng)的日志或者跟蹤信息,通過相應(yīng)的記錄對其進(jìn)行分析;還有一種是應(yīng)用一些外部工具,截取傳輸報(bào)文,然后對相關(guān)的內(nèi)容進(jìn)行分析,例如SoapUI工具模擬接口報(bào)文數(shù)據(jù),向SOA發(fā)送數(shù)據(jù),SOA日志系統(tǒng)中記錄該報(bào)文信息及響應(yīng)信息。
3.2.3 比較法
比較法是通過對比系統(tǒng)正常工作時(shí)的狀態(tài)和系統(tǒng)異常工作時(shí)的狀態(tài),從而發(fā)現(xiàn)其中的差異,以便快速定位缺陷。常見的差異情況有:①假定測試數(shù)據(jù)對問題影響;②假設(shè)最近的修改使系統(tǒng)出錯(cuò),導(dǎo)致bug突然出現(xiàn)。如果是第一種情況,就需要參考正確的測試數(shù)據(jù)案例,通過比較法,找到正常數(shù)據(jù);如果是第二種情況,則需要對版本進(jìn)行比較,并進(jìn)行針對性分析。
3.2.4 系統(tǒng)法
系統(tǒng)法就是從整個(gè)系統(tǒng)的功能方面來驗(yàn)證缺陷,而不是只考慮相關(guān)的子系統(tǒng)功能或者單系統(tǒng)功能,只有這樣才能測試出接口的修改對整個(gè)系統(tǒng)的影響。系統(tǒng)法要求首先掌握系統(tǒng)的整體業(yè)務(wù)邏輯,以業(yè)務(wù)邏輯為基礎(chǔ)可以定位到引起問題的原因;其次了解系統(tǒng)的所有組成部分,理解不同的子系統(tǒng)或者單系統(tǒng)的接口。
在定位缺陷上使用系統(tǒng)法,必須追蹤每個(gè)模塊的輸入和輸出、系統(tǒng)運(yùn)行的過程和接口調(diào)用模塊的結(jié)果。依據(jù)上述條件對系統(tǒng)進(jìn)行過程測試,發(fā)現(xiàn)出現(xiàn)問題的部位,以便盡快以系統(tǒng)法解決問題。對于一個(gè)復(fù)雜的環(huán)境和系統(tǒng),通常很難對系統(tǒng)的總體架構(gòu)、各個(gè)子系統(tǒng)的各個(gè)業(yè)務(wù)模塊和子系統(tǒng)之間的接口有著充分的理解,所以在進(jìn)行系統(tǒng)測試時(shí)需要把開發(fā)系統(tǒng)的相關(guān)人員和測試人員集合在一起共同定位缺陷,這也是應(yīng)用系統(tǒng)法的一個(gè)必要條件[3]。
3.3 跨系統(tǒng)缺陷調(diào)試的工具
1)SoapUI。SoapUI是一個(gè)開源測試工具,通過Soap/Http來檢查、調(diào)用、實(shí)現(xiàn)Web Service接口的功能/負(fù)載/規(guī)范性調(diào)試測試[4]。
2)Eclipse。使用Eclipse模擬發(fā)送數(shù)據(jù),通過查看busdown日志,來進(jìn)行JMX接口的功能/規(guī)范性調(diào)試測試[5]。
4 聯(lián)調(diào)測試案例分析
責(zé)任編輯:售電衡衡
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計(jì)落地:鼓勵(lì)“光儲(chǔ)充放”,有序推進(jìn)氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計(jì) -
中國自主研制的“人造太陽”重力支撐設(shè)備正式啟運(yùn)
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務(wù),新能源消納,能源互聯(lián)網(wǎng)
-
新基建助推 數(shù)據(jù)中心建設(shè)將迎爆發(fā)期
2020-06-16數(shù)據(jù)中心,能源互聯(lián)網(wǎng),電力新基建 -
泛在電力物聯(lián)網(wǎng)建設(shè)下看電網(wǎng)企業(yè)數(shù)據(jù)變現(xiàn)之路
2019-11-12泛在電力物聯(lián)網(wǎng) -
泛在電力物聯(lián)網(wǎng)建設(shè)典型實(shí)踐案例
2019-10-15泛在電力物聯(lián)網(wǎng)案例
-
新基建之充電樁“火”了 想進(jìn)這個(gè)行業(yè)要“心里有底”
2020-06-16充電樁,充電基礎(chǔ)設(shè)施,電力新基建 -
燃料電池汽車駛?cè)雽こ0傩占疫€要多久?
-
備戰(zhàn)全面電動(dòng)化 多部委及央企“定調(diào)”充電樁配套節(jié)奏
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計(jì)落地:鼓勵(lì)“光儲(chǔ)充放”,有序推進(jìn)氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計(jì) -
中國自主研制的“人造太陽”重力支撐設(shè)備正式啟運(yùn)
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲(chǔ)能行業(yè)發(fā)展
-
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務(wù),新能源消納,能源互聯(lián)網(wǎng) -
5G新基建助力智能電網(wǎng)發(fā)展
2020-06-125G,智能電網(wǎng),配電網(wǎng) -
從智能電網(wǎng)到智能城市
-
山西省首座電力與通信共享電力鐵塔試點(diǎn)成功
-
中國電建公司公共資源交易服務(wù)平臺(tái)摘得電力創(chuàng)新大獎(jiǎng)
-
電力系統(tǒng)對UPS的技術(shù)要求