當前位置:
首頁 > 最新 > 十年了,回顧一路走來的測試

十年了,回顧一路走來的測試

最近公司有較大變動,所以打算找新的工作機會,把自己封了兩年多的簡歷又開放出來刷了刷。

恰好碰到了一個做自動化測試的大學校友,建議我來這裡看看有沒有好的崗位,突然想起來自己是有個賬號的。

我不是那種很勤快的人,所以從來也沒有什麼博客記錄,也沒有發表過什麼感想。昨天偶然看到思寒的那篇2016年總結感想,覺得可以說點什麼,就寫下這篇記錄,當做我自己對自己經歷的一個回顧和分享吧!不知道是否能給測試入行的新盆友一些幫助和啟發。

一、從設備維修工到開發的轉行

05年畢業,校招進了富士康做電氣設備維護,就是生產設備故障處理和保養的。三班倒,白班轉中班,中班轉夜班,夜班又轉白班,不累但是錢少沒未來。雖然也做的不錯,領導想提拔我當維修組長,但沒太多錢就沒什麼特別的興趣。當時每個月固定加兩天班,稅後拿下來兩千五左右還包吃住,由於從小家裡很窮,當時覺得能存錢真好。

但是到了07年的時候就開始心裡不穩定了,一是股市瘋漲,讓我看到了我那點錢還不夠塞牙縫;二是當時聽說老家(湖南郴州)的房價漲到1600了,哎呀我操,我05年畢業的時候上網查的房價才八九百呀,心開始慌了;三是聽說某某同學混的多好多好了,做個web開發打下手也可以隨便拿三千多,做個嵌入式開發可以拿五六千。

我開始拿起我扔下了快兩年的C語言/C++的書,把裡面的知識點全部複習一遍,管它懂得不懂的,全部抄下來背,然後慢慢體會那些不理解的邏輯。(我不是計算機專業,是測控技術,所以C++是自學的)。當時想找單片機開發的工作,但是一般公司聽我沒經驗,都不要我,有一個勉強同意的面試負責人問我:「沒經驗,800塊干不幹?」 哎,我想想我讀書時的借債還沒還完呢,還是算了。這樣一直沒找到開發相關的工作,但是我還是每隔一兩個月就會把我抄下來的C++筆記全部背一遍,直到我花了五千多塊錢去廣州一個培訓機構做嵌入式ARM開發課程培訓。

培訓了將近三個月,每個工作日都上課,周六自習,周日休息。我發現除了老師演示的那幾個應用開發之外,其他所有的邏輯我竟然全部聽懂了,老師還叫我上台給其他學生講知識點。信心從那個時候開始有點起來了,但是還缺一個門檻,這個門檻就是要培訓機構推薦我到一些企業工作。我想我花了五千多一大半就是為了這個門檻吧,08年經濟危機,我想以我這樣沒有實際開發經驗的人來講,自己出去找工作確實很難的,無論我說得再漂亮,別人也不信。

二、從開發到測試

通過培訓機構搭橋面試後到珠海一家做監控設備的企業工作,名字就不說了,公司很小。領導也知道我是培訓出來的,錢也給的挺少,不到三千,安排我干一些不重要的雜活。我個人的抽象思維相對還是比較強,雖然領導和同事也不教我什麼東西,上層的一些東西我都可以自己摸索出來。而且我的習慣是先從頭到尾理清功能的邏輯思路,再寫代碼,所以工作效率很高;一般情況下一個星期其實可以閑兩天,但是我也不能跟領導說,我自己把空閑的時間就看源代碼學習。

小企業不好的地方就是,老員工喜歡保留技術,有時候他寧願幫你把問題直接修復也不會告訴你什麼原因和什麼邏輯。學到的一些東西,大多是自己學的,領導只會安排任務。在這家公司呆了一年多點,除了食堂的飯菜超級難吃以外,我也不太記得裡面有多少事情了。就這樣,覺得想要更多的薪水,我直接辭職來了深圳;畢竟,我的集體戶口還在深圳富士康啊!我還要賠富士康5000塊錢的違約金,每年10%上漲,算算已經欠了六七千了。(當然後來國家政策改了,不允許公司收離職的違約金,我11年去把戶口從富士康那裡拿出來的時候沒有賠錢)

