![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO0EDM3IGZjRTZ5ETMlhjYyQWZ0QWMiZmN5MjN5QDO08CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
【本文作者介紹】思寒,資深測試架構師,霍格沃茲測試學院校長,開源自動化測試工具 AppCrawler 作者,有 10 餘年軟體測試開發經驗,曾任職于阿裡巴巴,百度、雪球等公司。
有不少測試同學回報,2020 年好難啊,在各種壓力下,陷入了對自己和未來測試職業發展的迷茫。今天就一起來重溫下經典,重塑信心,破解迷茫。通過本文分享下對測試工程師職業發展的看法,話題較大,不敢随便亂寫,抛磚引玉,僅供大家參考。
1. 測試行業發展背景
微軟引領的大測試時代
中國最早的對 IT 工程的啟蒙和測試定位的探索大多來自于微軟。當年的大背景是微軟故意放任 Windows 的盜版,并積極的輸出他自身的 IT 生态技術棧到中國。中國從政府到民間幾乎全部使用了 Windows。中國有大量的微軟認證的 VP 等各種專家。
微軟和他的附屬生态帶給中國測試行業的影響,簡單總結下:
- 強調工程的嚴謹性。CMMI 一統天下。無數中國公司為了通過這個認證費盡腦汁。大部分公司通過它也不是為了自己的規範,而是為了能拿到政府或者國外機構的外包業務。
-
測試和研發的比例。因為都是用戶端産品。如果傳遞出去出現品質問題是很難解決的。是以測試被放在一個非常重要的位置上。測試與研發比一度是 1:2
外包公司發展迅猛。短短的幾年。中軟,東軟,軟通動力,博彥等公司迅猛的發展起來。
- 測試技術的啟蒙和發展。主要是自動化為主。在十年前的年代,聽一些前輩說,有公司做性能測試,就是有人用哨子吹下,然後一屋子的人就開始一起點。是以當 QTP 和 LoadRunner 出現後,就迅速占領了市場。
網際網路時代的測試發展
當網際網路世界開始爆發,測試行業的主要變化是:
- CMMI 逐漸被網際網路公司忽略。國内崛起的公司有自己的業務,他們不屑于不實用的認證,開啟了自己獨特的野蠻發展的節奏。這也是之前在外企工作的白領有優越感的一個原因。
- 測試技術大發展。不再是簡單的自動化測試,技術開始更加細化。比如單元測試,代碼動靜态測試,接口測試,持續內建,各種端的自動化測試。大家也不再迷信 UI 自動化,而分層自動化,持續內建,測試即服務等理念開始流行。
- 測試工程師技術型轉變。以前的測試工程師就是點點點,不會要求技術的。但現在 BAT 等一線公司已經全部推行技術筆試了。可以說,不懂開發基礎的測試人已經難以發展了。點點點測試工程師已經退化到隻能用于使用者端的功能校驗工作了。
- 測試研發比:從 1:2 下降到了 1:3、1:5。
移動網際網路+創業浪潮時代的測試發展
移動網際網路爆發,IT 研發技術棧和雲計算服務也發展迅猛,這讓小公司的生産力有飛躍性變化,也催生了一場席卷全球的創業浪潮。這股浪潮起源于矽谷,并迅速通過"Copy to China"模式燒到了中國。另外一個是中國大環境的變化,導緻了外資企業生存困難,很多優秀的企業都從中國撤離。
這期間的測試行業發生了如下的變化:
- 服務于國内企業的測試工程師開始增多。外包測試工程師,外企工作白領測試工程師都被外企撤離影響到了,開始逐漸轉到國内公司。外企工作的優越感逐漸喪失,國内的工程師開始崛起。
- 靈活理念盛行。SCRUM 和 XP 理念被迅速的普及。Scrum 迎合了産品管理的需求,XP 迎合了工程化發展的需求。各自發展都很迅猛,然後逐漸衍生了更深入的 CI CD 和 devops 等模式。
- 測試研發比。下降到 1:8 甚至更低。其實 BAT 都向往 google 的 1:10。隻是國内目前做不到。
- 大品質部模式被打散。為了提高運作效率,QA 或者測試工程師團隊被逐漸分拆到各個具體業務部門。大品質部模式消失意味着測試工程師的發展開始遭遇天花闆。很多人還沒能體會到這個模式帶來的巨大影響。
- 測試技術新發展。測試平台得到了很大的發展。研發工程師,技術型測試工程師也開始逐漸發揮價值。比如新型的全鍊路壓測,全鍊路追,測試監控,各種接口測試和 mock 平台,各種雲測和專項測試平台。獨立的測試服務公司也開始層出不窮。
大資料和智能時代
人類已經進入 DT 時代。大資料,機器學習,深度學習,圖形渲染等技術棧也已經成熟了。随之而來會形成新的生産力并落地到測試行業,這個階段大家剛開始感受到。我暫時不做評論。
2.測試行業發展總結
之是以列舉過去的行業變化,其實是為了告訴大家,不要認為目前的模式就是行業的長期現狀。目前不同企業仍然是處于不同的理念和不同的曆史階段中。沒有絕對的對錯,隻有适合與否。
這些變化都是圍繞着幾條核心的主線發展的:
業務發展
業務發展帶來了對品質和速度的追求。這是整個行業發展的主線。
業務發展的需求影響到了産品研發和測試。它和資本一樣是貪婪的,無時無刻不在追求着突破瓶頸。追求更快更好的發展。它決定着很多公司的生死和很多行業工程師的前途。研發,産品,QA 都是要為業務服務的。
技術發展
技術是生産力的重要組成部分,技術的發展是自帶加速度的。每次質變都會帶來一些行業重大的變更。技術的成熟度決定了測試行業的成就能做多大。
作為測試工程師要善于利用目前的技術棧打造符合目前需求的解決方案。
管理發展
公司主體在追求簡單高效的管理上是永不止步的。技術和工具的每前進一步,就意味着組織溝通的能力在增強。管理這個方向會逐漸的扁平化。高層管理會越來越少。一線管理會越來越多。
作為測試行業比較尴尬的一點是大品質部模式模式的消失,讓測試行業的發展開始遭遇天花闆。如果 Hold 不住研發和産品,在測試行業發展的人是沒法往上有很好的晉升的。
3.測試工程師職業發展關鍵因素
薪酬資料參考
我根據測試人才的基本屬性并用實際的例子總結,按照 8 年跨度(08-16),總結了行業的一些典型人才的職業發展現狀(鑒于隐私要求,模糊了相關資料,與真實情況略有偏差)。
我手裡也有更多的資料,之前也一直想搞個決策樹模型,但是一直沒完整的做出來。這次就先簡單列舉這幾個典型個案,簡要分析下測試人的職業發展關鍵因素。
職業上升的關鍵因素
- 技術能力決定了你的薪資增長加速度。在月薪 1-3w 中間。技術能力助力會較多。
- 管理能力決定了你的薪資階層。月薪 2-5w 是管理層基本薪資。後面的要靠公司的股票和獎金。
- 業務能力決定了你的地位和長期回報。對業務的把控決定你在團隊的影響力和重視度,也關聯期權和股票的數量。
- 運氣和選擇決定了你的人生軌迹。選擇的好就能獲得最大回報。
- 股票或者期權回報是超過工資的。選擇一家靠譜的可持久的公司很重要。
作為個人發展,我的建議是紮實的提升你的技能,培養好你的人脈和軟實力。至于運氣和選擇不用焦慮,如果你有能力,自然會有高人拉攏你。比如之前就經常有朋友聯系我,說是 XX 公司要發期權了,XX 公司要上市了,跟我們一起幹吧。人品好,技術好,大家都會喜歡與你為伍的。
職場發展建議
-
切莫在不該有的年齡追求權利
這會斷送你的整個前程。在一些面試場合,如果面試官問你願不願意做管理,如果你回答是,那麼面試基本就挂了。一定要确認面試你的人是不是真的希望你走管理路線。大多隻是測試你是不是真的是個實幹家。
過早參與管理工作也會導緻個人技能發展的不健全。這會為以後帶來隐患。過于追求權力必然也會引發辦公室政治和各種利益鬥争。是以請謹慎面對這個毒蘋果。
-
在薪資和工作機會之間做合理的權衡
每家公司都有自己的薪資體系。你要參考這個資料來合理的确定自己的薪資,不要有幻想。不要覺得别人因為某次成功的忽悠拿到多就懊惱。
一個優秀而紮實的工作經曆會讓你受益一生,會為你的履歷增光不少。對于這種機會降薪也值得去。
一個合理的節奏是,剛參加工作 1-2 年内主要是積累能力,薪資能糊口即可。2-5 年,可以适當的跳槽追求更好的待遇或者更閃光的工作履曆。5年以上,就是要物色好的機會一飛沖天了。
如果跳槽太多,一些大公司也會非常的在意,會影響你的面試。比如工作經驗不到一年或者兩年就跳槽的人,很容易被 BAT 認為輕浮。
4.當下測試行業的發展
表面"衰落"的測試行業
鑒于過去的大形勢變化,不懂技術的測試工程師會逐漸被淘汰出局。一波測試工程師的失業潮是在所難免的。雖然早期我也呼籲身邊的人趕緊脫離落後的業務體系,脫離落後的測試技能,但是看到很多人越來越生活艱難,也是挺心痛的。
包括測試工程師的需求越來越少,招聘職位也越來越少,典型的新崛起的巨無霸公司比如 Facebook 早期都沒有 QA。甚至前幾年一度有 QA 團隊是否值得存在的争論。表面看起來是測試行業衰落了。
有趣的是,大家讨論 QA 團隊是否值得存在的初衷,是為了更好的保證品質。這還是挺耐人尋味的。絕大多數的公司,都是非常支援 QA 部門的存在的,問題在于 QA 團隊的存在的價值到底是大還是小。
過去陳舊的測試體系,落後的測試人員能力,冗長的測試流程是被整個 IT 行業诟病的一個關鍵。當研發的生産力在逐漸的提升,運維的部署在逐漸的自動化,QA 所帶來的價值和耗費的成本就越來越不能忽視了。甚至成為了一個項目的最大的成本。
這是任何一家公司都無法忽視的問題。早年阿裡巴巴的高管曾經集體去矽谷拜訪新崛起的巨無霸,得到的結論就是他們的流程和執行力比國内強很多。甚至 Facebook 早年都沒有 QA 就成長為大公司了。是以阿裡就迅速推動了流程的裁剪。這部分包括裁撤 SQA,裁撤需求分析師,裁撤項目經理,削減 QA 名額。進入産品,研發,測試三足鼎立的最簡模式。
QA 會不會被撤掉也取決于這個部門的價值。是以不要想當然的覺得"存在即合理",現在部分的公司已經在試驗"無 QA"的模式了。網際網路行業唯一不變的就是變化。
比如一個典型的例子,在搜尋,推薦,機器學習等方向的算法測試是很重要的領域,是需要專業的測試工程師參與的。這個行業能容納很多的測試團隊。但是測試行業這些年就沒形成對這個領域的正确測試方法,結果最後丢失了這個市場。現在都是研發自己保證了。因為找不到合格的測試工程師去保證這個業務。
同樣在性能測試領域也是如此,随着性能測試平台,全鍊路壓測,性能監控,AB Test,雲壓測這類技術和服務的出現,性能測試工程師的需求也會縮小。越來越多公司裡的性能測試都已經變成研發主導了。丢失了這塊的業務,性能測試 QA 的需求量自然會受影響。
一定要記住,業務空間決定 QA 的生存空間,這是所有行業都通行的道理。如果你不能滿足業務需求,就會被淘汰出局,要麼選擇退守防禦要麼選擇勇于接受挑戰。
那測試行業的未來是什麼樣的那,很多人會擔心。不過我還是整體樂觀的。因為我喜歡整個行業,這些年也一直在進行不斷的思辨。這裡說下我的看法。
測試從業人員的規模
從業人員規模跟生産力負相關,跟業務規模正相關。以後能有多大取決于技術和業務規模的雙重因素。
首先,是大環境因素。随着各種行業的網際網路化,IT 行業在擴大, 外賣,美甲,甚至是無人機汽車航天産業都将成為科技公司。研發的隊伍會擴大,QA 的隊伍自然也會整體擴大。前提是 QA 自己要跟得上時代。
其次,是随着生産力提升自然就不會需要這麼多人的。哪個行業都這樣,測試行業并不特殊。就跟汽車行業一樣。早年堆人,然後堆工具,堆技術,上機器人,改進流程。
行業技術改進,測試技術改進,測試工具和測試服務的改進,都會一定程度提高了測試效率,減少了成本。這種改進會導緻 QA 的團隊更精煉高效。
人數多意味着大家的價值跟富士康工廠裡的勞工一樣廉價。追求高附加值才是正确的路。這對公司和測試團隊都是雙赢的。
第三個因素是行業地位。Devops 的流行是推動了研發和運維的密切合作。一旦這個階段完成,産品的生産部署會非常的流暢。随之而來的就是問題會越來越早的暴露,大家對品質會更加的重視。到時候就會進入一個新的時代,DevQA。
運維逐漸會管道化,Dev 和 QA 會成為新的主角。隻是到時候能撐大局的不一定是現在的軟體測試工程師了 會是新時代的測試工程師。
測試行業會越來越專業。人才,技術,工具,開源平台,服務會越來越多。越來越完善。術業有專攻,專業化分工仍然是大趨勢。
技術層面上也會有創新。以前的測試隻能留下測試用例和業務知識文檔,沒有什麼連續性積累。
随着接口測試,品質監控,覆寫率分析,業務模組化等技術的突破, QA 也會形成自己穩定可積累的業務資料, 并逐漸形成自己的平台和業務。
業務空間 + 技術門檻的雙重因素,是我堅信 QA 部門能長期存在的一個核心原因。
5.迎接測試行業的變化
測試行業的管理會逐漸扁平化
幾乎大部分的網際網路公司都在分拆業務和 QA 團隊,進而提高執行力。是以管理上百人的總監職位會越來越少,而管理百人以下的總監會越來越多。不排除少量的巨無霸仍然沒有改變。或者有些燒錢的初創公司倒行逆施。
其中這些測試管理者會遇到一些新的挑戰,比如更高層是研發出身居多。不懂研發體系幾乎沒有發展空間了。測試管理體系失去了上層建築,對未來的影響還是深遠的。會有陣痛,但是結果肯定會是好的。
測試技術人才需求增多
原因是多方面的。大公司因為分拆的問題。不再有統一的測試技術支撐部門,是以分拆之後的每個團隊都需要組建對應的職能團隊,對測試技術人員的需求反而會增多。
中小型公司也苛求品質保證效果,不止是要好,而且要求更快,也需要大量的技術人才。這幾年通過各種招聘網站的招聘 JD 的描述也能看得出來。
外包測試的災難和新生
原來做歐美日韓外包業務的公司會因為國内網際網路的發展逐漸式微,他們需要轉型做國内。但是國内對外包業務也大多排斥,而且外包業務在效率溝通管理上都有諸多弊端。其自身也無法承載對測試工程師的培養和長期發展。是以這幾年會有大量的外包測試工程師轉型。
這方面需要有新的優秀的外包服務公司。能做到有自己的測試服務,測試技術和進階的測試研究工程師才行。比如東軟也開始做自己的各種雲測平台之類的,就是一種為了迎合新時代的變更。
不懂開發的測試工程師已經是新時代的文盲
第一個是工作上已經沒有太大的晉升空間。第二個是也很難跳槽。最好的結果是憑借多年的經驗轉管理。
我跟行業的很多測試經理交流過,大部分工作超過 6 年的人,在測試執行上會倦怠,在測試技術的改進上已經無法入門,還不如招實習生。相對來說,有技術基礎的人在工作 8 年以上仍然會保持自己的學習熱情。
是以未來測試團隊的架構基本會是多數業務測試工程師 + 少數測試專家 + 測試經理的管理模式。
以前不識字的是文盲,後來是不識英文的是文盲,在繼各國呼籲加強對 IT 技術的重視後,新時代的文盲就已經快是不懂開發的人了。
測試行業的門檻增加
以前處于發展期,行業對人才的苛求是第一位的。現在随着大公司發展穩定,招人已經穩定了。
他們基本隻在 211 院校校招。社招也看學曆。初創公司多是融資燒錢為主,在學曆上和閱曆上也是看的很高。能夠不拘一格降人才的公司會越來越少。
我之前推薦了不少同學去其他優秀的公司,其中有一部分同學就是技術不錯,但是學曆未過關。是以希望大家技能和學曆上能夠好好的重視這個問題。除了學曆門檻,如上一條所說技術門檻也存在。是以加油吧,少年!
測試行業的薪資在提高
測試行業經過自身的淨化洗滌會有新生。典型的變化就是薪資從以前的 3k-15k 的範圍,整體提升到 1w-3w 之間。
技術含量的提升,責任的提升必然會帶來整體的回報。現在測試工程師隻要技術好,學曆沒問題。工作 3 年拿個兩三萬的月薪是很平常的。
研發工程師進入測試領域
這些年整個 IT 行業對測試行業的發展非常不滿意,通俗點講,大家都覺得測試很 Low,但是又不能沒有。研發送出項目給測試的心情就跟以前過年要去火車站排隊買票一樣。要申請測試資源,給測試講解業務和實作,遇到比較 low 的或者新入職的,連搭建環境都不會,還得手把手教。
研發隻是修改一行代碼,QA 或者測試那邊就炸鍋了。各種流程足以讓研發頭發都能掉好幾根。
作為參考對比,再思考下運維。當年部署個環境跟送出測試很像。要申請運維的介入,要申請機器資源,然後送出部署文檔,還要明确基礎環境,依賴庫等各種細節的版本号。
遇到本地釋出環境不行之類的問題還得跟運維撕逼。當年運維行業還流行着一句," 人 " 才是最關鍵的釋出保證者。
而現在随着持續傳遞和 DevOps 的流行。釋出都已經做到"絲般柔滑"了,一鍵釋出,自由選擇灰階,平時的釋出甚至都不需要運維參與。嘗試了新模式的甜頭後,對測試行業的弊端已經很難忍受了。
是以在優秀的測試工程師和測試架構師難找的情況下,已經有越來越多的公司選擇直接用研發工程師來頂了。他們的追求很簡單。單測->接口測試->基礎的冒煙測試,能夠做到自動化就可以了。如果能像運維那樣做成測試即服務就更完美了。
總結
我一直堅信,QA 的價值是非常的大,測試行業在經過這次調整後也會發展的很好。至于說未來能有多輝煌,就要看大家的努力了。
6.測試職業發展建議
測試行業和其他行業的發展沒有本質的差別。這些年都已經規範化了。一般的公司都會有兩條路線發展。一個是 P 或者 T 簡稱的技術路線,一個是 M 的管理路線。
每個方向都有很大的發展空間,級别也是很多,年薪也是從 20w 到 100w 以上都有。稍大的公司大都是并行發展的。小公司可能就隻有管理路線可走了。是以做技術的同學,最好是在大公司發展,去小公司就要适當調整自己工作重心。
測試技能發展
首先技能和技術隻是過程,業務的品質才是目标。
一個合格的優秀的測試工程師,應該是能做到如下幾點:
- 懂業務。能紮實的保證業務品質。不排斥用腦力和體力去保證品質。
- 懂技術。能夠做深入的自動化或者分析工作。能夠利用工具和技術解決問題。
- 懂架構。能夠跟研發和産品進行正常的交流,保證産品需求和實作都沒問題。能帶團隊走上更好的發展。
成長為測試開發工程師
而随着靈活開發、DevOps、持續傳遞的流行,軟體測試人員必須成長進階為測試開發工程師,同時具備一定的開發和運維能力。
測試開發工程師會通過測試左移,更深入介入開發工作,提前與開發人員一起制定測試計劃,推動代碼評審、代碼審計、單元測試、自動化冒煙測試、測試精準化分析以及研發自測等來保證研發階段的品質。
測試開發工程師會也通過測試右移,參與配置部署,将自動化測試用例配置到持續傳遞鍊中,并全流程監控釋出後的應用品質。總之,作為 DevOps 關鍵角色,測試人員将推動開發和運維共同實作高效傳遞高品質産品的目标。
但這裡想強調一點,并不看好隻開發測試工具的測試開發工程師。開發一款測試工具,設計一個更好的測試架構,發明一種更先進的測試手段。這是個人成長帶來的自然成果,但不是目标。
很多人會覺得開發測試工具的測試開發是有前途的,其實也不是。隻是他碰巧趕上了測試行業的技術轉型期的需要。我記得在百度的時候,好多負責單測工具,單測架構的維護團隊,經常淩晨兩三點還在修複 Bug。但是幾年過去,這些人的努力大多沒有很好的回報。
這是因為他們做的事情脫離業務目标太遠。一旦完成目标,他們也容易被“管道化”,成為邊緣角色。這個行業除了極少數技術的狂熱愛好者,能夠找到自己在行業的技術地位外,大多數人都應該去追随業務的發展。業務才是測試的根基。
測試行業和以前的戰國時代一樣,成為一個統帥團隊叱咤風雲的将軍,還是成為一個打造兵器滿懷工匠精神的鐵匠,都是值得尊敬的。在冷兵器時代排兵布陣管理就是王道,在熱兵器時代下技術和科技是重要力量。這個需要看每個人的愛好和追求。明确自己的發展方向和愛好就可以。
關于測試技術路線,我的建議是:
- 多讀書。能系統的了解很多東西。
- 多看别人的代碼。他山之石可以攻玉。别人的開源代碼裡面藏着很多的經驗和智慧。要善于學習。
- 早期多造輪子。這是一種不斷演習的強化鍛煉。可以強化自己的技能。
- 多承擔開源維護工作。盡可能的參與開源社群的維護工作。跟這些人的協作你能學習到很多有用的實踐知識。能夠強化自己的溝通協調和架構設計的能力。
- 多泡論壇交流。閉門造車,敝帚自珍,固步自封都是沒什麼成長的。跟這些保守的人交流你也學不到太多。
-
打怪更新。從部門裡一件件的改進做起,實作把技術轉化為生産力。
測試管理發展
以前純做測試團隊管理的人估計是很難适應網際網路行業的變化了。可能要面臨着諸多的挑戰。需要加強自身的能力建設。
不少早年做了管理的同學現在有些其實都開始後悔了,弄的高不成低不就。現象就是總監升不上去。經理級别沒亮點也不能更新别。業務發展一般,團隊也沒變化,而跳槽最怕遇到筆試或者技術測驗。
真正能做好測試管理的精英還是蠻少的。如果踏入這個行業,應該多關心如下的事情
- 能幫你做事的人才和團隊:沒有給力的隊伍是做不好的。
- “混圈子”:結識更進階别的 CXO。這是将來的發展需要的。
- 多讀書:多學前人的管理和溝通經驗,跟得上行業發展的步伐。
-
修身養性:魅力、氣場、名望、實力、人品都是取信于人的關鍵。
管理相對技術在大公司向上發展是比較難的。一般跳槽到初創公司是最容易變現的。比如一個 BAT 的測試經理,月薪不過是 2w 多的樣子。跳槽到創業公司做測試管理。月薪就到 3w-5w 了。甚至能力上去,直接跳槽過去當高管和 CTO 的也不少。管理這塊,我就不班門弄斧了。
結語
以上隻是侃侃而談,沒有什麼深度,僅供參考。因為文章過長,原來提到的一些技術話題,我先暫時剝離出去了,以後再寫獨立的技術篇。(end)