本文文章通篇沒有廢話,只有干貨干貨干貨!軟件測試工程師,要具備哪些能力?本文將通過三個測試工程師的階段,分別需要具備和掌握哪些技術能力,每個階段大致能拿到什么范圍的薪資。文章比較長,請耐心看完。
一、不同階段的測試工程師需要掌握的技能體系
1、初級測試工程師
這里說的測試工程師,是主攻軟件的“測試”領域。也就是專業對接和負責軟件的BUG查找、測試業務的執行、測試用例設計、測試計劃的編寫、測試報告生成等等。
這類測試工程師需要掌握的技能如下:
① 軟件測試的整理測試流程和概念,熟練軟件測試的用例設計和編寫;
② 熟練掌握幾種常見的去缺陷管理工具(禪道、SVN、、Jira等),熟悉缺陷的定義標準和系統化的測試計劃編寫等;
③ 掌握Web自動化測試、app自動化測試的測試環境搭建和測試方法;
④ 掌握接口自動化測試的、工具的使用,同時深度了解HTTP/HTTPS協議的原理和作用。
薪資水平:6-12K 左右
這個階段的測試員軟件測試要用的軟件,一般是剛學習軟測到可以就業的程度。大部分都是掌握了軟件測試理論概念、常見的測試流程和測試類型;熟練測試用例的設計和編寫;對軟件的生命周期、工作流程有大致的了解。知道如何分析軟件的用戶需求點;掌握一些常見的缺陷定義和缺陷報告的生成。有一些實戰項目經驗的可能對禪道、SVN、git等測試相關的工具有一定的了解和使用經驗。
再稍微優秀一些的自動化測試工程師,還掌握了Linux、Sql數據庫、前端HTML等基本的計算機技能。并且了解接口測試的概念和WEB+的測試環境搭建和初步測試,app移動端測試同樣也需要掌握一些。
2、中級測試工程師
對于現在大多數的互聯網公司而言,中級自動化測試工程需要是他們非常渴求的人才。這類人才大多都掌握了一門或者多門編程開發語言(、Java、C++等)。中級測試工程師能支撐起整個企業測試部門的完整測試體系搭建,包括針對企業產品研發的自動化測試腳本,對于軟件的性能、壓測、UI、接口、前后端業務等等做全方位測試設計和管理。
中級測試工程師需要掌握的技能如下:
① 至少掌握一門編程語言,、Java、C++都可以。沒有編程基礎的我們建議選擇,因為入門難度和學習周期相對其他開發語言更加容易一些,對新手比較友好,而且在測試領域的應用極為廣泛;
② 熟練掌握常見的自動化測試框架的環境搭建(+++等);
③ 熟練掌握app移動自動化測試的完整流程和測試方法,尤其要熟練掌握的使用;
④ 熟練掌握+的測試框架的開發;
⑤ 能夠獨立完成基于的完整web自動化測試的框架開發;
⑥ 深度掌握性能測試中和的拓展用法,能獨立完成app/WEB的性能測試。
薪資水平:15-25K 左右
這個階段的測試員,一般是剛學習軟測到可以就業的程度。大部分都是掌握了軟件測試理論概念、常見的測試流程和測試類型;熟練測試用例的設計和編寫;對軟件的生命周期、工作流程有大致的了解。知道如何分析軟件的用戶需求點;掌握一些常見的缺陷定義和缺陷報告的生成。有一些實戰項目經驗的可能對禪道、SVN、git等測試相關的工具有一定的了解和使用經驗。
再稍微優秀一些的自動化測試工程師,還掌握了Linux、Sql數據庫、前端HTML等基本的計算機技能。并且了解接口測試的概念和WEB+的測試環境搭建和初步測試,app移動端測試同樣也需要掌握一些。
3、高級測試開發工程師+架構師
高級測試開發工程師基本上可以稱得上整個企業產品+測試部門的一把手。這類崗位一般都是以管理者居多。本身負責團隊的運作、軟件整體的測試流程把控、白盒測試的體系搭建,企業大型自動化測試平臺的開發和管理,以及整個測試體系的質量管理和監控。
① 對軟件測試的整體流程和細節做到爛熟于心的地步,這類經驗一定是經過無數的測試實戰方能生成的;
② 熟練各類型的軟件測試(app、小程序、前后端、WEB、sever等等)方法和扎實的經驗,并且對各類型市面上的測試工具運用自如;
③ 對CD/CI有比較熟練的實戰經驗,能熟練的使用,具有完善的測試架構能力;
④ 有熟練的編程開發能力,深諳軟件的底層代碼邏輯和結構,能夠獨立開發、管理和完善自動化測試框架;
⑤ 擁有優秀的團隊領導能力,合理安排測試團隊的人員組織和安排。
薪資水平:30-50W 左右年薪
測試工程師因其工作的特殊性,需要掌握產品的用戶需求、設計需求以及產品的底層結構等各方面,測試人員會從用戶的角度出發,去看待軟件產品各方面可能存在的不利體驗和準確訴求。
所以經驗比較足的測試人員,對產品的各個維度都能做整體化的把控。比如分析產品的用戶需求和體驗,以用戶的角度來把握產品的定位和功能的迭代等等。可以說從測試轉為產品經理的人,一定是一名非常有全局性、前瞻性的優秀產品經理或者測試經理。
二、學習軟件測試需要注意的5個點
1、一定要打好前期基礎
軟件測試的學習,總體來講大致分為三個階段。
第一階段主要掌握軟件測試的基礎知識,比如:軟件測試概念、軟件測試分類、測試流程、測試評審、測試用例和測試計劃等等。這一塊兒的基礎概念知識,是后期學習自動化測試的基石。掌握好了軟測基礎,后面的學習將會順利很多;
第二階段主要掌握計算機基礎一類的知識。比如:計算機概念、Linux系統的學習、MySql數據庫的學習、HTTP/HTTPS(TCP/IP)協議、前端方面的知識(重點:web+ 自動化和 app+ 一塊兒需要用到)。這幾個點雖然前期感覺和自動化沒什么關系,但是到了后期運用到接口、性能、Web、app自動化的時候都會涉及到這類計算機基礎知識;
第三階段就是各類型測試的實戰教學。軟件測試工程師能否拿高薪,就取決于你掌握了多少測試類型的技術。目前主流的接口自動化、app自動化、WebUI自動化和性能測試,都是市面上較為搶手的高薪就業技術點。學習過程中,一定要注意融會貫通,以及多做實戰項目,這樣在就業上崗的時候,我們才能從容的應對工作。
2、至少學習一門編程語言
編程語言對于軟件測試的重要性我就不多說了。想必了解一點自動化軟件測試,或者大致看過我們測試猿大課堂的軟件測試課程視頻的同學都知道。我們在后期學習的接口自動化、app自動化、Web自動化等等都是圍繞著自動化來的。而自動化又是基于編程開發出來的自動化運行腳本和框架。我們使用自動化技術測試項目時,就必須要懂得如何寫出可以調試界面的腳本。
當然前期可能不需要我們自己去寫腳本,市面上有很多現成的自動化測試腳本和框架。但我們也必須知道怎么用,如果你不學編程語言,那么你的測試技術就定然有上線。當你掌握一門甚至多門編程語言,再來從事測試的話,你的優勢將變得無限大。
編程語言這塊兒,測試猿課堂建議大家可以這樣選擇: > Java。 沒有編程基礎的都可以這樣選擇,優先學 ,其次學 Java 。因為 入門相對簡單一些,而且 在各大企業中的自動化測試中應用更加廣泛,可以說幾乎百分之90的企業選擇的自動化測試語言都是 .
3、注意不同測試類型的學習側重點 提高學習效率
接口自動化:需要熟悉語言,然后在語言的基礎上學習的聯網庫,需要封裝成測試腳本。這時候需要單元測試庫或者使用+來控制腳本生成測試報告軟件測試要用的軟件,如果有需要持續集成可以再學習
web自動化:同樣需要掌握語言,然后學習控制瀏覽器的庫,和瀏覽器相對于的
app自動化:需要熟悉掌握語言,然后再語言的基礎上,學習控制手機app的庫,手機相關的知識比如Adb,,需要封裝成測試腳本
上面幾點都是主流的測試方案,也是初級測試工程師必須掌握的幾個重要學習知識點。還有更多的內容可以根據自身的就業方向和目標,進行縱深拓展。
4、不管實戰還是學習中,一定要多動手
測試猿大課堂培訓的很多學員中,有一些人存在著同樣的問題。那就是學習的方式和效率不太高。后來我們在每周的測驗中根據這些“問題學員”的問題,進行深度追蹤后,發現他們都有個統一的特點:從不記筆記!
這讓我非常震驚,學習怎么能不記筆記呢?學習怎么能不動手呢?學員的想法是感覺老師講的他們都聽懂了,而且他們還可以看回放!老師也有課后PPT和源碼筆記分享給他們,為什么自己還要做筆記呢?
大家一定要記得,好記性不如爛筆頭!學習吸收知識的最快方式就是親自動手!不管是記筆記,還是說老師布置的作業。
千萬不要把老師課后分享的源碼拿過來放在自己的環境里一跑,欸,發現可以運行,完美!就不管了,這其中大腦所缺失的記憶過程,會讓你在后續的學習里,迷糊點積累的越來越多!
5、不要過于依賴現有工具 多嘗試自己寫工具
軟件測試行業比較特殊,市面上有非常多很不錯的測試工具。很多初進入軟件測試行業的新手,往往會習慣于依賴于現成的測試工具,個人感覺有這些工具應付工作就足夠了。但這其實是一種非常危險的“惰性思維”。
軟件測試行業中其實還有非常多優秀的開源工具,而很多大型互聯網企業都比較傾向基于這類開源工具進行二次開發的自動化測試平臺。測試工程師也一定要多嘗試著去使用這類開源工具,一來可以拓展自己的思維和眼界,二來可以盡早熟悉自動化測試框架的底層邏輯和開發實戰。這一點可以在將來面試的時候,為自己的簡歷打上一道非常不錯的色彩。