裸辭的時候是2009年12月份,找到在深圳寶安工作的大學室友,本來想在他那裡借宿省點錢的;沒想到他和他女朋友已經同居了,我只好自己在寶安租了個單間下來,網上投簡歷。中間經歷了將近一個月的時間,沒事室友就會叫我去他家吃飯,和我一起打打撞球,玩玩遊戲。一個月之後,海輝軟體打電話叫我去面試,因為當時對IT行業不太懂,也不知道什麼是外包,就糊裡糊塗地去了。當然說是叫我去面試開發,其實就是自動化測試,招聘負責人忽悠我的。就是這個機緣巧合之下,我走上了測試這條道路。

這裡有個小插曲,當時和我一起去面試的一個哥們,跟我說他最少要7K,少了不去,建議我少於7K也不去。但我心裡想的是,哇要是有六千,工資豈不是翻倍了,原來深圳搞IT得工資那麼高!所以後來給我開6K的時候,我就去了。當然面試時要面試代碼編寫的,主要是C語言基礎,我基本上都答題了,好像是整了有八九十分吧。

三、外包到華為的測試工作

不得不說,2010年那個時候的外包行情,確實是紅紅火火。那個時候的海輝還沒有合併成文思海輝,華為也沒有投資中軟國際和軟通動力。華為對外包的活動經費什麼的也還是挺大度,好東西也經常有外包員工的份,不會覺得特別沒有歸屬感。我13年離開外包那時候就完全不一樣了,特別沒有歸屬感,文思海輝在華為的外包份額一點點都被轉交給中軟國際。

回歸到工作的正題,第一個項目做的是多媒體組件測試,雖然沒接觸過測試,但不到一個月基本上就學會了。第一個月給領導答辯的時候,我就把這個產品的物理架構和邏輯分層架構全部畫出來了,領導很滿意。個人在這方面有一些知識面的優勢,彙編、C語言、操作系統、驅動、單片機、SOC、電子電路、電氣維修、PLC,這些東西我在大學無聊從圖書館都會借過來翻一翻,都略懂一些,所以在分析產品的時候都不怎麼費力。做這個項目的時候感覺都很容易,領導也陸陸續續讓我獨立負責一些特性測試設計和腳本編寫、代碼檢視、性能設計、工具開發等相關的工作;現在回想起來,同部門的另外一個外包同事,基本上就只安排她做腳本編寫和測試執行。當時華為方的領導也還是挺信任我的,也是那個團隊的老員工教了我很多東西,讓我有很多的鍛煉機會;他們對我都很好,我一直心存感激。

第一年的過完的時候,領導給我加了800塊。在整個這個項目的前兩年,我都過的很踏實。我在華為年終抽獎的時候剛好中了一個電磁爐,然後就開始了我的做飯之旅,慢慢學會了做飯炒菜,還請同事到我家吃過兩次。那個時候的我,充滿了對未來的期望,第一年還了兩萬五的欠款,還存下來四萬,開始覺得日子有奔頭了。生活費最低的一個月,我差不多買菜只花了250塊。我想的是,一年存六萬,存三年就差不多可以付首付了;現在回頭去看,這個想法真是可笑

安穩的工作狀態很快就有了轉折。第一件影響我較大的事情,那是2012年,有一次在華為公司附近的坂雪崗那裡有個超市門口吃零食,碰到一個在銀行做開發的人。聊起來問我多少錢一個月,我說差不多七千,他說他一萬四。我問他怎麼可以拿到比較高的工資,他就只跟我說:「這要看你在公司裡面有什麼樣的擔當」,我當時一臉懵逼:什麼是擔當,領導安排的任務不就是擔當嗎?我後來還特意在網上搜索了什麼是擔當,但是體會都不深。第二件事情,有個曾經見過一面的同公司外包同事(他具體做什麼開發不知道,工作只有一年多),某天早上碰到我一起去上班,跟我說要找領導加薪到8K,不加就離職。我當時心裡就想,哎呀我都畢業六七年了,收入還比不上一個工作不到兩年的小伙。最後一件事情,就是2011年家裡的遠房親戚給介紹了一個對象。認識之後沒多久,她說想在市裡買房(那時候市中心的單價已經漲到4000了),想付首付差10萬塊錢。我聽了之後特別不是滋味,想想自己銀行卡里都還不到10萬,當然這妹子後來也沒有繼續聯繫了。這幾件大的事情之後,我就開始意識到自己不能滿足於現狀,必須努力做出改變才行。

