目錄
到現(xiàn)在為止,自己已經(jīng)在測試行業(yè)8年,畢業(yè)后一直從事傳統(tǒng)IT項(xiàng)目的黑盒測試,今年8月份從工作了8年的公司離開,加入到現(xiàn)在一家互聯(lián)網(wǎng)行業(yè)中還算的上大的公司,現(xiàn)在已經(jīng)過去4個(gè)月,在新公司的工作開始逐漸熟悉,算是完成了一次從傳統(tǒng)轉(zhuǎn)互聯(lián)網(wǎng)的轉(zhuǎn)變,而自己也即將度過人生的35歲,在這里分享一下自己這一年的感受。
在這之前,在自己從事的領(lǐng)域得到了公司和領(lǐng)導(dǎo)的認(rèn)可,是一個(gè)小團(tuán)隊(duì)的leader,在公司也獲得過很多榮譽(yù),但是隨著時(shí)間的推移和對行業(yè)的認(rèn)識越來越深,也許是遇到了發(fā)展的瓶頸,感覺自己再發(fā)展未來幾年可能還是沒有太大的變化,從17年底便逐漸開始了自己嘗試其他的機(jī)會。
面試
從開始準(zhǔn)備到一直到19年6月份,面試現(xiàn)在這家公司,大概經(jīng)歷了1年半的時(shí)間。整個(gè)的過程大概現(xiàn)場面試了十幾家公司,電話聊過的也不少,有同行業(yè)的大公司,互聯(lián)網(wǎng)公司,外企,國企,總結(jié)了自己的一些感受
1. 年齡大找工作一定要有目標(biāo),不能太隨便
也許是年齡大,也明白自己經(jīng)沒有太多的選擇機(jī)會,所以每一次選擇都要慎重,所以我給自己定的目標(biāo)是一定要是大公司或者有發(fā)展前景的公司,而且給自己定了原則,行業(yè)>公司>業(yè)務(wù)方向,理想公司用一句話概括就是行業(yè)發(fā)展好的行業(yè)的大公司的核心業(yè)務(wù),保證幾年后不會從頭再來并有積累,所以一些小公司或者自己不太看好的公司的面試邀請基本上都是電話聊聊然后婉拒。
定了目標(biāo)和原則,開始找方向,最后結(jié)合自己情況確定了幾個(gè)方向,人工智能,大數(shù)據(jù),云計(jì)算,在線教育醫(yī)療等,然后就開始看對應(yīng)行業(yè)的公司對測試崗位要求,提煉招聘要求的共同點(diǎn),主要是技術(shù)要求和工具,例如自動(dòng)化,CICD,python語言,Linux操作,性能接口測試等,這些也就是測試的核心競爭力;然后對齊自己的能力,看怎么補(bǔ)齊,但是發(fā)現(xiàn)如果這些都要學(xué),學(xué)習(xí)成本太大了,平時(shí)工作肯定沒有時(shí)間,之前也嘗試過學(xué)習(xí),但是到最后都放棄了,在我迷茫的時(shí)候,抱著試試看的心態(tài),有幸參加了一次公開課,發(fā)現(xiàn)上的課正好可以幫補(bǔ)齊這些能力,便沒有太多猶豫就開始了學(xué)習(xí)之旅。后邊也證明自己選擇是對的。
2. 代碼能力是整個(gè)IT行業(yè)的核心技能,也是對整個(gè)行業(yè)從業(yè)者的要求
剛開始工作的幾年并沒有意識到代碼能力的重要性,也是自己當(dāng)初代碼能力不強(qiáng)所以才選擇了測試,一直對代碼都是有意回避,但是慢慢發(fā)現(xiàn),隨著中國IT行業(yè)發(fā)展和成熟,測試工作不再像當(dāng)初那樣容易,重復(fù)性工作和業(yè)務(wù)快速發(fā)展需要更可靠更快的自動(dòng)化測試來代替一部分人工,就像《google測試之道》里講到的測試規(guī)模,當(dāng)業(yè)務(wù)到一定規(guī)模后,google每天數(shù)以億計(jì)的源文件,億萬行代碼在幾十萬格瀏覽器實(shí)例上執(zhí)行,還要被不斷地測試和發(fā)布,是不可能靠人工來完成。況且一個(gè)大公司招聘如何來區(qū)分你是高級還是初級,一個(gè)硬性指標(biāo)就是代碼能力,代碼能力代表了你的學(xué)習(xí)能力你的工具能力,雖然工作中不可避免點(diǎn)點(diǎn)點(diǎn),但是代碼已經(jīng)成為必不可少的能力。所以想要在IT繼續(xù)發(fā)展下去必須要懂一門語言。當(dāng)初幾年浪費(fèi)了,現(xiàn)在已經(jīng)35,學(xué)習(xí)代碼還來得及么?當(dāng)然來得及,最好的機(jī)會是幾年前,其次是現(xiàn)在,35正是精力和經(jīng)驗(yàn)的高峰期,也許你沒有年輕人的反應(yīng),但是思維和思路更成熟,對業(yè)務(wù)的理解更深入,把自己的想法用代碼實(shí)現(xiàn)業(yè)務(wù)也順其自然。
3. 溝通表達(dá)很重要,把自己做過的事情做到極致,然后能講出來
一個(gè)新公司的面試官,他不了解你的過去,如果你是跨行業(yè)的,那他更不了解你的背景,他能唯一判斷你是否能勝任的標(biāo)準(zhǔn)就是,你之前做的事情的程度,是否足夠好,足夠明白,如果之前做得好,那么你過來做也不會太差,反之亦然。所以在換工作之前,你要能夠把你之前做的事情想透徹搞明白,
4. 心態(tài)要好
面試就像找對象,找一個(gè)十全十美的很難,但要有自己的選擇標(biāo)準(zhǔn),而且要堅(jiān)持自己的初心,對自己的選擇要堅(jiān)持,在今年4月份獲得行業(yè)大佬HW面試機(jī)會并通過,但是方向仍然是和自己從事的傳統(tǒng)的方向一樣,雖然待遇各方面條件都不錯(cuò),但和自己最初選擇的方向背離,經(jīng)過艱難的考慮,還是放棄了這個(gè)機(jī)會,堅(jiān)持了自己當(dāng)初的目標(biāo),拒絕了這個(gè)在前幾年都特別想去的公司,錯(cuò)誤的時(shí)候遇到了對的人,最好還是放手,現(xiàn)在看來,雖有點(diǎn)遺憾,但是也沒有后悔。
5. 機(jī)會總是留給有準(zhǔn)備的人,勿浮躁,先沉淀,厚積薄發(fā)
說起當(dāng)時(shí)面試這家公司,也有幾分幸運(yùn),面試可以說是超常發(fā)揮,一方面面試官問的問題,正好是上周剛講過的知識,另一方面,本身自己也帶了電腦(并不是刻意帶的,正好要從電腦里拷貝東西到公司電腦,晚上去面試順便帶著了),展示了一下寫過的代碼,所幸出的題目也不是很難,所以之前無數(shù)次落敗的代碼這關(guān)算是通過。雖然僥幸,但是多虧自己當(dāng)初的學(xué)習(xí),再想想自己精心準(zhǔn)備反而被鄙視的境遇,也許是上天給自己的努力和之前多次失敗的一個(gè)回報(bào),如果自己之前沒有寫或者沒有好好上課,即使有機(jī)會也會白白浪費(fèi),機(jī)會總是留給有準(zhǔn)備的人。
轉(zhuǎn)行的困難
入職后發(fā)現(xiàn)跟自己之前的工作是完全不同,自己8年的積累在新環(huán)境中完全用不上,找工作入職是萬里長征才走了第一步啊,面對剛?cè)肼?年的年輕同事樣樣精通,自己這個(gè)老家伙卻什么都不懂,像個(gè)門外漢,壓力可想而知,不過慶幸的是他們說的詞兒我并不是特別理解,但在學(xué)習(xí)的課上基本都有涉及,有HTTP,linux,python接口自動(dòng)化,mysql,讓我在面對如此情況時(shí),至少還不至于太慌張,遇到自己不懂的東西,一邊查筆記一邊從網(wǎng)上搜,一邊厚著臉皮問,在同事的幫助下,逐漸熟悉了業(yè)務(wù)和工作,度過了煎熬的前三個(gè)月。
轉(zhuǎn)身互聯(lián)網(wǎng)必備技能:
· python 或java接口測試框架,接口自動(dòng)化測試性價(jià)比較高,投入產(chǎn)出比高,復(fù)用率高,可以長久使用,可以快速驗(yàn)證和迭代,一般產(chǎn)品接口層定義好后不會改變,做一次后可以一直用,相對于UI自動(dòng)化投入產(chǎn)出比高,是做自動(dòng)化的首選,也是自動(dòng)化測試工程師必需要掌握的技能。
· HTTP及接口調(diào)試方法–建立和開發(fā)的溝通,使用常見的頁面抓包工具定位問題,也是測試工程師最基本的技能(這項(xiàng)最基本技能在我剛?cè)肼毜臅r(shí)候也是不會的-_-||),一般頁面接口出錯(cuò),拿到接口報(bào)錯(cuò)對于定位問題非常重要,報(bào)錯(cuò)信息也是開發(fā)首先要看的,如果能看明白報(bào)錯(cuò)信息或者將有用的第一手信息準(zhǔn)確提供開發(fā)解決問題,無疑將大大提升解決問題的效率,更重要的是能獲得開發(fā)的認(rèn)可
· Linux系統(tǒng)使用及shell腳本,測試環(huán)境很多都是在虛機(jī)或者docker上,這些大多都是linux命令的文件操作,所以常見的增刪改查(ls,tail,less,cp/scp,vim),搜索(find,grep),狀態(tài)管理(ps,server),調(diào)試命令(curl)等最常用命令,工欲善其事必先利其器,只能熟練掌握最基本的工具,看似不可能干完的事兒,一個(gè)腳本幾分鐘搞定,這就是工具的威力。
· 數(shù)據(jù)庫常用命令,增刪改查,建庫建表,尤其是各種查詢,雖然用的不太多,但是開發(fā)大拿定位問題的時(shí)候偶爾會說我這沒有環(huán)境,那個(gè)數(shù)據(jù)庫的信息你看看,這個(gè)時(shí)候你能搞定,開發(fā)也會對你另眼相看(雖然我還沒有遇到過這樣的情況_)
· docker(容器)的使用,docker快速高效的特性在部署中優(yōu)勢明顯,常見的docker的創(chuàng)建,啟動(dòng),鏡像的創(chuàng)建,拉取,上傳,配合鏡像倉庫的使用,讓測試環(huán)境的搭建便捷不少。
· git,jekins,postman,jmeter,nignx等也是測試必備的工具技能,這些雖然不是很難,但也是常用必備的技能。
以上的技能課上都有涉及,但是真正轉(zhuǎn)換為自己的能力還必須經(jīng)過自己的練習(xí)實(shí)踐再練習(xí),其實(shí)我在課上學(xué)的很一般,或許是從來沒有接觸過,很多東西對我來說很陌生,但是進(jìn)入新公司,真正用到的時(shí)候才能感受到課上學(xué)習(xí)東西的作用,然后再把課上的筆記和視頻拿來復(fù)習(xí)一下再從網(wǎng)上搜搜相關(guān)應(yīng)用,很快就能搞明白是怎么回事。再次想想當(dāng)初學(xué)習(xí)的課程,真的替我最大程度的節(jié)省了學(xué)習(xí)的成本,知識點(diǎn)技能都總結(jié)的很到位,省去了不少時(shí)間和精力,如果是自己學(xué)的話,恐怕最后還是從堅(jiān)持到放棄了。
關(guān)于35歲
35歲并不可怕,前幾天面試一個(gè)剛被裁員的知名外企大齡女測試工程師(年齡比我大得多),依然保持對技術(shù)的熱情和與時(shí)俱進(jìn)的學(xué)習(xí)能力,溝通能力,selnium,java,自動(dòng)化框架,shell腳本樣樣精通,獲得了領(lǐng)導(dǎo)的認(rèn)可,應(yīng)該也很快會獲得新的工作機(jī)會,所以35也不必焦慮,身邊很多35+的技術(shù)人成為部門負(fù)責(zé)人,架構(gòu)師或核心工程師,他們的經(jīng)驗(yàn)是不能用技術(shù)衡量的,當(dāng)然擁有這樣的經(jīng)驗(yàn)需要不斷的學(xué)習(xí)和沉淀,35歲不是工程師的終點(diǎn),也許才是起點(diǎn)。
作為一個(gè)過來人,對學(xué)習(xí)過程中的困難深有體會。所以我熱衷于收集整理資源,記錄踩坑到爬坑的過程。希望能把自己所學(xué),實(shí)際工作中使用的技術(shù)、自學(xué)方法、心得及踩過的一些坑,記錄下來。
更希望想自學(xué)的你一樣,通過我的分享可以少走一些彎路,可以形成一條自己的體系,并應(yīng)用到實(shí)際中。當(dāng)然,也真心地希望你們升職加薪,或許這才是最實(shí)際的吧。
如果你也有類似的困惑,那么我整理的視頻資源和文檔會是你的良師益友,或許可以給你帶來一些實(shí)際性的幫助與突破。
學(xué)習(xí)路線:測試工具使用->Python編程->測試框架->測試框架開發(fā)
一、測試工具使用
首先是測試工具的使用,比如說我要去進(jìn)行web自動(dòng)化是不是我要去進(jìn)行自動(dòng)化測試環(huán)境搭建,環(huán)境工具。比如說去安裝Python安裝,這些環(huán)境安裝。
至于AppUI自動(dòng)化,除了上面的一些技能還要會比如說adb的命令,app的環(huán)境,app的壓力測試之類的。
接口測試其實(shí)也是一種功能測試,但是它并不等于功能測試,因?yàn)閷τ诮涌跍y試的話也分為1.接口功能測試(需要借助工具進(jìn)行測試);2.接口壓力測試;3.接口安全性測試。而且接口的功能測試是需要借助工具來完成,工具的話就有比如:Postman、Jmeter;抓包的工具fiddler等。
二、Python編程語言
編程語言的能力會決定你測試技術(shù)的深度,我當(dāng)時(shí)學(xué)的是Python語言,了解編程的都知道Python對新人比較友好,相比其他編程語言來說會比較簡單。
在網(wǎng)上找了很多的學(xué)習(xí)資料和學(xué)習(xí)視頻,但是學(xué)起來就會遇到很多問題,沒有人能幫我解答,還有很多編程的相關(guān)知識,也不太懂,自己一個(gè)人學(xué)起來很費(fèi)勁的。容易從入門到放棄
所以也是到處去找那種軟件測試的學(xué)習(xí)社區(qū),有幸遇到了一位測試行業(yè)的技術(shù)大佬,進(jìn)到了一個(gè)很不錯(cuò)的學(xué)習(xí)交流群內(nèi),里面有很多人都和我一樣想要提升,所以都在一起學(xué)習(xí),有什么問題都會在群里相互討論、技術(shù)交流,這也極大的提高了學(xué)習(xí)效率。
現(xiàn)在我也找了很多測試的朋友,做了一個(gè)技術(shù)分享的交流群,共享了很多我們收集的視頻教程和技術(shù)文檔。如果你不想再體驗(yàn)自學(xué)時(shí)找不到資源,沒人解答問題,堅(jiān)持幾天便放棄的感受,可以加入我們一起交流。(需要的群號小伙伴點(diǎn)贊關(guān)注私聊回復(fù)1即可)而且還有很多在自動(dòng)化,性能方面有一定建樹的技術(shù)大牛,分享他們的經(jīng)驗(yàn),還會分享很多直播講座和技術(shù)沙龍,可以免費(fèi)學(xué)習(xí)!劃重點(diǎn)!開源的!!!
Python是軟件測試進(jìn)階的第一步,我們需要掌握Python編程語法,具有一定的編碼能力,為基礎(chǔ)自動(dòng)化測試做準(zhǔn)備,其次還要掌握Python在自動(dòng)化中的應(yīng)用、掌握代碼的函數(shù)封裝、類封裝的技能。
三、測試框架
我們還要懂測試框架,Selenium,appium,unittest,pytest,這都是一些開源的框架你至少要懂中間的一到兩個(gè)。
比如說做WebUI自動(dòng)化的話,我要懂Selenium+python;做AppUI自動(dòng)化的話,我要懂a(chǎn)ppium+python。
如果是進(jìn)行接口測試的話肯定也是需要去做一個(gè)接口的框架,比如:requests。
? 測試框架開發(fā)
一般一個(gè)框架的誕生過程會經(jīng)過三個(gè)階段:
1.學(xué)會使用
大致了解框架的使用,可以去看框架的官方文檔,一般里面都有詳細(xì)的介紹,安裝之后便可以開始嘗試直接拿它來做項(xiàng)目。
2.閱讀源碼
想要提升自己的能力、達(dá)到進(jìn)階的效果,當(dāng)然不能只局限于框架的使用層面上。需要自己多花幾周甚至幾個(gè)月的時(shí)間去閱讀框架的源碼,這樣有助于框架使用過程的各種問題的處理和排查。
3.自研框架
自研框架的要求就比較高,一般都是企業(yè)對性能有極高的要求,所有的開源或商業(yè)的框架都無法滿足公司需求才會走上自研的道路。我們可以嘗試分析整個(gè)框架性能瓶頸,用更高性能的語言替換關(guān)鍵模塊,或用尋找、研究更好的算法去實(shí)現(xiàn)關(guān)鍵功能。
關(guān)于這些知識點(diǎn)的掌握肯定是需要自己多花時(shí)間和精力的,關(guān)于這些學(xué)習(xí)資料和學(xué)習(xí)教程你可以去咱們交流群的群文件直接獲取,還很多錄制的視頻教程,大佬的講解非常詳細(xì),能夠幫助你快速理解與掌握。
根據(jù)這個(gè)學(xué)習(xí)架構(gòu)路線,不斷地去摸索與提升,突破技術(shù)的瓶頸,可以說,這個(gè)過程會讓你痛不欲生,但只要你熬過去了。以后的生活就輕松很多。正所謂萬事開頭難,只要邁出了第一步,你就已經(jīng)成功了一半,等到完成之后再回顧這一段路程的時(shí)候,你肯定會感慨良多。我也是走過這樣一段路,才能獲得更多高薪職位的機(jī)會,付出終有回報(bào),也算是對我能力的一種認(rèn)可吧,真正的證明了自己的價(jià)值。至少稅后30+的薪水是我當(dāng)前狀態(tài)下比較滿意的。
如果說你在自動(dòng)化測試工程師階段還想往性能測試方面去進(jìn)行發(fā)展,要求就會更多了,其實(shí)性能也是一種自動(dòng)化。所以第一個(gè)你也必須要掌握一門編程語言,第二個(gè)語言腳本,第三個(gè)指標(biāo),第四個(gè)調(diào)優(yōu)。
最后我也整理了一些軟件測試學(xué)習(xí)資料,對于學(xué)軟件測試的小伙伴來說應(yīng)該會很有幫助,為了更好地整理每個(gè)模塊,我也參考了很多網(wǎng)上的優(yōu)質(zhì)博文和項(xiàng)目,力求不漏掉每一個(gè)知識點(diǎn),很多朋友靠著這些內(nèi)容進(jìn)行復(fù)習(xí),拿到了BATJ等大廠的offer,這份資料也已經(jīng)幫助了很多的軟件測試的學(xué)習(xí)者,希望也能幫助到你。需要的小伙伴點(diǎn)贊關(guān)注私聊回復(fù)1即可。軟件測試,與你同行!陪你成為優(yōu)秀的測試工程師!
既然都看到這里了,請你幫個(gè)忙:
1、點(diǎn)贊,讓更多小伙伴看到;
2、關(guān)注我,持續(xù)更新測試干貨。
敲字不易,如果此文章對你有幫助的話,點(diǎn)個(gè)贊收個(gè)藏,給作者一個(gè)鼓勵(lì)。也方便你下次能夠快速查找。