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

責任編輯:售電衡衡
- 相關(guān)閱讀
- 泛在電力物聯(lián)網(wǎng)
- 電動汽車
- 儲能技術(shù)
- 智能電網(wǎng)
- 電力通信
- 電力軟件
- 高壓技術(shù)
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計 -
中國自主研制的“人造太陽”重力支撐設(shè)備正式啟運
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務,新能源消納,能源互聯(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è)典型實踐案例
2019-10-15泛在電力物聯(lián)網(wǎng)案例
-
新基建之充電樁“火”了 想進這個行業(yè)要“心里有底”
2020-06-16充電樁,充電基礎(chǔ)設(shè)施,電力新基建 -
燃料電池汽車駛?cè)雽こ0傩占疫€要多久?
-
備戰(zhàn)全面電動化 多部委及央企“定調(diào)”充電樁配套節(jié)奏
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計 -
中國自主研制的“人造太陽”重力支撐設(shè)備正式啟運
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲能行業(yè)發(fā)展
-
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務,新能源消納,能源互聯(lián)網(wǎng) -
5G新基建助力智能電網(wǎng)發(fā)展
2020-06-125G,智能電網(wǎng),配電網(wǎng) -
從智能電網(wǎng)到智能城市