由內向外發自內心的改變,讓我有非常強大的自我學習驅動力。半年的時間,我從網上搜索各種資料,把知識體系一點一點地整理出來,告訴自己哪些東西需要了解,哪些東西需要掌握,從測試設計方法、測試報告模板、測試流程體系、IPD流程,到無線基站原理結構圖、七號信令、香農定理、TCP/IP網路協議結構、互聯網的發展歷史及各種網路架構,等等。管它看不看得懂都強迫自己去看,基本上把華為公司內部共享路徑上那些可以公開的培訓膠片都看完了,反正《軟體測試的藝術》這本書,我看了三遍。每天都如饑似渴地學習,晚上十點才回去,有問題搜集起來找各個華為的老員工請教。這半年是我職業生涯中成長最快的半年,這半年至少打下我後來工作能力中百分之三十的牢固基礎。(題外話:後來我在各種招聘中碰到過很多從外包出來的面試者,甚至日常也見過好些從華為本公司出來的同事,他們都沒有曾經好好學習過華為公司那些擺在那裡的高價值文檔。)

12年5月的時候,多媒體項目結束了,後面在繼續外包做了兩個內部項目,都只是幾個月的時間。這個時候華為也在慢慢砍文思海輝的外包了,總體感覺安全感很低,歸屬感很差,項目結束了還要去資源池閑呆著。不過在後面兩個項目中,我都想有意無意地開始展露出我的測試能力了,包括對整個測試團隊進行技術培訓、設計項目的自動化測試方案、為項目編寫輔助的測試工具,以及幫開發分析產品的疑難雜症。這些都不是領導要求的,都是我自發地去做,每一次做出成果了我都覺得很有成就感,覺得為項目貢獻了自己的技術力量很開心。

題外話:有的朋友可能問我,跟華為這麼有緣為什麼不去華為面試?

還在外包的時候確實當時的領導安排去了一次(當然不知道領導是礙於面子還是怎麼,因為這個面試的起因是有一次聚餐,研發經理過來到我們這一桌敬酒,跟我們的測試經理說:「你看,XXX能力這麼強,幹得這麼好,要不面試一下把他招進來」),基礎技術面試就是我的老大肯定是過了。群面的時候我感覺不是特別好,題目就是現在網上老掉牙的「唐僧、悟空、八戒、沙僧四個人你會選擇哪個,為什麼?」 群面有一群面試官在隨時觀察各個面試者的表現,我沒見過這種面試場面(說實話我非常不喜歡裡面那種過於刻意表現自己積極的的狀態),也沒有表現的非常積極,自然落選了。

還有一次是華為的朋友推薦去面試,性格測試沒過關,說是有點憂鬱。因為其中有兩三道題目好像是說:「領導要開會了,你會做什麼準備嗎」、「你會事先準備好怎麼回答領導的提問嗎」,大概就這幾個。我想還是要準備好一點吧,所以都填的是「會」,結果評出來是我的憂鬱指數稍高,我也是苦笑不得。

慢慢地,跟華為的緣分也算是錯失了。現在也三十好幾了,過了華為的評估線了,那就祝願華為越來越好吧!

四、離開外包,獨立成長

當開始發現自己的能力優勢和發展方向明朗以後,就開始有意識地要離開外包公司了。不僅僅是錢,更是未來的職業發展。

正當我外包的最後一個項目要切換給中軟國際的時候,收到上家公司的一個專場招聘邀請,剛好就面試上了,就簡稱為A公司吧。在A公司做的是網路照相機,我負責這個產品的整個測試工作。

從產品的需求分析、測試設計、測試方案、用例設計,到測試輔助工具開發和自動化測試設計,等等。雖然做的是普通的測試工作,但是完整地由自己掌控了整個測試過程,甚至還包括了員工培訓和團隊管理。自己開發的產品測試工具在整個公司開始普及使用,逐漸延伸到整個生產部。對於自動化測試框架,通過使用和研究NUnit的源代碼讓我基本明白了自動化測試框架的基本邏輯。

