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