測試工程師真的不需要懂網絡知識么?
隨著現在互聯網公司的普及,越來越多的測試工程師從事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服務器上的資源。
當然一個協議肯定不是這樣一句話可以簡單描述清楚的,其中細節和實現大家可以根據自己的工作需求去做具體詳細的了解。
如果有需求,我可以后續再出一個詳細的系列文章給大家做更加細致的講解。
從事測試行業的人都知道,測試工程師其實并不是外行人看起來那么簡單的職業,需要有廣泛的知識涉獵面,要求的是知識的廣度。
剛入測試行業的同學,我們需要明確自己必須要掌握的知識類型,然后按照優先級一步一個腳印的去完善自己;
如果已經在測試行業工作多年的同學,同樣需要知道想要跳出自己當前的舒適區,提高一個層次,到底還需要一些什么知識的擴充。
所以,對于測試工程師,測試理論和測試工具我們不能否認其重要性,它是測試工作的重要基礎;
但是網絡知識是也同樣是不可或缺的輔助,它可以幫助開闊測試之路,彌補測試知識體系中的不足,讓你在測試行業中走得更高,走得更遠。