在A公司還是以手工測試為主,自動化測試和測試工具輔助,當然在我去之前是沒有其他測試做過代碼相關的工作。當然也不免遇到與同道一樣的問題,需求文檔太簡單、流程不規範、開發話語權過大、領導不重視測試、開發踢皮球等等事情。對於這種常見的事情,我從個人建議還是以主動適應為先,然後慢慢去調整;可以提出建議,但不要期望馬上就有效果。因為在公司裡面,每個角色都有每個角色的難處,老闆也有老闆的難處。如果想要改變,那就把自己鍛煉得很強大得到各方的認可,或者讓自己坐上比較高的位置手裡掌握更多的資源和話語權。

感覺還是覺得少了點什麼,補充一點東西吧。這個IP攝像機產品獲得了巨大的成功,據估計為A公司在2014年產生了四千萬元的凈利潤,15年我辭職的時候訂單量不比14年少;前幾天在網上跟裡面一個還在職的朋友聊天,說這款產品現在還在為A公司掙錢。不過也僅僅是這一款產品,做完這個產品之後,A公司的研發團隊再也沒有湊齊過像當年這個團隊這樣強的組合:系統工程師、研發主任工程師、項目經理、測試工程師,幾個人負責人都感覺挺強的。直到昨天我在網上看到這家公司在17年虧損了將近5億港幣,原來的老員工基本上全部離職了;也是感慨物是人非,當年在一起奮鬥的同事現在也是各自找到了新的去處。

因為一些原因,還是離開了這家公司。這裡需要說的一點是,在公司的時候領導總覺得你的努力付出是應該的,你努力付出的東西有收益,老闆不一定就會給你;反倒是離開之後,公司的那些領導和朋友才體會到你的技術所帶來的高附加值,甚至對你念念不忘。後來那個項目經理跟我說加薪讓我回去帶公司的雲項目自動化,本著好馬不吃回頭草的想法,還是拒絕了他。一個月後到了現在這家公司,我稱之為B公司吧。

五、從工程師到部門經理,一路前行,前方就是自動化測試專家

15年8月入職B公司,入職就是做自動化測試工程師。這個時候薪資剛好15K,對於我來說,這也算是我一直努力一直成長的結果。雖然比起很多大公司來說不高,但我一直努力在往上爬。不過也接到過一些阿里、百度、騰訊的面試電話,但總是因為我沒有做過互聯網相關的測試沒有被考慮。客觀來說,目前普遍IT行業還確實是互聯網或金融的測試工作薪酬高一個檔次,一般做實體的企業都給的不會比較多。我當時拿這個薪酬,我的老大(測試總監)還要找老闆特批。

我本來只是面試自動化測試工程師的,結果我入職一周,我的經理就辭職走了,所有的事情總監只能安排全部由我接手。因為B公司一直想做自動化測試,然後來來回回折騰了好幾年,從QA Basic,到TCL,再到Python,換了三四波人,都做不起來。我只能先把之前老員工留下來的爛攤子維護起來再說;公司除了我,沒有其他人會寫腳本,沒人會做自動化;我從來沒有學過QA Basic和TCL,自學python也不到一個月;而這個時候,客戶和FAE不停地投訴老的自動化測試腳本有這樣或那樣的問題。當時一度我想放棄這個公司,還是前面推薦我去華為面試的朋友跟我說:「既然來了,為什麼不試一試?」

萬事開頭難,看著以前員工寫的那些連注釋都沒幾行的成篇代碼,硬著頭皮全部啃下來,把相關部門提出的問題全部修復。順便也負責了公司的BUG管理系統(IBM Clear Quest,很老的一個管理軟體),也是自己一點點地分析它的邏輯流程和資料庫結構,慢慢全部掌握了工具的基本功能修改和定製。從入職到完成這兩個動作,花了我一個半月的時間,算是在自動化測試崗位上站穩了腳跟。

做完前面兩件事情,我開始廣泛地從客戶、FAE和測試那裡接受需求,實現自動化腳本。在初步分析完前面員工留下來的python測試腳本後,我認為這種腳本寫法已經完全跟不上時代,也不能滿足公司未來的發展需要。我跟領導提出拋棄這種一個腳本一個用例的做法,我要自己根據自己的經驗和創造性,實現一個全新的測試架構。當然「測試框架」這個概念不同的人有不同的理解,可能大多數入行的測試朋友只理解的是自動化測試的各中技術框架,比如web的元素識別、windows的窗體識別等,以及這些常用技術開發者所附帶的輔助工具 - 比如selenium就是一種技術框架,外加它提供的一套便捷的使用工具。所以我在在這裡把我所認知的自動化測試框架、自動化測試測試架構和自動化測試體系這三者的區別簡單說一下:

