測試工具和測試自動化
人類的進化史和發(fā)展史,就是一個不斷創(chuàng)造和使用工具的歷史。工具是人類想象力的物理呈現(xiàn),也是社會進步的巨大助力。對于測試而言,工具同樣不可或缺,甚至于如果想判斷某個廠商的測試水平是處于“蠻荒時代”還是已經(jīng)進化到了“現(xiàn)代社會”,觀察其使用的測試工具就能知道個大概。事實上,很多測試項目,尤其是性能和穩(wěn)定性測試項目,必須借助測試工具才能完成;驗證業(yè)務的大規(guī)模部署能力,沒有工具的支撐更是不可想象。舉個簡單例子,對一個可以同時接入4000個PPPoE的設備進行測試,如果沒有測試工具,就只能搭建一個4000個客戶端的環(huán)境,這在實踐中幾乎不可實施,更何況類似測試項目會很多,而且每個版本都需要重復測試。
一、測試工具
伴隨著網(wǎng)絡技術的爆發(fā)式發(fā)展,種類繁多的測試工具也被開發(fā)出來,根據(jù)其主要功能,大致可以分為下面幾類*(*注:現(xiàn)在的測試工具都比較復雜,不一定能完全嚴格分類,比如Chariot和Avalanche都能提供強大的流量產(chǎn)生功能,又是很好的業(yè)務模擬工具)。
流量發(fā)生工具:主要用于生成大規(guī)模網(wǎng)絡流量,測試設備的轉發(fā)平面功能。這類工具有的是直接安裝在主機上的軟件,如Chariot;也有的是專用硬件,比如Spirent和IXIA等專業(yè)廠商提供的測試儀器;
協(xié)議仿真工具:主要對信令協(xié)議進行仿真,測試設備的控制平面功能。比如路由協(xié)議仿真,MPLS相關協(xié)議仿真,認證接入?yún)f(xié)議仿真等測試工具;
業(yè)務模擬工具:主要是對應用層協(xié)議和客戶業(yè)務進行模擬,測試設備的應用和業(yè)務承載能力。一般的L4-L7的測試儀器和工具都提供了強大的業(yè)務模擬能力,比如Avalanche,BPS等測試儀器和Chariot軟件;
攻擊類工具:包括黑客工具、Fuzzing和Vulnerability類測試工具,測試設備的安全性和攻擊防范能力。典型的有Mu Dynamics、Codenomicon、BIFFIT、SAINT、NESSUS、nMAP以及SYN flood等DDOS工具;
平臺類工具:一般提供的是一個二次開發(fā)平臺,有完善的集成開發(fā)環(huán)境,支持多種適合用于測試的高級計算機語言(如Perl、TCL、Python等),可進行復雜的二次開發(fā),集成了為適應測試而封裝和抽象的Lib庫,甚至提供一些已經(jīng)經(jīng)過實踐檢驗的自動化測試套件,并且可以通過外部接口調(diào)用其它測試儀器和工具。類似微軟的Visual Studio開發(fā)環(huán)境,只不過它是為開發(fā)服務,前者是為測試服務。平臺類工具投入巨大,主要為了滿足廠商建設自己獨特的測試能力體系的需要,一般由廠商自行開發(fā)與維護。H3C構建了這類平臺,稱為通用測試平臺(VTP,Versatile Test Platform)。
一般來說,對于成熟的協(xié)議或應用測試,都有優(yōu)秀的商業(yè)測試儀器和測試工具,可以滿足80%以上的測試需求。但對于最新的協(xié)議和應用,或者特定客戶的非標準定制需求,就要求廠商具備一定的測試工具自主開發(fā)能力。以H3C為例,在802.1x協(xié)議剛開始在國內(nèi)應用時,在大量用戶同時接入設備的條件下,設備會較大概率出現(xiàn)軟件崩潰。于是,測試團隊自行開發(fā)出一個模擬大量802.1x用戶接入的工具,最終很快就發(fā)現(xiàn)并解決了問題,而具備類似功能的商業(yè)802.1x測試工具,大約時隔兩年后才在市場上出現(xiàn)。
H3C對于測試儀器和測試工具在優(yōu)化測試效率、提高測試水平、提升產(chǎn)品質量方面的重要性深有體會。在這方面的投入很大。一方面,大量采購了業(yè)界先進的商業(yè)測試儀器和工具,如Spirent、IXIA、BPS和Veriwave等公司的測試儀器和測試軟件。另一方面,通過專門的測試平臺團隊也獨立開發(fā)了眾多的測試工具和軟件,為商業(yè)測試軟件覆蓋不到的測試需求提供支持,確保H3C能以最快的速度推出最新特性。該團隊開發(fā)的測試工具目前已經(jīng)形成系列并成為測試工程師的重要助力,如多客戶端模擬系列工具,路由協(xié)議系列測試工具,一致性系列測試工具,綜合業(yè)務模擬系列工具等。該團隊開發(fā)的通用測試平臺則構建了一個公司級的自動化測試框架,提供了完善的GUI,CLI自動化測試解決方案,為H3C的全系列產(chǎn)品測試提供服務。
二、測試自動化
測試工具和測試自動化,兩者是一對孿生兄弟。測試工具的目的就是為了代替部分繁瑣的手工測試操作,或完成手工測試不可能完成的測試活動,實現(xiàn)一定程度的測試自動化。測試自動化的發(fā)展進化和測試工具的進步密不可分,隨著測試工具的進步和完善,很大一部分測試工作已經(jīng)可以做到無人值守,實現(xiàn)完全意義上的自動化?;仡欁詣踊瘻y試技術的發(fā)展歷史,大致可以分為三代。
評論