TCL嵌入式測(cè)試技術(shù)在數(shù)通領(lǐng)域的應(yīng)用
TCL (Tool Command Language)是一種解釋執(zhí)行的腳本語言(Scripting Language),是業(yè)界主流自動(dòng)化測(cè)試語言,修改后不需重新編譯,TCL解釋器直接執(zhí)行。在傳統(tǒng)的黑盒測(cè)試中,TCL也有大量應(yīng)用,測(cè)試模型如圖1所示
本文引用地址:http://m.butianyuan.cn/article/201609/303578.htm原有自動(dòng)化測(cè)試模型,是在PC上運(yùn)行自動(dòng)化測(cè)試腳本,通過TCL解析器,向設(shè)備發(fā)送命令行配置、控制儀器打入流量驗(yàn)證等測(cè)試手段完成自動(dòng)化測(cè)試。
TCL嵌入式測(cè)試是將TCL語言解釋器植入Comware V7系統(tǒng)中,并且通過TCL擴(kuò)展命令調(diào)用cOmware V7系統(tǒng)模塊內(nèi)部接口,以構(gòu)成測(cè)試條件達(dá)到測(cè)試的目的。從測(cè)試類型看,它屬于灰盒測(cè)試。從測(cè)試階段看,它類似集成測(cè)試,介于單元測(cè)試和系統(tǒng)測(cè)試之間。從測(cè)試手段看,利用TCL語言編寫測(cè)試腳本進(jìn)行更為細(xì)致的模塊接口功能、子模塊功能測(cè)試。測(cè)試腳本開發(fā)出來后,可以用于自動(dòng)化測(cè)試。
V7系統(tǒng)的測(cè)試在繼承原有軟件系統(tǒng)的自動(dòng)化測(cè)試技術(shù)基礎(chǔ)上,通過TCL嵌入式測(cè)試技術(shù),把TCL解析器植入到V7系統(tǒng)中,并根據(jù)測(cè)試需求封裝了一系列的模塊接口擴(kuò)展函數(shù)。開發(fā)的TCL嵌入式測(cè)試腳本可以調(diào)用命令行配置命令和擴(kuò)展函數(shù)進(jìn)行更為細(xì)致的功能測(cè)試,并自動(dòng)獲取運(yùn)行結(jié)果,自動(dòng)解析功能是否正常,從而實(shí)現(xiàn)了很多模塊功能點(diǎn)的自動(dòng)化測(cè)試,提升了V7系統(tǒng)的自動(dòng)化測(cè)試比例。
TCL嵌入式測(cè)試技術(shù)作為一種灰盒測(cè)試技術(shù),在V7測(cè)試實(shí)踐過程中,有如下的幾個(gè)典型的測(cè)試模型及應(yīng)用。
模型一:模塊接口測(cè)試
系統(tǒng)由各大組件組合而成,組件特性一般包括路由組件、MPLS組件、組播組件等(如圖2 所示),其中組件又是由各大模塊組成(比如路由組件一般包括OSPF模塊、BGP模塊等),每個(gè)模塊又是由一系列的函數(shù)組合實(shí)現(xiàn)其功能。
通用的業(yè)務(wù)模塊的測(cè)試,比如OSPF模塊、BGP模塊等,都有提供給用戶的命令行接口,黑盒測(cè)試通過這些命令行能夠去測(cè)試這些模塊的功能。系統(tǒng)中也有些模塊,比如路由管理模塊(RM模塊),這些模塊完全是廠商自己實(shí)現(xiàn)的內(nèi)部的模塊,其對(duì)用戶來說,基本上是不可見的,但是他們又是連接OSPF模塊和其它模塊的橋梁。這些模塊之間通過模塊對(duì)外提供的接口函數(shù)進(jìn)行交互。也就是說,如果通過黑盒測(cè)試,將無法直接測(cè)試到RM模塊,只能通過BGP模塊這些有用戶接口的模塊間接的去測(cè)試RM模塊。這樣會(huì)導(dǎo)致有些功能無法覆蓋到,或者說覆蓋到這些功能的條件很難構(gòu)造。
而TCL嵌入式測(cè)試技術(shù),把RM模塊對(duì)外的接口函數(shù)通過TCL語言全部封裝出來,使得測(cè)試人員可以通過TCL語言測(cè)試腳本調(diào)用這些接口函數(shù),并利用內(nèi)部集成的TCL解析器運(yùn)行TCL測(cè)試腳本去完成這些模塊的功能測(cè)試。通過TCL嵌入式測(cè)試腳本,我們就很容易遍歷
模塊對(duì)外接口的各種參數(shù)情況(包括邊界值),特別是一些參數(shù)的異常值情況,這是黑盒測(cè)試的盲點(diǎn)。
一般來說BGP模塊和路由管理模塊都是不同的開發(fā)人員開發(fā),他們之間有個(gè)契約,就是BGP模塊調(diào)用RM外部接口時(shí)候,不會(huì)傳入錯(cuò)誤的參數(shù)。正常情況下,別的組件也的確不會(huì)傳入一些異常參數(shù),但是特殊情況下,上層模塊也可能傳入了錯(cuò)誤的參數(shù),這樣情況RM模塊需要做容錯(cuò)性處理,才能使整個(gè)系統(tǒng)更加的穩(wěn)健。這種接口測(cè)試是黑盒測(cè)試的盲點(diǎn),TCL嵌入式測(cè)試技術(shù)可以保障V7系統(tǒng)的各個(gè)模塊提供的對(duì)外接口函數(shù)的健壯性和子模塊功能的正確性。如圖3所示。
模型二:測(cè)試各模塊之間的交互過程細(xì)節(jié)
V7系統(tǒng)的各大組件模塊在同一個(gè)系統(tǒng)下工作,他們之間不可避免的要傳遞一些數(shù)據(jù)和消息,這些消息和數(shù)據(jù)里面會(huì)攜帶一些模塊之間約定的參數(shù),這些參數(shù)必須是按照事先約定的內(nèi)容和數(shù)據(jù),整個(gè)系統(tǒng)的功能才能正確。但是如果在開發(fā)過程中,部分開發(fā)人員的出錯(cuò),某些消息和數(shù)據(jù)沒有遵循事先設(shè)計(jì)約定的內(nèi)容,這樣肯定會(huì)導(dǎo)致功能性錯(cuò)誤。
但是并不是所有這些bug都立即能夠表現(xiàn)出功能性錯(cuò)誤來,就好像人中了某些毒,并不一定馬上能表現(xiàn)出癥狀來一樣,這些癥狀可能要有某些條件才能觸發(fā)。這也是黑盒測(cè)試的一個(gè)困境。而TCL嵌入式腳本能夠截獲模塊之間交互的消息和數(shù)據(jù)詳細(xì)信息,并能夠打印和解析出來,就如同在模塊交互間打開了一扇觀察的窗戶,測(cè)試人員能夠很方便的觀察其參數(shù)是否攜帶正確;并及時(shí)發(fā)現(xiàn)這種bug。如圖4所示。
評(píng)論