如果還想在測試這條路上繼續走下去的話,那麼下面這些東西就是我們必須去掌握的,至少你還不想止步于簡單的黑盒測試~~其實,一直想去接觸Linux下的應用測試,這樣能學到東西會很多,而且會非常的受用。之前聽小布老師講,如果你想在IT技術上長期發展下去,那麼你就大膽擁抱Linux吧,因為在這裡你能學到東西遠勝過于你在Windows平台下學到的東西,而其中最經典的一段話就是:如果你一直跟随微軟的技術,那麼終究會被拖死,因為微軟的技術一直在變化,而你卻需要不斷的去學習他的東西。而Linux不一樣,它更多的是讓你去了解底層的技術,讓你從原理上去了解技術的核心,永遠以不變應萬變的姿态去面對未來的技術革新。
我想作為一個測試人員,如果你确實還沒接觸過網絡、資料通信方面的技術,那麼咱們的路還很長,至少我認為軟體測試并非隻停留在上層的應用,而測試的最高境界應該是對底層核心技術的測試,通過架構分析、協定資料包分析等等來測試出結果~~~是以我們應該掌握的技術有:TCP/IP、Socket、多線程,這些是必須的。
1、先來看看TCP/IP的體系結構,如下圖:
TCP/IP協定實際上就是在實體網上的一組完整的網絡協定。其中TCP是提供傳輸層服務,而IP則是提供網絡層服務。下面是各個層的協定說明:
IP: 網間協定(Internet Protocol) 負責主機間資料的路由和網絡上資料的存儲。同時為ICMP,TCP,UDP提供分組發送服務。使用者程序通常不需要涉及這一層。
ARP: 位址解析協定(Address Resolution Protocol)
此協定将網絡位址映射到硬體位址。
RARP: 反向位址解析協定(Reverse Address Resolution Protocol)
此協定将硬體位址映射到網絡位址
ICMP: 網間封包控制協定(Internet Control Message Protocol)
此協定處理信關和主機的差錯和傳送控制。
TCP: 傳送控制協定(Transmission Control Protocol)
這是一種提供給使用者程序的可靠的全雙工位元組流面向連接配接的協定。它要為使用者程序提供虛電路服務,并為資料可靠傳輸建立檢查。(注:大多數網絡使用者程式使用TCP)
UDP: 使用者資料報協定(User Datagram Protocol)
這是提供給使用者程序的無連接配接協定,用于傳送資料而不執行正确性檢查。
FTP: 檔案傳輸協定(File Transfer Protocol)
允許使用者以檔案操作的方式(檔案的增、删、改、查、傳送等)與另一主機互相通信。
SMTP: 簡單郵件傳送協定(Simple Mail Transfer Protocol)
SMTP協定為系統之間傳送電子郵件。
TELNET:終端協定(Telnet Terminal Procotol)
允許使用者以虛終端方式通路遠端主機
HTTP: 超文本傳輸協定(Hypertext Transfer Procotol)
TFTP: 簡單檔案傳輸協定(Trivial File Transfer Protocol)
2、TCP/IP協定的核心部分是傳輸層協定(TCP、UDP),網絡層協定(IP)和實體接口層,這三層通常是在作業系統核心中實作。通常使用者的服務需要通過應用程式來實作,是以在底層與應用層就是通過套接字來實作,也就是我們通常所說的Socket來建立連接配接的。具體如下圖所示:
TCP/IP協定核心與應用程式關系如上圖所示,是以對照這個圖來了解我們的應用層開發,就直覺多了,特别是對一些應用進行性能測試時,基于什麼協定來通信,分析也會得心應手了。
是以說測試要學的東西還很多,到最後技術也許比開發人員都要牛,最重要的是這些東西能夠給你的工作帶來實際的幫助。正所謂高手過招比的内功,這些都是内功的修煉,别等到用的時候才發現自己不會,那就遲了。測試的路還很長,埋頭學習吧,啥也不說~~
本文轉自一米一陽光部落格園部落格,原文連結: http://www.cnblogs.com/candle806/archive/2011/11/09/2242273.html ,如需轉載請自行聯系原作者