李俠,華為技術(shù)有限公司、數(shù)據(jù)通信系統(tǒng)測試高級專家(首席)。畢業(yè)后就職華為北京研究所,現(xiàn)為華為數(shù)據(jù)通信系統(tǒng)測試首席專家,目前主要負(fù)責(zé)數(shù)據(jù)通信產(chǎn)品系統(tǒng)測試技術(shù)研究和能力建設(shè),構(gòu)建數(shù)通數(shù)字化測試系統(tǒng),保障路由器、交換機、安全網(wǎng)關(guān)等數(shù)據(jù)通信產(chǎn)品的測試設(shè)計、執(zhí)行和評估的質(zhì)量和效率。 擅長領(lǐng)域:測試對象建模、測試分析設(shè)計方法、韌性測試。 ? ? ?
大到國家的數(shù)字經(jīng)濟,小到企業(yè)的數(shù)字化變革,數(shù)字化成為最近幾年各行各業(yè)的熱門話題,那么到底什么是數(shù)字化? ? ? 提到數(shù)字化,很多人容易和信息化混淆,兩者既有區(qū)別也有聯(lián)系,也有不少專家對此進行了論述,本文嘗試用另一個視角去看數(shù)字化,以及數(shù)字化為測試帶來的變化。 ?
本書是麥克盧漢在1964年出版的《理解媒介》,是他關(guān)于媒介定律的開山之作,其中一段話對理解數(shù)字化有很好的啟示:電子媒介是中樞神經(jīng)系統(tǒng)的延伸,其余一些媒介,尤其是機械媒介,是人體個別器官的延伸。舉個例子,我們的汽車是腿的延伸,電話是聽覺的延伸,沿著這個思路,數(shù)字化本身也是一種電子媒介,它本質(zhì)上是對人類神經(jīng)系統(tǒng)的一種延伸。 ?
相對于信息化的管理思維,數(shù)字化是一種業(yè)務(wù)思維,如果把測試工作也看做一種業(yè)務(wù),我們希望數(shù)字化為測試業(yè)務(wù)帶來一種“延伸”,我們稱這種延伸為“數(shù)字化測試”,按照實現(xiàn)的程度,數(shù)字化測試應(yīng)該具備如下三個特征: ? ? ? ?
特征一:連接 ? 連接拓展測試感知。數(shù)字化能夠記錄從測試分析到設(shè)計、執(zhí)行的測試業(yè)務(wù)全生命周期數(shù)據(jù),并在這個數(shù)據(jù)基礎(chǔ)上,建立更多的連接,構(gòu)建更豐富的數(shù)據(jù)模型,實現(xiàn)全生命周期的數(shù)據(jù)閉環(huán)。這大大超過了我們通過閱讀文檔、面對面交流獲取的信息和連接。 ? ? ? ? ??
特征二:智能 智能提升測試認(rèn)知?;跀?shù)字化構(gòu)建的測試連接,輔助以智能化技術(shù),測試人員會加快、加深對被測系統(tǒng)的理解。 ? ? ? ??
特征三:數(shù)字世界 最后,隨著數(shù)字化測試的不斷發(fā)展,實現(xiàn)物理世界和數(shù)字世界的業(yè)務(wù)對象的一致,我們會在數(shù)字空間中構(gòu)建一個與真實世界平行的測試孿生世界,從而,這個孿生世界將改變測試的工作模式。 ?
數(shù)字化要為業(yè)務(wù)帶來增益,如果測試是一種業(yè)務(wù),那么測試的業(yè)務(wù)目標(biāo)是什么? ? ? 不論哪種類型的測試,測試的目標(biāo)都圍繞著覆蓋全、周期短和成本低這三個核心目標(biāo)。那么,數(shù)字化對這個目標(biāo)有什么推動作用?我們通過三個維度進行對比分析: ? ? ? ? ?
用例有效 ? 傳統(tǒng)測試工作主要依賴于個人經(jīng)驗和知識,數(shù)字化以后,將會引入知識工程和程序分析技術(shù),能夠幫助測試更快更好地獲取輸入信息。 ? ? ? ? ?
過程高效 ? 傳統(tǒng)測試過程依賴人工操作和自動化運行,隨著數(shù)字化的發(fā)展,將會變成知識驅(qū)動和AI使能,使測試更趨近于超自動化。 ? ? ? ? ?
閉環(huán)增效 ? 在測試的持續(xù)改進閉環(huán)上,傳統(tǒng)做法是人工開展缺陷分析,做一些缺陷的總結(jié)。數(shù)字化以后,可以通過數(shù)字世界的測試數(shù)據(jù)閉環(huán)來實時完成測試業(yè)務(wù)閉環(huán)改進。 ?
數(shù)字化測試也是產(chǎn)業(yè)發(fā)展對測試的訴求。以華為數(shù)據(jù)通信產(chǎn)品測試為例,演進歷程分為三代:1.0->2.0->3.0。在1.0->3.0的過程中,被測系統(tǒng)從一個簡單的計算機網(wǎng)絡(luò)、1G帶寬,單核單進程的系統(tǒng),演進到全速率、全連接和全系統(tǒng)。測試系統(tǒng)隨著被測系統(tǒng)的演進也是在不斷變化的。最初在1.0階段,測試工作主要是用例手工執(zhí)行,以覆蓋功能為目標(biāo)。2.0階段,引入了DFX測試、場景測試、自動化工廠和自研工具。3.0階段,傳統(tǒng)的測試很難再滿足被測系統(tǒng)的演進,需要測試具備海量場景覆蓋的能力、更高可靠性和安全韌性測試的能力、組件測試的能力,這對測試提出了更高的要求。 ?
被測系統(tǒng)的變化直接驅(qū)動了測試的變化,測試想要看清被測對象,講清測試覆蓋,就必須思考要做怎樣的改變。結(jié)合數(shù)字化,我們提出了構(gòu)建被測系統(tǒng)的數(shù)字孿生,構(gòu)建測試能力的數(shù)字大腦。被測系統(tǒng)的數(shù)字孿生,指將我們對被測系統(tǒng)的理解轉(zhuǎn)換為數(shù)字世界的模型,測試能力的數(shù)字大腦,指將測試人員多年積累的測試能力進行數(shù)字化沉淀。
? 基于這樣一個目標(biāo),把整個測試設(shè)計分解為三個要素:
要素一:測試對象數(shù)字化建模
要素二:測試能力數(shù)字化沉淀和演進
要素三:測試設(shè)計數(shù)字化,高效構(gòu)建測試系統(tǒng)。 ?
要想數(shù)字化測試對象,先要“解構(gòu)”被測系統(tǒng)。這里引用錢學(xué)森錢老對系統(tǒng)的定義“系統(tǒng)是由相互作用、相互依賴的若干組成部分結(jié)合而成,具有特定功能的有機整體,而且這個整體又是從屬于它的更大系統(tǒng)的組成部分”。這個定義里有兩個關(guān)鍵要素,一個是“組成部分”,即系統(tǒng)元素,一個是“相互作用相互依賴”,即系統(tǒng)關(guān)系。被測系統(tǒng),既然是一個系統(tǒng),就一定具備這兩個要素。 ? 解構(gòu)被測系統(tǒng),就是以測試(用戶)的視角建模系統(tǒng)元素和系統(tǒng)關(guān)系。上圖以路由器為例,單機系統(tǒng)由組件(含軟件和硬件)組成,多個單機系統(tǒng)又可以組成解決方案。如果以單機系統(tǒng)為被測系統(tǒng),用戶可見的特性和硬件可以提取為系統(tǒng)元素,解決方案場景(簡稱場景)和系統(tǒng)實現(xiàn)機制(簡稱機制)因為決定了特性和硬件相互作用相互依賴的方式,可以提取為系統(tǒng)關(guān)系,其中場景確定了特性的應(yīng)用組合關(guān)系,機制決定了特性的實現(xiàn)依賴關(guān)系??偨Y(jié)來說,解構(gòu)被測系統(tǒng),就是以用戶的視角找到系統(tǒng)元素,然后再根據(jù)應(yīng)用和實現(xiàn)上的約束找到系統(tǒng)關(guān)系。 ?
找到被測系統(tǒng)的系統(tǒng)元素和系統(tǒng)關(guān)系后,就可以對被測系統(tǒng)進行測試建模。這里有兩個概念容易混淆,一個是被測系統(tǒng),一個是測試對象,本文中被測系統(tǒng)是客觀存在的系統(tǒng),也就是開發(fā)人員開發(fā)出來的,能夠賣給用戶的產(chǎn)品,而測試對象是測試如何看待一個被測系統(tǒng),是測試語言描述的被測系統(tǒng),是通過解構(gòu)被測系統(tǒng)得到的系統(tǒng)元素和系統(tǒng)關(guān)系,重構(gòu)成測試對象。
上圖以路由器為例,基于“特性”這個系統(tǒng)元素建模測試對象,可以采用共性特征聚合的建模方法,具備共性特征的一組特性抽象為一類測試對象,如IP路由、IP業(yè)務(wù)等。對于同一類測試對象,可以按照對象業(yè)務(wù)演進過程繼續(xù)逐級細(xì)化,如對于一個路由協(xié)議,首先要能夠建立鄰居,建好鄰居以后能夠發(fā)布路由,發(fā)布路由以后因為路由過大,需要區(qū)域和進程進行隔離控制,因為需要過濾不同的路由,又產(chǎn)生了策略和過濾器等,這些可以作為路由這個測試對象的細(xì)化分析維度。 ? 針對每一個細(xì)化后的測試對象,都有屬于這個對象的“屬性”,相比開發(fā)的設(shè)計規(guī)格,“屬性”更接近產(chǎn)品規(guī)格,是從用戶使用的角度結(jié)構(gòu)化一個測試對象。如IP單播鄰居,從外部來看,有鄰居狀態(tài)、鄰居容量等性能指標(biāo),從內(nèi)部來看,有多種影響因素,如系統(tǒng)資源使用情況等。 ?
測試能力數(shù)字化是數(shù)字化測試的第二個要素,相對測試對象數(shù)字化難度更大。因為“能力”這個詞語不僅與知識相關(guān),還與經(jīng)驗相關(guān)。要想數(shù)字化測試能力,首先要對測試能力進行結(jié)構(gòu)化定義。上圖以數(shù)據(jù)通信產(chǎn)品的測試能力為例,匹配系統(tǒng)工程能力架構(gòu)做了分層聚合,自頂向下分別是流程層、邏輯層和技術(shù)層: ? ? ? ? ?
?流程層 流程層描述的是測試業(yè)務(wù)流對應(yīng)的作業(yè)活動能力,如測試分析能力、測試策略制定能力、測試設(shè)計能力等,主要是根據(jù)測試活動構(gòu)建。 ? ? ? ? ? ?
?邏輯層 ? 邏輯層是支撐測試作業(yè)活動的作業(yè)基礎(chǔ)能力。以上圖為例,要做測試分析,需要完成組網(wǎng)分析、部署分析和行為分析,要做測試設(shè)計,需要完成因子設(shè)計、判定設(shè)計和用例生成等。 如果一個能力包含很多內(nèi)容,很難做到很好的聚合,可以再進行分層。以上圖為例,邏輯層又分為組合構(gòu)件和基礎(chǔ)構(gòu)件,組合構(gòu)件是對流程層能力的分解,如測試分析能力分解為靜態(tài)組網(wǎng)分析能力、業(yè)務(wù)部署分析能力和動態(tài)行為分析能力,基礎(chǔ)構(gòu)件是測試作業(yè)的原子能力,如報文的行為,操作的行為,流量的行為等。組合構(gòu)件由基礎(chǔ)構(gòu)件支撐實現(xiàn),如動態(tài)行為分析由報文行為、流量行為等組成。 ? ? ? ? ??
技術(shù)層 ? 技術(shù)層是專業(yè)的測試能力,這些專業(yè)測試能力包括質(zhì)量屬性測試技術(shù),也包括通用技術(shù)。質(zhì)量屬性測試技術(shù)包括不同質(zhì)量屬性的測試模式分析能力、測試設(shè)計能力和判定設(shè)計能力以及評估能力。通用技術(shù)如AI、程序分析、知識圖譜等,這些目前在各個領(lǐng)域應(yīng)用比較好的技術(shù)都可以拿來為測試服務(wù)。 ?
下面詳細(xì)介紹測試能力數(shù)字化中的兩個能力,作業(yè)基礎(chǔ)能力和專業(yè)能力。上圖展示了對動態(tài)行為分析這個作業(yè)基礎(chǔ)能力的分析過程。首先對動態(tài)行為這個概念做一個解讀,所謂的動態(tài)行為是相對于靜態(tài)組網(wǎng)來說的,以路由器為例,設(shè)備上網(wǎng)運行后,組網(wǎng)基本上是確定的,靜態(tài)就是體現(xiàn)這種相對很少變化的特點。而動態(tài)行為指設(shè)備上網(wǎng)運行后,由于外部和內(nèi)部影響因素的不斷變化,會對被測系統(tǒng)產(chǎn)生不同的激勵,動態(tài)就是體現(xiàn)這種實時變化的特點。 ? 對于動態(tài)行為,分為外部和內(nèi)部兩種影響因素,從外部來看,有配置操作、網(wǎng)絡(luò)事件等變化,還可能有攻擊等安全事件。從內(nèi)部來看,來自系統(tǒng)的架構(gòu)以及設(shè)計的影響,如定時器變化?;谶@個分析,對動態(tài)行為的數(shù)據(jù)模型進行分類,分為配置類、操作類、資源類、網(wǎng)絡(luò)事件類、報文類和流量類。對其中的流量類再進行展開分析,如果要描述一個流量的數(shù)據(jù)模型,先要定義一條流量。一條流量的變化來自于流量內(nèi)容變化和流量發(fā)送特征變化,其中流量內(nèi)容變化就是流量涉及報文的字段變化,流量發(fā)送特征變化包括發(fā)送/接收的端口變化、發(fā)送速率變化、發(fā)送時長變化等,這些就組合成描述一條流量的維度。確定了流量數(shù)據(jù)模型的維度,就可以定義每個維度的默認(rèn)值和取值范圍,只要對這些數(shù)據(jù)模型的不同字段進行賦值,就可以變化一條流量。 ?
下面介紹專業(yè)能力,專業(yè)能力大部分來自質(zhì)量屬性的測試能力,以上圖為例,質(zhì)量屬性與設(shè)計同源,對運行類質(zhì)量屬性進行分解,分解出來的每種測試能力都會數(shù)字化一個測試模式庫。測試模式庫是測試模式的集合,測試模式是對產(chǎn)品實際應(yīng)用中普遍存在(反復(fù)出現(xiàn))的各種缺陷,所提取的可復(fù)用的測試方法和手段,是測試知識積累固化的核心資產(chǎn)。測試模式庫有四個來源,正向來源包括業(yè)界標(biāo)準(zhǔn),現(xiàn)網(wǎng)應(yīng)用和設(shè)計規(guī)范,而逆向來源主要是缺陷分析或者問題改進。 ? 數(shù)字化測試模式庫與傳統(tǒng)測試模式庫的區(qū)別在于,測試模式中的信息如何轉(zhuǎn)換為數(shù)字化表示。測試模式主要包含兩類信息,測試步驟和預(yù)期結(jié)果,測試步驟可以分解為不同的動態(tài)行為,預(yù)期結(jié)果可以體現(xiàn)為結(jié)果判定。動態(tài)行為之前我們已經(jīng)講過,不同質(zhì)量屬性的相同動態(tài)行為復(fù)用相同的行為模型,通過不同的數(shù)據(jù)進行區(qū)分,結(jié)果判定在本文后續(xù)的討論中講解。每一條測試模式,用這樣的數(shù)字化方式描述,形成一個數(shù)字化測試模式庫。 ?
在測試對象數(shù)字化和測試能力數(shù)字化之后,就可以開展測試設(shè)計了。這里所說的測試設(shè)計數(shù)字化,更多的是說怎么用測試對象數(shù)字化和測試能力數(shù)字化,快速實現(xiàn)測試設(shè)計。
以上圖為例,左上角展示了特性、架構(gòu)和硬件三個測試對象大類,以及每個大類細(xì)化的測試對象小類,特性對象大類細(xì)化到了單播鄰居、單播路由,架構(gòu)對象大類細(xì)化到了消息,硬件對象大類細(xì)化到了主控板。右上角展示了可靠性測試能力,其中網(wǎng)絡(luò)級可靠性細(xì)化到震蕩、超限,網(wǎng)元級可靠性細(xì)化到故障。 ?
在討論測試對象和測試能力如何相互作用之前,先回顧一下什么是測試?測試就是對被測對象進行一系列操作,評估預(yù)期結(jié)果是否達到用戶要求的過程。如果把一系列操作提取為測試模式,測試就是在測試對象上應(yīng)用某些測試模式,測試設(shè)計就是找到測試對象和測試模式的應(yīng)用關(guān)系。
傳統(tǒng)的測試設(shè)計依賴測試人員的知識和經(jīng)驗,通過把測試對象和測試模式之間的關(guān)系抽象為規(guī)則,可以將這種依賴降低到最低。如“單播鄰居”是一個與狀態(tài)相關(guān)的對象,“震蕩”是一個對狀態(tài)進行變化的模式,那么“單播鄰居 +?震蕩”就形成了交互關(guān)系,同時“單播鄰居”也是一個與容量相關(guān)的對象,“超限”是一個對容量變化的模式,那么“單播鄰居 +?超限”就形成了另一個交互關(guān)系。這種交互結(jié)果稱為“測試因子”,可以類比看做測試對象類的預(yù)制件,比如單播鄰居這個測試對象下有一個或多個方法(測試因子)。
當(dāng)單播鄰居這個對象下的具體特性(如ISIS)實例化的時候,可以直接繼承單播鄰居的測試因子,并對測試因子中的具體操作進行實例化。 ? 自動化架構(gòu)也按照上述過程進行組織,具體的架構(gòu)可能不同,建議分別構(gòu)建測試對象、測試模式類,測試因子是測試對象和測試模式交互后的方法,可以實現(xiàn)測試設(shè)計的快速拼裝。 ?
上圖展示了一個完整的測試過程,圖中包含設(shè)計空間和測試空間,設(shè)計空間里包括設(shè)計的過程交付和資產(chǎn),測試空間包含從測試分析到測試執(zhí)行的活動,右上角是數(shù)字化的模式庫,包括測試對象庫、測試模式庫和測試因子庫,這些資產(chǎn)庫支撐測試設(shè)計。下面完整描述一個數(shù)字化測試設(shè)計活動如何開展: ?
首先,由設(shè)計空間場景庫導(dǎo)入需求,包括組網(wǎng)硬件以及對應(yīng)的業(yè)務(wù)部署,同時從設(shè)計文檔和測試模式庫中提取行為分析,這部分導(dǎo)入和提取的工作都是由作業(yè)基礎(chǔ)能力來完成,即組網(wǎng)分析能力、業(yè)務(wù)部署分析能力和動態(tài)行為分析能力。 ?
之后,進入測試設(shè)計階段,這里采用了邏輯、數(shù)據(jù)和判定分離的思想,將測試設(shè)計分為三個引擎,測試設(shè)計引擎、測試數(shù)據(jù)引擎和測試判定引擎。測試設(shè)計引擎是測試設(shè)計技術(shù)的集成,提供處理周期技術(shù)(PCT)、狀態(tài)轉(zhuǎn)換技術(shù)(STT)、數(shù)據(jù)組合技術(shù)(DcoT)等算法。測試數(shù)據(jù)引擎是根據(jù)業(yè)務(wù)數(shù)據(jù)模型,生成實例化測試數(shù)據(jù),同時實現(xiàn)數(shù)據(jù)FUZZ,也就是根據(jù)數(shù)據(jù)的取值范圍,通過數(shù)據(jù)引擎進行FUZZ操作。測試判定引擎是對已經(jīng)明確的協(xié)議標(biāo)準(zhǔn)、設(shè)計規(guī)范,提取判定規(guī)則。傳統(tǒng)的測試用例每個用例都要自己編寫預(yù)期結(jié)果,依賴個人能力,即使提取一些公共檢查,也僅限于資源等通用檢查,而判定引擎除了通用檢查,更多的是業(yè)務(wù)層面的判定生成。這三個引擎可以在測試設(shè)計中被直接調(diào)用,相比之前每一個用例都是煙囪式構(gòu)建,數(shù)字化后的測試設(shè)計是自動且復(fù)用的,既提升了測試設(shè)計效率,也減少了測試設(shè)計的質(zhì)量差異。同時,這三個引擎的能力是開放的,可以根據(jù)測試能力的不斷提升去完善。 ?
基于前面的數(shù)字化測試設(shè)計,我們實現(xiàn)了一些應(yīng)用。上圖展示的數(shù)字化測試應(yīng)用是測試連接設(shè)計,這里的連接包含兩個信息,一個信息是測試同源設(shè)計,一個信息是自動分析。測試同源設(shè)計指數(shù)字化后,同源了場景樹、功能和組件,按照測試對象數(shù)字化模型自動導(dǎo)入設(shè)計信息。自動分析指針對導(dǎo)入信息,可以通過作業(yè)基礎(chǔ)能力里的靜態(tài)組網(wǎng)分析能力自動生成組網(wǎng),通過作業(yè)基礎(chǔ)能力里的靜態(tài)組網(wǎng)分析能力自動提取動態(tài)行為模型,這里需要構(gòu)建數(shù)字化模型的時候,定義一些文檔描述范式,這樣就可以基于范式的規(guī)則來提取。 ? 測試連接設(shè)計有什么好處呢?最直接的好處就是做到了全生命周期數(shù)據(jù)的閉環(huán),不會因為某個測試人員或者開發(fā)人員的離開,而導(dǎo)致這部分信息的斷鏈。 ?
上圖展示的數(shù)字化測試應(yīng)用是測試連接標(biāo)準(zhǔn)。對于數(shù)據(jù)通信領(lǐng)域,協(xié)議一致性是一個重要的測試活動,用來驗證產(chǎn)品是否滿足協(xié)議標(biāo)準(zhǔn)的要求。數(shù)字化以后,我們可以把協(xié)議的標(biāo)準(zhǔn)順從表直接轉(zhuǎn)換成一個報文的因子庫,具體做法就是根據(jù)標(biāo)準(zhǔn)分析提取出關(guān)鍵字段,確定字段取值范圍。然后通過協(xié)議標(biāo)準(zhǔn)分析,提取協(xié)議測試模型,這個測試模型通常是一個處理周期模型,最后將報文注入測試模型,就可以完成測試設(shè)計。這里面還有一個隱含技術(shù),就是報文的自動化封裝。報文的編解碼都是通過自動化編寫一個框架和邏輯來實現(xiàn)的,當(dāng)協(xié)議標(biāo)準(zhǔn)發(fā)生變化時,直接映射到報文因子有變化,或者測試模型有變化,通過修改報文因子和測試模型,就可以完成對標(biāo)準(zhǔn)變化的閉環(huán)。 ?
上圖展示的數(shù)字化測試應(yīng)用是測試連接客戶場景。這里的連接主要指將客戶場景和測試設(shè)計關(guān)聯(lián)起來,這里引入場景因子的概念,場景因子是基于網(wǎng)絡(luò)分層架構(gòu),按照客戶場景的典型應(yīng)用方案,把整個網(wǎng)絡(luò)分成應(yīng)用層、網(wǎng)絡(luò)層、鏈路層和物理層,然后針對每層抽象對接的業(yè)務(wù),如網(wǎng)絡(luò)層抽象出公網(wǎng)信令場景,再抽象出域內(nèi)公網(wǎng)單播信令場景因子。通過逐級抽象,最終形成場景因子庫,場景因子是場景拼裝的組件,可以完成一個新的場景。
當(dāng)一個新的用戶場景出現(xiàn)時,根據(jù)用戶場景的特點,選取合適的場景因子,并基于場景庫的維度進行交互分析,如信令層面有什么樣的交互,隧道層面有什么樣的交互等,用這種方式完成新場景的拼裝。當(dāng)外部客戶場景發(fā)生變化,會同步觸發(fā)分層架構(gòu)建模的場景因子變化,繼而直接影響測試設(shè)計變化,所以測試設(shè)計到用戶場景的閉環(huán)也是打通的。 ?
除了以上的應(yīng)用,我們還期望數(shù)字化能夠給測試帶來什么?讓我們再基于數(shù)字化的幾個特征做一些展望。第一個是連接拓展測試感知,上圖展示了兩種連接:測試對象的連接、測試模式的連接。測試對象的連接,就像人腦一樣,人腦神經(jīng)的連接越多,對事物的認(rèn)識就越深刻、越迅速,效率也越高。那么怎樣才能把連接提升起來呢?上圖右邊的兩張圖給出兩個方式,一個是inside/內(nèi)部視角,一個是outside/外部視角。內(nèi)部視角就是我們怎么認(rèn)知被測系統(tǒng),在對測試對象的不斷細(xì)化過程中,最后細(xì)化到屬性的時候,實際是外部視角和內(nèi)部視角的對接界面。比如我們細(xì)化一個IP路由對象,從IP路由->單播鄰居->影響因素,數(shù)字化前測試人員可能只知道單播鄰居與接口相關(guān),在inside視角下,程序分析會幫助測試人員打開實現(xiàn)單播鄰居的這段代碼,識別出一些規(guī)則特征,比如單播鄰居與xx索引、xx表項有關(guān)系,這是測試人員以前所感知不到的,這就是從inside視角對測試對象連接進行了更深入的挖掘。除了建立更深的連接外,數(shù)字化還可以幫助測試人員建立更廣的連接。在inside視角挖掘過程中,還可以建立從鄰居->接口->硬件端口的連接,這些在數(shù)字化前測試人員是很難感知到的。
測試模式的連接,多數(shù)是從外部視角來看的,比如網(wǎng)絡(luò)上有一些震蕩,這些震蕩影響了鄰居,就建立了鄰居和震蕩之間的連接。這是一個簡單的例子,如果引入機器學(xué)習(xí)技術(shù),會發(fā)現(xiàn)之前想象不到的一些連接會建立起來,比如說芯片的休眠和接口震蕩是不是有聯(lián)系,以測試人員的知識和經(jīng)驗并不知道,當(dāng)數(shù)字化以后,它就變成了一種可能性,會發(fā)現(xiàn)很多以前所不知道的連接,這是最有趣的地方。古代的時候,有句諺語:早霞不出門,晚霞行千里,現(xiàn)在我們知道這是有科學(xué)依據(jù)的,但是對古人來說,是通過幾代人經(jīng)驗總結(jié)下來的,并不知道具體的科學(xué)依據(jù)。這和連接拓展感知有點像,就是通過一些數(shù)字化的方式,引入更多技術(shù),讓測試人員在不用關(guān)注內(nèi)部細(xì)節(jié)的情況下,拓展理解被測系統(tǒng)的能力和提取測試方法的能力。 ?
第二個特征是智能提升測試認(rèn)知。這里智能就是AI,上圖列舉了測試活動所涉及到的一些AI技術(shù),以及期望能給測試帶來哪些提升。如果說連接是幫測試人員找到感知不到的信息,那么AI則能幫助他們分析和決策,比如利用AI技術(shù)可以識別相關(guān)性很高的用例,能做到智能推薦、智能篩選,AI也可以幫助測試人員識別一些風(fēng)險,去提升測試人員的學(xué)習(xí)和分析決策能力。AI有很多技術(shù)都可以使用在測試領(lǐng)域,包括知識圖譜、機器學(xué)習(xí)、深度學(xué)習(xí)和語言處理。這些技術(shù)可以同時應(yīng)用在開發(fā)領(lǐng)域和測試領(lǐng)域,在測試領(lǐng)域的作用會更大,因為對于開發(fā)來講,是從無到有去構(gòu)建一個系統(tǒng),每一行代碼都是確定的,即使在集成為一個系統(tǒng)以后可能會出現(xiàn)問題,那些問題主要是測試人員挖掘的范圍。測試就像在一個浩瀚的茫茫大海里找東西,這個難度是非常高的,在不可能窮舉所有問題的情況下,怎樣高效地挖掘出最有價值的問題,就是測試的目標(biāo)。AI技術(shù)能夠幫助測試縮小范圍,或者找到推薦的方向。 ?
第三個特征是數(shù)字世界改變工作模式。上圖是對數(shù)字化后測試模式的展望,構(gòu)建數(shù)字化測試系統(tǒng),以目標(biāo)系統(tǒng)的視角,測試評估從“執(zhí)行評估—>設(shè)計執(zhí)行雙評估”。傳統(tǒng)測試都是圍繞著開發(fā)做的交付系統(tǒng)進行評估,數(shù)字化后,測試和開發(fā)同源同一個目標(biāo)系統(tǒng),測試和開發(fā)都根據(jù)對目標(biāo)系統(tǒng)的理解去開展工作,開發(fā)和設(shè)計基于系統(tǒng)架構(gòu)構(gòu)建被測系統(tǒng),測試從用戶視角構(gòu)建測試系統(tǒng),在這個過程中,測試并不是一直等到最后編碼結(jié)束才去做測試執(zhí)行驗證,而是在設(shè)計過程中,針對設(shè)計系統(tǒng)進行反饋和評估,在編碼完成之后,針對交付系統(tǒng)進行一個執(zhí)行評估。比如通過測試設(shè)計發(fā)現(xiàn)場景庫遺漏,發(fā)現(xiàn)功能有遺漏,這是對設(shè)計系統(tǒng)的評估,系統(tǒng)交付后可以用用例和自動化腳本對交付系統(tǒng)進行評估。這個過程正好是設(shè)計與測試、開發(fā)與測試相互校驗的過程,需求分析和系統(tǒng)設(shè)計以及編碼過程中都會產(chǎn)生缺陷,而每一個階段的缺陷在本階段被發(fā)現(xiàn)就是最高效的。 ? 數(shù)字化不是一個具體技術(shù),它改變的是測試人員的思維方式,改變的是整個測試業(yè)務(wù)模式。數(shù)字化是從數(shù)據(jù)到業(yè)務(wù),通過數(shù)字化技術(shù)使能業(yè)務(wù)創(chuàng)新。理解數(shù)字化并把它帶入測試領(lǐng)域,會帶來意想不到的視角和能力提升。 ? ?
編輯:黃飛
?
評論
查看更多