1. 程式人生 > >不懂網路知識,測試工程師真的能走得很遠麼

不懂網路知識,測試工程師真的能走得很遠麼

導語:不懂網路知識,測試工程師真的能走得很遠麼?

 

 >>背景

        隨著現在網際網路公司的普及,越來越多的測試工程師從事web應用測試和移動APP測試類的產品,更加偏向應用,所以導致越來越多的測試工程師對網路基礎知道的甚少。

  我曾經做過一個小調查,大概200多個測試從業者中只有不到20人知道如IP協議和路由協議這樣的基礎網路知識,這樣的現象一點都不誇張。那麼不懂網路知識,測試工程師真的能走得很遠麼?

       我是在2010年左右進入測試行業的,那個時候網際網路行業還沒有現在這麼繁榮,需要測試崗位的公司很多都是一些傳統公司,比如路由交換裝置廠商:思科,華為,華三等;防火牆VPN的安全廠商:如Juniper,深信服,360等;還有一系列外企:如IBM,Oracle,F5等。這些公司的測試工程師,對於網路基礎知識的要求相對比較高,不僅在筆試面試中會作為招聘的門檻,而且在具體測試工作開展過程中,也需要實施和使用到。

        我在北京就職的其中一家公司就是SSL VPN的一家外企,所有測試工作中很重要的一個部分就是需要自己準備測試環境,也就是要根據需求自己設計出來對應的測試網路拓撲圖,然後協調到資源之後,在實驗室把這個網路搭建並且調通。

  這個過程如果沒有豐富的網路知識儲備,你就可能會被block在網路環境準備階段,無法真正的開始執行測試用例,因為沒有環境的承載,測試軟體根本無法執行。

  當然,可能在你作為一個新人的時候,能夠去請求別的同事的支援,協助你配置網路和準備測試環境。但是如果你一直需要別人的幫助才能完成本來屬於你的測試工作,那麼相信公司也會開始考慮是不是需要你這樣一個比較雞肋存在。

         說到這裡,可能有些同學會說,我現在並不在這些傳統行業上班,而且現在傳統行業也不太景氣了,我就在網際網路公司工作,我掌握測試理論,熟悉各種測試方法,熟練使用各種測試工具就可以了,網路知識對我還有那麼重要麼?

         答案是肯定的。如果想要在測試行業走的很遠,就算是網際網路公司,網路基礎知識仍然是一個測試工程師的一個必備技能,區別可能只是你掌握的深和淺的問題。

         如果你現在從事的是web應用測試,你在瀏覽器上輸入一個URL進行訪問,伺服器會給你返回一個頁面,請問你瞭解這個過程是怎麼實現麼?

    如果你現在測試的是手機APP應用,手機連線wifi或者4G網路是怎麼上網的,這個你又清楚麼?

    電腦插上網線或者連線wifi,分配IP地址或者手動配置IP地址上網的規則和過程,你又明白麼?

    或許你依然覺得這些過程不清楚也沒有關係啊,並不會影響測試工作的進行,那麼我再問你,如果web頁面訪問失敗了,返回了一個錯誤碼,你知道怎麼定位是伺服器的問題,還是網路的問題麼?

    APP應用測試需要需要覆蓋各種網路環境,比如弱網測試,你清楚怎麼模擬麼?

    測試網路出現問題,你知道怎麼去做基本的除錯命令和方法麼?

    奪命三連問,是否直擊你的心靈最深處呢?真實經驗告訴你,網路知識是你要成長為一名優秀測試工程師的重要基石。

 

 >> 學習的方向

         既然知道了測試工程師掌握網路知識的必要性,那網路體系這麼龐大,我們怎麼從中選取跟測試相關的知識,高效地學以致用來輔助測試工作呢?

         首先,從認識網路基開始,知道網路中每一層的具體工作職責和工作流程。我們以OSI網路七層模型為例(TCP/IP四層協議棧與其類似),從下向上分別是“物理層-資料鏈路層-網路層-傳輸層-會話層-表示層-應用層”,每一層都各司其職,下層向上層提供服務,上層使用下層提供的服務,如此和諧的運轉著。

        下面的圖很直觀的表示出了資料包在網路中傳輸的過程以及每一層在這個過程中的具體工作:在瀏覽器中輸入URL“https://baidu.con”訪問,百度伺服器給我們返回一個百度的頁面。

 

 

         其次,需要知道每一層常用的網路協議。所有你所在測試的軟體,都是基於某一個協議來實現,所以瞭解協議,能夠幫助你更加深刻的理解測試的產品,從而能夠更加充分的測試。比如網路層的ARP協議,IP協議,路由協議;傳輸層的兩個重要協議:TCP協議和UDP協議;應用層的常用協議:http協議,https協議,FTP協議等。下面是這些常用協議的簡介。

 

ARP協議:地址解析協議,在已知對方的IP地址的時候,去尋找對方的MAC地址;

IP協議:分配給使用者上網使用的網際協議。我們需要知道IP協議的構成:網路地址和主機地址,以區分網路中的裝置或者主機是否在同一個子網,是否可以直接通訊;

路由協議:如果主機們不在同一個子網,就需要用到路由協議。查詢裝置上的路由表,選擇資料轉發的最優路徑;

TCP協議:在傳輸層提供可靠的傳輸,並且通過定義埠來區分主機上的應用服務;

UDP協議:在傳輸層提供快速的傳輸,同樣可以通過埠來區分主機上的應用服務;

http協議:超文字傳輸協議,定義了客戶端傳送給伺服器的訊息格式以及伺服器響應訊息的格式。

https協議:超文字傳輸安全協議,在HTTP下加入SSL層,提供加密的功能。

FTP協議:檔案傳輸協議,FTP伺服器儲存檔案,使用者使用FTP客戶端訪問FTP伺服器上的資源。

         當然一個協議肯定不是這樣一句話可以簡單描述清楚的,其中細節和實現大家可以根據自己的工作需求去做具體詳細的瞭解。如果有需求,我可以後續再出一個詳細的系列文章給大家做更加細緻的講解。

 

 >> 總結

         從事測試行業的人都知道,測試工程師其實並不是外行人看起來那麼簡單的職業,需要有廣泛的知識涉獵面,要求的是知識的廣度。

    剛入測試行業的同學,我們需要明確自己必須要掌握的知識型別,然後按照優先順序一步一個腳印的去完善自己;如果已經在測試行業工作多年的同學,同樣需要知道想要跳出自己當前的舒適區,提高一個層次,到底還需要一些什麼知識的擴充。

    所以,對於測試工程師,測試理論和測試工具我們不能否認其重要性,它是測試工作的重要基礎;但是網路知識是也同樣是不可或缺的輔助,它可以幫助開闊測試之路,彌補測試知識體系中的不足,讓你在測試行業中走得更高,走得更