來源:北大青鳥總部 2023年08月24日 11:01
承認吧,互聯網已經由藍海市場進入了紅海市場,由粗獷式增長變為精細化運營,由高耦合低內聚變為高內聚低耦合。隨著互聯網趨勢的變化,在產品上也有了微妙的變化,大廠們更看重質量而非速度,于是一個崗位開始變得炙手可熱,那便是測試工程師。那么測試是什么?主要分類是什么?如何成為一個優秀的測試工程師?
· 第一個問題,測試是什么?
測試指的是使用人工或自動化手段,來檢測某個系統的過程。在軟件產品開發過程中,產品經理進行需求設計,開發人員按照需求編寫代碼,在把產品呈現用戶之前,需要經過測試,保證產品在使用的過程中是沒有任何問題的,都是符合需求預期的。
所以測試是軟件開發過程中必不可少的一環,互聯網早期的時候,大家剛成為網民,能接受一些bug,加上開發人員修復的也很快,所以沒有測試工程師這個崗位出現。隨著越來越多的人成為網民,越來越多的企業加入互聯網,對于產品質量的要求變得高了起來,要求上線之前必須要經過精細、全面的測試,必須保證質量,因此測試工程師崗位越來越炙手可熱了。
· 第二個問題,主要分類是什么?
回歸到測試的目的是為了保障產品質量,產品質量可以從兩個維度衡量,其一是功能,其二是性能。功能指的是在使用的時候一切看得見的頁面/按鈕等都可以點擊,都可以有符合人類思考邏輯、使用路徑的返回。性能指的是當上萬人、上億人在使用產品的時候,仍然一切看得見的頁面/按鈕等都可以點擊,正常使用。所以產品的測試也包含功能測試、性能測試兩類。
在功能測試中,主要是通過編寫測試用例,窮盡所有用戶使用場景來模擬用戶使用。根據能否看得見代碼邏輯、是否人工可以細分為,白盒測試&黑盒測試、手工測試&自動化測試。所謂白盒測試指的是,像盒子一樣是透明的,能看見代碼邏輯,再根據所有邏輯路徑進行測試。黑盒測試指的是,盒子是黑色的,看不見代碼邏輯,只能根據可能的用戶場景進行使用、測試。所謂自動化測試指的是,不再使用人工去頻繁的測試、使用,使用程序來模擬人進行頁面的點擊、使用,看返回是否符合預期。
在性能測試中,主要是通過測試工具來模擬各種峰值、各種異常負載來對系統的各項性能指標進行測試。性能測試包含負載測試、壓力測試,兩者大同小異,負載測試是確認在各種負載下系統的性能,并且隨著負載變化,系統各項指標如何變化,壓力測試是不斷的模擬峰值,來找到系統能承受的點,獲取系統所能提供的最大請求數。通過性能測試,我們知道系統的負載點之后,可以作出對應的降級措施,確保使用用戶的體驗。
· 第三個問題,如何成為一個優秀的測試工程師?
通過上面的介紹,測試工程師其實是一個介于產品域和開發域之間的崗位,工作復雜度也挺高的,所以要成為一個優秀的測試工程師,在能力模型上要求也高,總結下來,至少要具備以下能力之一;
1.業務理解能力,只有真正的理解業務、理解產品、理解用戶,才能找到可能存在的操作路徑有哪些,才能去執行全面的測試;
2.技術能力,在執行測試中,發現bug后,要能準確的定位出是前端問題、后端問題、網絡問題,這樣才能提高開發同學的效率,雙方交流起來也會很順暢。
3.開發能力,人工的去執行測試,在人工智能的時代是很低效的,因此利用好互聯網手段,通過測試框架、測試工具開發等,高效保證產品質量。
除此之外,良好的溝通能力、細致謹慎、不斷學習、思考能力也是必備的。上述的三個能力任何一個做好了,都能在互聯網大廠中有一席之地。
總的來說,測試工程師毫無疑問是快速了解業務、接觸到產品線所有核心角色的崗位,并且在該崗位上可以繼續橫向擴展做產品經理或開發人員,縱向擴展可以做測試開發、測試專家。所以,如果你剛加入互聯網行業,并且還不太清晰自己的職業規劃,那么我建議可以從測試工程師開始;如果你已經是互聯網人士了,也可以轉崗測試工程師,畢竟互聯網大廠的缺口還是挺大的,工作壓力也相對會小一些。綜上所述,測試工程師都是一個不錯的選擇噢~