做自動化測試后悔嗎?
后悔,真的后悔!
后悔沒有早點學(xué).....
雖然到處都在散播35+的焦慮,姑且信之,那么反問你,如果你30歲了,那么給你5年,能夠在某個領(lǐng)域成為專家呢?希望你能夠在焦慮的時代靜下心來思考一下職業(yè)的規(guī)劃。文章可能有點長,預(yù)計閱讀時間8分鐘,希望在碎片化知識時代能夠引起你的短暫思考。
先說一下作為一個測試工程師,自己的“技能樹”應(yīng)該如何點亮:
?
看到這些,你還會說測試學(xué)的簡單嗎?
身為一名合格的測試工程師,是需要具備以下技能的:
* 測試基礎(chǔ)理論/測試設(shè)計能力
* 業(yè)務(wù)知識
* 行業(yè)技術(shù)知識
* 數(shù)據(jù)庫
* 掌握編程語言
* 搞定自動化測試
* 質(zhì)量流程管理
測試基礎(chǔ)理論/測試設(shè)計能力
比如說,邊界值分析、等價類劃分、因果圖、判定表、正交實驗設(shè)計等,這些基本的測試基礎(chǔ),科學(xué)的設(shè)計方法能夠很好的規(guī)范我們的行為,從而幫我們理清思路和提升效率。很多人會覺得簡答,從而忽視基礎(chǔ)的牢固程度,往往最基礎(chǔ)的地方,最難做到精通。
業(yè)務(wù)知識
這個看起來很虛,貌似沒有具體的知識點,但是做過測試的都知道,往往這部分是非常重要的。如果不懂得業(yè)務(wù)知識,那就是蠻干和瞎干。作為一個測試人員,最應(yīng)該的是從用戶的角度去思考問題,而不是開發(fā)這邊,找到核心業(yè)務(wù)和功能,然后劃分測試優(yōu)先級,定級缺陷,另外尤其對于自動化也是非常重要。舉個例子,你只有掌握了業(yè)務(wù)的特性,才能夠用自動化的手段去首先覆蓋哪些場景,把寶貴的自動化資源投入到最重要的地方。
行業(yè)技術(shù)知識
說到行業(yè)知識就海了去了。并不是我我們會一點測試方法,會運行個腳本,使用個框架就完事了,要么說測試要求涉獵的地方比較廣呢,而且還得要求你精通。比如前端的技術(shù)棧、API設(shè)計、后端服務(wù)器、數(shù)據(jù)庫、服務(wù)架構(gòu)等,如果這些知識都能夠打通,在面試的時候,面試官問你一個問題,你是能夠以點帶面的去闡述的,體現(xiàn)出來你絕對是一個優(yōu)秀的測試工程師。
數(shù)據(jù)庫
無論你是做自動化和手工測試,都要進行數(shù)據(jù)效驗,SQL語言是測試工程師必會的技能之一,掌握SQL語言,然后在數(shù)據(jù)庫找到需要的數(shù)據(jù),這個能力是必須具備的。
掌握編程語言
測試不寫代碼?那不叫測試工程師。特別是做測試開發(fā)來說,要從代碼層就開始進行質(zhì)量把控,所以掌握語言的話,能夠讓你讀懂代碼,也能讓你直接定位缺陷,同時更早的去預(yù)估風(fēng)險和難點。另一個方面就是自動化測試,去駕馭各種自動化測試框架以及用例的開發(fā)。
搞定自動化測試
對于UI自動化來說,掌握selenium和appium,非常的重要,尤其是移動端的appium,企業(yè)的重視程度更高,基本思路都是定位元素,然后操作元素,接著獲得反饋,最后用測試框架去管理測試用例。
另外對于接口自動化來說,從投入產(chǎn)出比來說,比UI自動化有很多獨特的優(yōu)勢,比如運行速率高,開發(fā)和維護成本低,而且可以和開發(fā)代碼同步開發(fā)。簡單來說,就是通過模擬瀏覽器,發(fā)送請求實現(xiàn)接口的調(diào)用,比較返回值與期望值,驗證結(jié)果。
質(zhì)量流程管理
最后要說的就是質(zhì)量管理了,對于測試人員來說,并不是單純的去做測試,而是負(fù)責(zé)業(yè)務(wù)的質(zhì)量保證。
* 作為 DevOps 關(guān)鍵角色,未來的軟件測試工程師和質(zhì)量人員必須同時具備一定的開發(fā)和運維能力。
*
測試人員會更深入介入開發(fā)工作,通過“測試左移”,提前與開發(fā)人員一起制定測試計劃,推動代碼評審、代碼審計、單元測試、自動化冒煙測試、測試精準(zhǔn)化分析以及研發(fā)自測等來保證研發(fā)階段的質(zhì)量;
* 另外,測試人員會也會參與配置部署,將自動化測試用例配置到持續(xù)交付鏈中,并通過“測試右移”,全流程監(jiān)控發(fā)布后的應(yīng)用質(zhì)量。
如果你想在測試行業(yè)成為專家,先要成為高級測開,可以接著往下看!
下面談?wù)劜煌琹evel的測試工程師應(yīng)具備的基本能力
?
第一個:我們稱之為測試員/測試工程師
直白一點說,就是干苦力活的。對標(biāo)過來就是百度的T3、T4,阿里的P5,騰訊的T1-T2。主要的工作就是需求分析,測試方案,測試策略,測試執(zhí)行,都是業(yè)務(wù)測試。當(dāng)然你能夠掌握某些領(lǐng)域知識,比如你是測無人車的,無人車的業(yè)務(wù)是什么,我測AI,AI是什么,我去測大數(shù)據(jù),大數(shù)據(jù)是什么,測的是電商,電商系統(tǒng)的架構(gòu)是什么,業(yè)務(wù)知識是要懂的。再一個是帶外包團隊,可能會有一部分的外包團隊交給這一部分人去帶。主要是也就是管理這些基礎(chǔ)的業(yè)務(wù)測試工作。
第二個:測試開發(fā)工程師
現(xiàn)在第一個level是不怎么招了,多數(shù)都是從第二個level開始招。一旦提測試開發(fā),就一定要求你懂研發(fā),懂測試,并且有一定的深入工作的能力。從這個level開始要求你的編程能力了,Java、Python、shell、SQL,這是最基礎(chǔ)的,然后是業(yè)務(wù)測試。
這部分人仍然會負(fù)責(zé)一部分的業(yè)務(wù)測試的工作。老大會根據(jù)你的能力,給你安排一個比例。你能力很強,80%做技術(shù),20%做業(yè)務(wù),如果你能力不強,那就80%做業(yè)務(wù),20%參與一部分技術(shù)。如果你的技術(shù)太low了,那就100%的全部做業(yè)務(wù)測試。所以這個時候會根據(jù)你的能力進行合理的時間劃分。這里面的要求就比剛才突然間就拔高了,客戶端的UI測試,服務(wù)端的接口測試,性能測試,基本上都屬于這個范疇。
面試的時候,性能與非功能測試,可能不會做一個主面試點,主要還是在自動化和編程能力。也就是目前大家出去找工作,你們最容易被卡的這一關(guān)。所以在這個level里面,也是干活的,也就是既做業(yè)務(wù)測試,也做技術(shù)上的改造,以及去寫一些自動化,但是仍然是偏重于業(yè)務(wù)的。
第三個:高級測試開發(fā)工程師/測試架構(gòu)師
那么到這個level,業(yè)務(wù)測試已經(jīng)非常少,甚至完全沒有了,這個時候更多的是負(fù)責(zé)整個團隊的流程管理。流程管理體系,白盒測試體系,測試工具與測試平臺的開發(fā),再一個是質(zhì)量監(jiān)控,還有一個質(zhì)量管理。通常一個團隊里面,會有一個測試的管理,加上1-2個高級的測試開發(fā)工程師,或者叫測試專家也行。他會搭建起整個的持續(xù)集成系統(tǒng)。持續(xù)集成、白盒測試、以及一些平臺的開發(fā),主要會交給這些人負(fù)責(zé)。然后他會帶2-3個測試開發(fā)工程師,這些測試開發(fā)工程師一邊跟著他去學(xué)習(xí),一邊去做業(yè)務(wù)。然后剩下的活兒,交給外包公司或者校招的人去做。
?
對于一個測試工程師,核心的競爭力有哪些?
?
?
專業(yè)技能:毋庸置疑,吃飯立足的根本,隨著你的測試技術(shù)的不斷深挖,你一定會覺得自己曾經(jīng)的測試想法是非常淺顯的,先要走管理也好,甚至轉(zhuǎn)崗也好,技術(shù)的深挖都是非常重要的;
管理技能:能夠帶領(lǐng)團隊高效的運作,高效的完成任務(wù),測試核心王道,當(dāng)然也要保證團隊內(nèi)部氛圍的和諧,促進團隊健康發(fā)展。你的技術(shù)到了一定的程度,自然會擔(dān)起一定的管理責(zé)任的。
學(xué)習(xí)能力:軟實力中最重要的一環(huán),或許聽到的比較多了,但是作為過來人建議一點,人的精力有限,把你的有限精力聚焦在最重要的方向;
溝通能力:是不是聽起來有些上頭,耳朵都聽出繭子了,自古套路得人心,但是真誠永流傳;
影響力:測試這個行業(yè),越往上,圈子越小,北京、深圳、上海、杭州這些的測試開發(fā)、架構(gòu)師類的,如果有一定影響力的,相互之間交流和學(xué)習(xí)都是非常容易的。往往越是頂尖,越樂于分享。
不進步,就淘汰!
熱門工具 換一換