1. 自動化測試框架:多數來說就是技術框架,根據不同產品的測試模型有很多種,比如web元素自動捕獲識別、界面捕獲識別、聲音對比技術、協議解析方法、消息收發等等。

2. 自動化測試架構:在架構裡面,測試技術框架只是一部分。架構裡面重要的是比如:測試框架的模塊化及模塊層級結構、數據驅動或關鍵字驅動、斷言系統、測試套管理、日誌系統、Fixture、參數配置系統、測試執行器、測試用例的識別/載入/執行、以及界面化的執行工具和自動的測試報告等內容。

3. 自動化測試體系:比自動化測試架構更大,涉及到環境自動部署、分散式執行、持續集成、角色管理、測試任務管理分配、測試資源管理分配,比如jenkins;甚至還有用例管理平台、Bug管理平台和自動化測試平台的聯動管理,這個就很大了,不再局限於自動化測試,而是整個公司大的測試管理體系。

一個月的時間,我每天中午都沒有休息,晚上加班到八點才回家。在試用期到來之前,我把測試架構模型寫出來了,並且開始實際應用(簡單來說我把自動化測試架構分成了公共API包、測試腳本包、界面化的測試執行器包)。試用期答辯的時候,把整個公司的自動化技術規劃寫成了一個PPT向測試總監、研發總監和研發總經理彙報,獲得了領導的高度認可。從這個時候開始,公司內部一些有想法的同事,就已經開始跟領導提出要調到我這裡來發展。

就這樣一直發展,開始培養下屬,開始招聘面試,開始根據各方的意見完善自動化測試框架(框架後來也陸陸續續做了腳本加密、用例屬性識別、日誌分割器、日誌壓縮解壓器、半自動彈窗、單PC多套自動化測試執行、設備讀寫性能提升等一些事情)。能做的事情也越來越多,員工也發展到快十人;慢慢把公司的嵌入式自動化測試、安卓自動化測試、測試用例管理平台和bug管理平台定製做起來了,期間會用到python、C/C++、C#、Java語言。期間每個季度的績效都是A,順利提升到自動化測試經理,薪酬也加到了21K。

這裡面其實有很多自動化測試技術,有機會我會再發一個帖子給大家分享。對於目前來說,我已經管理公司的整個自動化測試體系,平時除了解決自動化架構上的一些問題或修改,日常的腳本編寫工作都交給了下屬。我很欣慰的是,我努力培養的下屬,基本上從不識別代碼,到現在的一半以上都成為了骨幹員工;薪酬雖然比不上很多大公司,但已經和其他測試工程師拉開了檔次;毫不誇張的說,我培養的骨幹即使去了BATJ,照樣也是優秀的。因為我不僅僅是培養員工的測試設計能力和代碼編寫能力,我更注重培養員工的思維邏輯、思考方式、工作方法、文檔書寫能力和口頭表達能力。

六、未來的展望

寫了好多,總算到了最後一個章節。感謝那些耐心看完我的自述的朋友,這是我的榮幸。

如果公司沒有這次的變動的話,我想我還會再呆幾年。不過世界經濟在變,環境也在變,個人的力量也無法與時代抗衡;不要企圖改變世界,適者生存,做好自己就好。做好自己的這份工作,其實就是為測試行業、為祖國、為社會增添了一份貢獻。

昨天有個討論薪酬的帖子,我也回復了一下,但我看到了很多年輕人在沾沾自喜,也看到很多年輕人的自卑。所以我最後還回復了一下,不要完全用薪酬去看待這個世界,不要太浮躁,充實自己。機會是留給有準備的人,不是有準備了就一定有機會;但是如果不準備,即使有機會也抓不住。在好公司拿到薪酬比你高的人,水平並不一定比你高;也許這是每個人的機緣,不同的機緣,不一樣的人生!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 TesterHome 的精彩文章:

深度學習基礎-TensorFlow 概覽

TAG:TesterHome |