-
1 # 物物互聯夢動者
-
2 # OpenstackOne
2020年,軟體測試行業還值得入行嗎?
行業的現狀及前景
那麼處於2020年,軟體測試這個行業又將如何發展呢?我談一下幾點,如果你處在這個行業,一定能體會到我說的對不對。
表面"衰落"的測試行業鑑於過去的大形勢變化, 不懂技術的測試工程師會逐漸被淘汰出局. 一波測試工程師的失業潮是在所難免的.雖然早期我也呼籲身邊的人趕緊脫離落後的業務體系, 脫離落後的測試技能, 但是看到很多人越來越生活艱難, 也是挺心痛的. 包括測試工程師的需求越來越少, 招聘職位也越來越少, 典型的新崛起的巨無霸公司比如facebook早期都沒有QA. 甚至前幾年一度有QA團隊是否值得存在的爭論. 表面看起來是測試行業衰落了.
有趣的是大家討論QA團隊是否值得存在的初衷, 是為了更好的保證質量. 這還是挺耐人尋味的. 絕大多數的公司, 都是非常支援QA部門的存在的, 問題在於QA團隊的存在的價值到底是大還是小. 過去陳舊的測試體系, 落後的測試人員能力, 冗長的測試流程是被整個IT行業詬病的一個關鍵.當研發的生產力在逐漸的提升, 運維的部署在逐漸的自動化, QA所帶來的價值和耗費的成本就越來越不能忽視了. 甚至成為了一個專案的最大的成本. 這是任何一家公司都無法忽視的問題. 早年阿里巴巴的高管曾經集體去矽谷拜訪新崛起的巨無霸, 得到的結論就是他們的流程和執行力比國內強很多. 甚至facebook早年都沒有QA就成長為大公司了.所以阿里就迅速推動了流程的裁剪. 這部分包括裁撤SQA, 裁撤需求分析師, 裁撤專案經理, 削減QA名額. 進入產品, 研發, 測試三足鼎立的最簡模式. QA會不會被撤掉也取決於這個部門的價值. 所以不要想當然的覺得"存在即合理", 現在部分的公司已經在試驗"無QA"的模式了. 網際網路唯一不變的就是變化
比如一個典型的例子, 在搜尋, 推薦, 機器學習等方向的演算法測試是很重要的領域, 是需要專業的測試工程師參與的. 這個行業能容納很多的測試團隊. 但是測試行業這些年就沒形成對這個領域的正確測試方法, 結果最後丟失了這個市場. 現在都是研發自己保證了. 因為找不到合格的測試工程師去保證這個業務.
同樣在效能測試領域也是如此, 隨著效能測試平臺, 全鏈路壓測, 效能監控, AB Test, 雲壓測這類技術和服務的出現, 效能測試工程師的需求也會縮小. 越來越多公司裡的效能測試都已經變成研發主導了. 丟失了這塊的業務, 效能測試QA的需求量自然會受影響.
一定要記住, 業務空間決定QA的生存空間, 這是所有行業都通行的道理. 如果你不能滿足業務需求, 就會被淘汰出局, 要麼選擇退守防禦要麼選擇勇於接受挑戰
那測試行業的未來是什麼樣的那, 很多人會擔心. 不過我還是整體樂觀的.因為我喜歡整個行業, 這些年也一直在進行不斷的思辨. 說下我的看法
2. 測試從業人員的規模
從業人員規模跟生產力負相關, 跟業務規模正相關. 以後能有多大取決於技術和業務規模的雙重因素.
首先是大環境因素, 隨著各種行業的網際網路化, IT行業在擴大, 外賣, 美甲, 甚至是無人機汽車航天產業都將成為科技公司. 研發的隊伍會擴大, QA的隊伍自然也會整體擴大. 前提是QA自己要跟得上時代.
其次是隨著生產力提升自然就不會需要這麼多人的. 哪個行業都這樣, 測試行業並不特殊. 就跟汽車行業一樣. 早年堆人, 然後堆工具, 堆技術, 上機器人, 改進流程. 行業技術改進, 測試技術改進, 測試工具和測試服務的改進, 都會一定程度提高了測試效率, 減少了成本. 這種改進會導致QA的團隊更精煉高效. 人數多意味著大家的價值跟富士康工廠裡的工人一樣廉價. 追求高附加值才是正確的路. 這對公司和測試團隊都是雙贏的.
第三個因素是行業地位. devops的流行是推動了研發和運維的密切合作. 一旦這個階段完成, 產品的生產部署會非常的流暢. 隨之而來的就是問題會越來越早的暴露, 大家對質量會更加的重視. 到時候就會進入一個新的時代, DevQA. 運維逐漸會管道化, Dev和QA會成為新的主角. 只是到時候能撐大局的不一定是現在的軟體測試工程師了 會是新時代的測試工程師.
測試行業會越來越專業. 人才, 技術, 工具, 開源平臺, 服務會越來越多. 越來越完善. 術業有專攻, 專業化分工仍然是大趨勢. 技術層面上也會有創新. 以前的測試只能留下測試用例和業務知識文件 沒有什麼連續性積累. 隨著介面測試, 質量監控, 覆蓋率分析, 業務建模等技術的突破, QA也會形成自己穩定可積累的業務資料, 並逐漸形成自己的平臺和業務. 業務空間+技術門檻的雙重因素是我堅信QA部門能長期存在的一個核心因素.
3. 測試行業的管理會逐漸扁平化
幾乎大部分的網際網路公司都在分拆業務和QA團隊從而提高執行力. 所以管理上百人的總監職位會越來越少, 而管理百人以下的總監會越來越多. 不排除少量的巨無霸仍然沒有改變. 或者有些燒錢的初創公司倒行逆施. 其中這些測試管理者會遇到一些新的挑戰, 比如更高層是研發出身居多. 不懂研發體系幾乎沒有發展空間了. 測試管理體系失去了上層建築, 對未來的影響還是深遠的. 會有陣痛, 但是結果肯定會是好的
4. 測試技術人才需求增多
原因是多方面的. 大公司因為分拆的問題. 不再有統一的測試技術支撐部門, 所以分拆之後的每個團隊都需要組建對應的職能團隊, 對測試技術人員的需求反而會增多. 中小型公司也苛求質量保證效果, 不止是要好, 而且要求更快, 也需要大量的技術人才. 這幾年透過各種招聘網站的招聘job的描述也能看得出來.
5. 外包測試的災難和新生
原來做歐美日韓外包業務的公司會因為國內網際網路的發展逐漸式微, 他們需要轉型做國內.但是國內對外包業務也大多排斥, 而且外包業務在效率溝通管理上都有諸多弊端. 其自身也無法承載對測試工程師的培養和長期發展. 所以這幾年會有大量的外包測試工程師轉型. 這方面需要有新的優秀的外包服務公司.能做到有自己的測試服務, 測試技術和高階的測試研究工程師才行. 比如東軟也開始做自己的各種雲測平臺之類的, 就是一種為了迎合新時代的變更.
6. 不懂開發的測試工程師已經是新時代的文盲
第一個是工作上已經沒有太大的晉升空間. 第二個是也很難跳槽. 最好的結果是憑藉多年的經驗轉管理. 我跟行業的很多測試經理交流過, 大部分工作超過6年的人, 在測試執行上會倦怠, 在測試技術的改進上已經無法入門, 還不如招實習生. 相對來說, 有技術基礎的人在工作8年以上仍然會保持自己的學習熱情.所以未來測試團隊的架構基本會是多數業務測試工程師+少數測試專家+測試經理的管理模式. 以前不識字的是文盲, 後來是不識英文的是文盲, 在繼各國呼籲加強對IT技術的重視後, 新時代的文盲就已經快是不懂開發的人了.testerhome社群的成立的初衷就是希望喚醒整個行業對測試技術的重視.
7. 測試行業的門檻增加
以前處於發展期, 行業對人才的苛求是第一位的. 現在隨著大公司發展穩定, 招人已經穩定了.他們基本只在211院校校招. 社招也看學歷. 初創公司多是融資燒錢為主, 在學歷上和閱歷上也是看的很高. 能夠不拘一格降人才的公司會越來越少. 我之前推薦了不少同學去其他優秀的公司, 其中有一部分同學就是技術不錯, 但是學歷未過關. 所以希望大家技能和學歷上能夠好好的重視這個問題. 除了學歷門檻, 如上一條所說技術門檻也存在. 所以加油吧, 少年!
8. 測試行業的薪資在提高
測試行業經過自身的淨化洗滌會有新生. 典型的變化就是薪資從以前的3k-15k的範圍, 整體提升到1w-3w之間. 技術含量的提升, 責任的提升必然會帶來整體的回報. 現在只要技術好, 學歷沒問題. 工作3年拿個兩三萬的月薪是很平常的.
後面會詳細說薪資的方面。
9. 研發工程師進入測試領域
這些年整個行業對測試行業的發展非常不滿意, 通俗點講, 大家都覺得測試很Low, 但是又不能沒有。研發提交專案給測試的心情就跟以前過年要去火車站排隊買票一樣. 要申請測試資源, 給測試講解業務和實現, 遇到比較low的或者新入職的, 連搭建環境都不會還得手把手教. 研發只是修改一行程式碼, QA或者測試那邊就炸鍋了.各種流程足以讓研發頭髮都能掉好幾根. 作為參考對比, 再思考下運維. 當年部署個環境跟提交測試很像. 要申請運維的介入, 要申請機器資源, 然後提交部署文件, 還要明確基礎環境, 依賴庫等各種細節的版本號. 遇到本地行釋出環境不行之類的問題還得跟運維撕逼. 當年運維行業還流行著一句, "人"才是最關鍵的釋出保證者. 而現在隨著持續交付和devops的流行. 釋出都已經做到"絲般柔滑"了, 一鍵釋出,自由選擇灰度,平時的釋出甚至都不需要運維參與. 嘗試了新模式的甜頭後, 對測試行業的弊端已經很難忍受了. 所以在優秀的測試工程師和架構師難找的情況下, 已經有越來越多的公司選擇直接用研發工程師來頂了. 他們的追求很簡單. 單測->介面測試->基礎的冒煙測試, 能夠做到自動化就可以了. 如果能像運維那樣做成測試即服務就更完美了.
搞明白了測試行業的現狀,明確了前景,那就要詳細說說要學習哪些內容了。
自學軟體測試要學習哪些內容?
我根據薪資的不同,劃分成以下幾個階段具體說一下:
月薪5-9k:從零基礎入門到能夠找到工作月薪15-25k:測試在職搞定效能測試和自動化測試年薪30W+:搞定測試開發,進入一線大廠(文末有測試開發崗位簡歷模板,自己拿)
第一個階段:月薪5-9k,剛剛入行,先學會功能測試!
可能你是剛畢業的學生,也可能你是打算轉行進入軟體測試這個行業,那麼首先以下基本的理論你是必須要掌握的:
軟體測試的定義、生命週期、工作流程、需求分析;測試用例的設計、編寫、評審;bug的基本知識以及禪道的使用;測試計劃、測試報告的編寫;SVN、Git版本控制工具的使用;
搞定上上面的這些基本必備內容,就已經知道可以做具體的實戰內容,這個時候最好是先找一個web測試專案去做一下,假如一個專案拿到手之後,按照下面的一套流程跑一遍:
釋出專案進行立項,建立專案組進行分工;需求評審,學會如何看需求文件,進行需求分析,羅列測試點;整理測試點,編寫測試用例,然後進行用例評審;執行測試,比如功能、介面、前後臺、相容性、資料庫,對於發現的bug提交到禪道;分析、總結、編寫測試報告;
這個流程完整的跑一遍之後,只能說對於整體的測試流程算是掌握了,但是仍然不足以找到一份合適的工作,想要學會做功能測試,以下的內容也是必須掌握的:
Linux相關技能
操作環境、命令、安裝資料庫、部署測試環境等
資料庫相關技能
各種命令用法、欄位、增刪改查
介面測試相關技能
介面測試基本理論、http協議、測試方法;介面測試需求分析、用例編寫、評審;幾種工具的掌握,jmeter、postman、soupUI;
APP測試相關技能
安裝/解除安裝、離線、UI、登入等測試內容;相容性測試、monkey、fiddler抓包;
OK,搞定了這些,恭喜你已經可以投出你的簡歷去尋找一份測試的工作了!
簡歷不會寫?文末幫你解決這個問題!
如果你已經入行了,且能夠正常上手業務了,那麼你就要思考第二個問題:如何獲取更高的薪資?
第二個階段:月薪15-25k,搞定效能、自動化測試,獨當一面!
都說自動化玩好了很牛掰,但是效能測試才是網際網路企業的核心痛點!
對於效能測試,業界很多都是在“耍流氓”,舉個栗子:
我拿到了一份“流氓”的效能測試報告,上面只寫了響應時間、TPS是多少,然後羅列了一下壓力機基本配置情況,比如40個併發相應時間是5秒,TPS是260。
那麼,我該怎麼判斷這次效能測試的有效性:
1.場景是否合理?
2.壓力是否傳遞均勻或者傳遞到指定目標?
3.是否有干擾因素,或者說那些資料是否有效?
4.有沒有一些可信的判斷方法?
這些問題的出現,其實就是反映出了目前在做效能測試的一些誤區:
只測不調,無法給出研發和運維人員執行建議無法定位問題,缺乏清晰的邏輯和資料證明價值效能測試工具≠效能測試效能測試技術體系落後(loadrunner),急需擁抱開源軟體如果要搞定這些問題,那麼效能測試你得這麼去學:
效能測試的概念和流程
常見問題剖析、流行工具、方案設計
效能測試工具
jmeter工具的使用、實戰;jmeter多協議、拓展與定製;分散式壓測與任務排程;
效能監控
效能監控體系與監控資料採集
效能實施
分散式服務壓測,場景設計、場景執行測試結果關聯分析,TPS、響應時間、執行緒關聯分析,壓力和資源使用率關聯分析
效能分析與報告
jvm除錯與系統除錯效能瓶頸分析
搞定這些,你完全可以很自信的和麵試官說自己精通效能測試!
效能測試你能到這個程度,15k那是妥妥的了,如果下面自動化測試的學習內容你能夠掌握,那就可以直接衝擊月薪25k!
搞定Python或者Java語言,建議先從Python入手
基本的語言知識,語法、函式、模組、輸入與輸出、面向物件程式設計指令碼編寫、標準庫、多執行緒、第三方庫,外部資料處理unittest、pytest測試框架、引數化、資料驅動
web端的自動化測試
selenium安裝、錄製、處理web控制元件、JavaScript指令碼、PO模式
移動端APP自動化測試
appium使用、錄製、元素定位方法APP控制元件定位、互動,引數化用例appium問題定位分析、原始碼分析、二次封裝
服務端介面自動化測試
介面自動化測試框架request介面請求構造、斷言json/xml請求、響應斷言headcookie處理、認證體系
上面這些說的是效能和自動化測試的學習路線和內容,搞定這些,基本上在這個行業,月薪2萬以上是非常輕鬆的事情了!當然如果你想成為技術專家,或者想帶領技術團隊進行實施落地,那麼請你接著往下看,關於年薪30W+的測試開發需要學習哪些內容:
完善測試技術體系
Linux、docker、shell、SQL、Python/java
打牢自動化測試技術基礎
web自動化測試
selenium測試框架PageObject設計模式、原則、演練
APP自動化測試
Android自動化測試框架appium高階應用於原理剖析APP自動化測試實戰測試框架封裝改造ios自動化測試
移動專項測試
健壯性測試、弱網測試、崩潰檢測、耗電量分析等移動端效能測試移動端安全測試
介面自動化測試
介面協議與抓包、代理技術與mock介面自動化測試框架、HTTPrunner測試框架dubbo介面自動化測試介面管理工具swagger、介面安全測試
docker容器技術
docker容器、docker映象
持續整合/持續交付/devops
jenkins持續整合Jenkins持續交付
以上內容絕對不是泛泛而談!建議收藏或關注,日後去驗證。
-
3 # 西瓜有點胖
軟體測試,初學者其實非常容易。但是你得耐得住寂寞,能穩住你浮躁的心,每日不斷的重複沒有激情的工資。
對於初級測試而言,簡單來說,要求很簡單,可以簡要概括以下幾點:
1、用你的小滑鼠這裡點點,那裡點點,左點點,右點點,哪裡看的不爽點哪裡。
2、記錄你的測試的產品哪裡有不符合常規的,或者覺得程式有問題的,或者數值計算不對的
上面兩點,可以基本概括初級測試所做的工作。其實不難看出,測試的入門要求其實非常容易,只要稍微懂點電腦,人人可以做。不過,現在很多公司也是會卡學歷,基本得專科以上。
測試的入門難點在於,要準確的記錄下發生bug的步驟,能夠復現bug。這樣開發人員也容易根據bug清單有針對的去修復bug。
上面講的初級測試。然後當然不能一直做菜鳥吧,自身也要多方面發展,朝著中級測試,高階測試發展。網際網路行業的薪資水平與能力,工作年限是直接掛鉤的。
上面說了這麼多,其實也不用說太多,對於初入測試行業的小夥伴,做好人事關係處理,自身言行謹慎,同時對自己前輩謙虛點。以上做好,測試工作就簡單的太easy了。
回覆列表
首先要了解行業知識和軟體測試的基礎知識,可以看一些網上的教程和影片資料,練好紮實的基本功,其次要熟悉各種技術技能和工具使用,在工作上不斷積累自己的經驗和技術優勢。
目前熱門的軟體測試技術方向主要分為:黑盒測試、白盒測試、自動化測試、效能測試、安全測試等。
工具和知識體系的學習,可以從以下幾個方面入手:
主流的自動化測試工具,有web端的selenium、QTP等。自動化測試app端,有Appium,MonkeyRunner、Robotium等,效能測試工具主要是Loadrunner和Jmeter。要熟悉基本的BUG管理工具如禪道、Jira等。抓包分析工具wireshak、fiddler。單元測試工具Junit、C++Test等。要掌握至少一門程式語言,主要方向是Python,Java,C等,還有一些前端的指令碼語等。資料庫,熱門的有Mysql、Oracle等,一般至少要掌握基礎的增刪該查SQL語句。作業系統windows、linux以及相關係統命令。網路協議,如TCP/IP等。
職業發展方向
當然上述的方向是一箇中高階測試的要求來制定的,一般入門都是從功能(黑盒)測試開始,黑盒測試的需求量很大,入門容易。後續要確定一兩個主要的技術方向或者業務方向,不斷積累經驗,多涉獵各種技術和相關工具的運用,在一定能力基礎上選擇管理或者技術方向進行沉澱。
主流的技術方向主要是自動化、效能、白盒、安全等。
自動化首先要求要有一定程式設計基礎,想要在測試方向上有較大的發展,至少掌握一兩門程式語言,會編寫一些測試小工具,還要學一些主流的測試框架,以及多種產品型別的自動化實踐經驗。
效能不僅要熟悉工具的使用和指令碼的編寫錄製,最主要的是測試場景的設計和效能測試的結果分析,然後對系統進行調優,使系統滿足效能指標要求。
軟體測試涉及的知識範圍非常廣,從前端到後臺,從功能到效能,還需要對產品,開發,運維,運營等有所瞭解,軟體技術領域很多崗位工作內容是互通的,如果你能找到自己的專長,從測試起步也能獲得不錯的方向和發展。