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