前言
我21年畢業于管理類專業,干了大半年行政打雜,工作平淡無快感。性格較內向,思維嚴謹獨立。喜歡軟件測試工作內容的系統性,技術性,豐富性。以上便是轉行的最初心理,大家覺得可妥?說干就干去年6月底開始培訓學習,經過了6個月的努力學習終于在今年3月份拿到了一份13k的offer,下面和大家聊聊大家最關心的事情,我是如何轉行成功的
1、對于零基礎轉行自學者而言,看書是好的自學方法嗎?
2、該如何自學和面試?要還原目標,給轉行人員認真介紹測試行業
3、有目標后,應該怎么自學?
4、有目標后,應該怎么去面試?5、學習資源分享
一、對于零基礎轉行自學者而言,看書是好的自學方法嗎?
1、書本信息雖準確卻滯后:
看書可以,但是對于一個零基礎要找對應工作,幫助不大。
書這東西尤其技術類的,寫的深了你看不懂,寫的淺了你以為就這些。
還有就是書本的信息滯后性:書從編寫,整理,既稿件,調整再到出品發布,印刷,再到出版社售賣這是一個很長的過程,這本書拿到手往往針對前幾年的問題,日新月異的今天,未必跟得住時代行業的發展。
比如:移動端都是說:安卓&iOS,但現在給你個鴻蒙系統的你咋測?
就好比我那會兒學python下的版本就是3.5,可書上版本都是2.7,連print打印都輸出不出來,一邊看一邊查才知道寫法變了。
只有擁有實操經驗多了,再看些書其實收獲會更多。
所以對于零基礎看書不如看視頻(文章后面有關自學方法時,會推薦一些視頻)。
2、書本理論同實際缺乏關聯:
比如書本會介紹QTP和LoadRunner基礎的知識,比如:LR從錄制到手動編寫,預測系統行為和性能的負載測試??墒菍嶋H企業實操中,性能好是怎么定義?關注的指標又是什么?
且據我的了解,QTP和LR基本都是正版軟件,一般小公司用不起,大公司自己能寫不會用。除非一些投標類的公司可能會用,因為要在投標過程中體現自己軟件達到怎樣的一個標準程度。
所以書本知識,我覺得更偏重于思想,而不是實操。而領基礎轉行更需要實操。
3、書本都會有側重點,導致你很難對測試有成體系了解
出幾個測試基礎的實戰題,看你能回答上幾個:
1) adb命令,Linux命令?
2) 數據庫語言,數據庫的增刪改查語句?
3) 測試時用到什么工具?
4) 測試購物車的支付問題,壓測問題,測試流程。
5) http和https的區別?http里面post請求 和 get請求的區別?
6) bug優先級,如果開發不愿意修改bug,你會怎么處理?
7) 負載測試和壓力測試過程中逐漸增加并發用戶數負載,每次會加多少?
8) 抖音首頁的用例 ;微信發朋友圈用例;根據場景設計測試用例,關注測試用例的覆蓋度及思路清晰;
不清楚你從書里面學到的只是,能不能解決這里三分之二的問題?
通過書中的學習,對這些問題是否有思路進行解答?
以上這些問題真不是一兩本書能夠解決的,況且你現在還是一張白紙。
如果你一開始選擇的學習方向是錯誤的,那么無論你有多努力,終究還是得不到一個好結果,正所謂“選擇比努力更重要”就是這個道理。
那應該怎么學呢?【文末分享一波我的整理的學習資料】
二、該如何自學和面試?要還原目標,給轉行人員認真介紹測試行業
測試分工是非常細的,正如開頭所言:就是“信息龐雜”。在精細化分工的今天,每個行業其實都是在不斷的細分,測試也是。
舉例:移動端測試,就可以細分為安卓原生,還有鑲嵌H5頁面的,web端,桌面端,小程序等等。你會發現隨著你的逐步學習,所需要學習的知識如同井噴一般,根本把握不住。
回到測試行業,其實按工種分,就有功能測試,接口測試,性能測試,安全測試,白盒測試,自動化測試,測試開發...... 這還只是一個維度,還沒有按照業務分,團隊分。請問,面對這么多的分類,你分的請他們的區別,薪資待遇,發展前景嗎?
面對選擇題,首先不要只看選項本身,而是要還原目標。
你要問自己,選擇測試是為了什么?你最想要達到的結果是什么?
比如上圖中的兩把寶劍。你只盯著2把寶劍是選不出來的,你得看你要用來干嘛?你是要上沙場殺敵?還是要放在家里當裝飾?目標一旦確定,答案就自動出現了。
所以零基礎轉行學員,咱們要先去了解下,現在測試工作內容是什么,測試行業有什么職位,對應的薪資待遇,在公司都干什么,有什么前景。
了解后,我們再定崗位。定了崗位,我們在定學習方法和面試方法。
1、先帶你感受一下真實的測試工作內容:
簡單說下軟件迭代前、中、后都要做哪些事兒:
前期準備階段:
先是需求評審。一次評不過兩次,評審通過定稿。
研發給測試出排期,一般研發先給出排期,測試人員再根據研發排期來介入。
測試編寫測試用例(包括接口的和手工的測試用例)。 在研發前后端快進行聯調的時候保證測試用例已經寫完。 在提測前最少兩天時進行用例評審。
介入測試階段: 用例評審通過的話,測試人員分配冒煙用例(就是最基礎能保證程序跑通的用例)給參與的研發,在提測前一天或當天給出。 執行通過后,研發通過郵件告訴所有參與人,可以提測了,這時測試人員可以準入。 先執行一遍冒煙用例,通過率不足90%的直接打回,發送郵件通知所有參與人@相關研發。再次準備進入提測階段。
執行測試用例階段:
測試人員制定測試計劃,分配測試用例,在測試環境中執行測試用例,
發現問題反復進行問題定位,再跟研發來溝通問題。確定是問題,提交bug單,標題盡量簡短但是能夠突出問題本身,前置條件,操作步驟要寫清楚,能傳圖片的傳個圖片,能提交視頻的在錄制的時候盡量錄制關鍵步驟,突出問題。
開發解決問題后再進行驗證,測試階段無問題后,進入預生產環境。
都沒有問題的時候測試人員編寫測試報告,準備進入灰度,進行回歸?;叶韧ㄟ^后全量發布,還需要在線上進行關鍵功能的回歸測試。
你以為這就結束了?并沒有!
還需要記錄哪天發布了哪些內容,本次需求是什么,新增或者改動哪些,新增或修改了什么規則?新增了幾個接口,哪些重要字段,新增了哪些表,干什么用的,對應的sql語句,測試過程中有哪些問題總結一下,吸取了什么教訓或者增添了哪些知識?養成一個良好的記錄文檔的習慣,不僅僅是一種產出,也是知識的積累和沉淀,更是對自己工作的一份總結。
2、從崗位薪資待遇看:
3、從質量保證的核心業務來看
? 前臺驗收測試:web、app、gui;
? 前臺用戶體驗測試:性能、安全、耗電量、穩定性;
? 中后臺功能測試:性能、安全;
? 流程管理:持續集成、持續交付、devops;
? 質量分析:監控平臺、數據分析平臺、ai輔助平臺。
4、從質量保證的團隊建設及組成來看:
? 外包測試團隊:負責基礎功能的測試;
? 測試團隊:手工測試、自動化測試、持續集成;
? 測試開發團隊:一種是跟業務的測試負責測試中臺化,另一種利用測試技術賦能測試與研發團隊;
? 外部測試服務:提供對外的測試服務。
5、大公司小公司的區別來看:
大小公司整體來講都大差不差。不過“小公司學技術,大公司學流程”。
小公司需要身兼數職,能鍛煉人,人員流動性強,好晉升,綜合素質鍛煉較高,實用主義至上,對于技能淺嘗輒止。
大公司團隊協作性強,體系化,工作穩定,專注度高,更容易集中精力鉆某個技術。對于你可以嘗試先從手工測試干起。
去什么公司,還是取決于自己。
6、從測試各崗位發展前景來看
測試行業的整體薪資自2016年開始,幾乎年年都在漲,現在測試的薪資基本和開發一樣高,已經突破了21K。請看下方中立網站職友集有關測試的薪資截圖,看看上漲趨勢。
測試均薪能年年漲,直接原因是高薪的自動化測試不斷涌入,正逐步替代低薪的手工測試
以前一個公司只需要少量的技術好的測試人員,以及大量的初級手工測試既可。
現在企業減員增,公司的測試人員少了,要求自然就高了。低薪的純功能手工測試的需求量越來越小,更高薪的接口測試、自動化測試、性能測試等崗位的需求量則在不斷增加,推動著測試行業的整體薪資一路上漲。
當前市場環境還會加快替代速度,也導致自動化測試還處于緊缺中。
所以如果你轉行的目標,和我說料想的一樣,就是為了今后的發展,為了有更好的薪資。
那么你的而目標應該以自動化測試、測試開發,作為轉行目標。
三、定好自動化測試目標后,應該怎么自學?
雖然我們已經定好自動化測試、測試開發,作為轉行目標,但測試開發屬于高級測試,自動化測試屬于中級測試。
所以對于轉行的自學者而言,我們先以自動化測試為目標,工作一段時間后,再轉行到測試開發中去。
定好自動化測試目標后,那就可以避免東學一點,西學一點。
有的同學,學的面很廣,知識很雜,但沒有一個能深入進去的部分。學了也不知道干啥用,怎么用。極其耗費精力不說,還無法對焦關鍵點,很容易從入門到放棄。
這都是以為沒有目標,無法系統的學。
既然選擇了自動化測試,你需要系統的去學習,現在帶你對知識點進行剖析:
要做自動測試,最起碼要掌握一門語言,比如:python,
還要要了解:測試基礎,測試理論,敏捷測試流程...
還要掌握:linux命令,mysql數據庫,移動端adb命令,
還要掌握各類工具:jmeter,postman,LR,selenium
看起來還是比較散,那就直接上圖吧:
四、有目標后,應該如何去面試?
很多自學者,因為自己沒有實際工作經驗,沒有實際業務支撐,或者怕自己學的不夠扎實,從而不敢去面試。其實大可不必。你應該跳出自己是求職者的身份,來看面試工作。
1、如何讓自己面試不緊張?
對人力工作的一些介紹:人力的作用就是招人。
如果他們招不到人,則會被測試經理向老板控告他們不作為,以至于耽誤工作。所以他們也有壓力,所以面試就是一場博弈(如果面試緊張,想想人事的壓力)。
所以找工作,是一種雙向選擇,我們和面試官是平等的。要不卑不亢,這樣回答問題也就能淡定些。
2、了解面試官到底在考核什么
舉例我比較熟悉的測試,我們在面試中常見的面試題會有這些:
1、如果一個bug被提交后,開發人員認為不是問題,怎么處理?
2、冒昧的問下,像你這種水平的測試人員非常緊缺,你為什么要離職呢?
3、在軟件測試行業,你的職業規劃是什么?
4、看你簡歷介紹你之前那不是計算機專業的,怎么從事測試這個行業了呢?
5、面試官問:如何使用SQL快速插入100000條數據?
6、你上家公司,一個項目中測試工作如何介入的?
7、給你一個物件(花瓶、筆、桌子)你怎么測試?
8、你們公司測試通過的標準是什么?
9、沒有需求文檔,你會如何執行測試?
10、在測試環境出現偶爾出現的BUG,你會如何處理?
11、給你一個網站你如何開展測試工作?
12、看你簡歷你做過app端測試,也做過web端測試,你能介紹下,APP測試與WEB測試有哪些不同之處?
13、看你簡歷項目經驗豐富,請問針對項目如何寫測試計劃?
如果我們要將上面的面試題歸歸類的話,其實可以歸類為技術、態度、潛力這三個方面。
比如考核技術類的:
1、如何使用SQL快速插入100000條數據?
2、你上家公司,一個項目中測試工作如何介入的?
3、給你一個物件(花瓶、筆、桌子)你怎么測試?
4、沒有需求文檔,你會如何執行測試?
5、在測試環境出現偶爾出現的BUG,你會如何處理?
6、給你一個網站你如何開展測試工作?
7、看你簡歷你做過app端測試,也做過web端測試,你能介紹下 APP測試與WEB測試有哪些不同之處?
8、看你簡歷項目經驗豐富,請問針對項目如何寫測試計劃?
比如考核工作態度類的:
1、如果一個bug被提交后,開發人員認為不是問題,怎么處理?
2、看得出來你真的是出自實戰,非常不錯。冒昧的問下,像你這種水平的測試人員非常緊缺,你為什么要離職呢?
比如考核潛力這類的:
1、看你簡歷介紹你之前那不是計算機專業的,怎么從事測試這個行業了呢?
2、在軟件測試行業,你的職業規劃是什么?
3、看你簡歷已經做了快2年測試了,能講講你對測試的認識和行業的發展么?
所以你面試的時候,要準備好這3類問題。
如果遇到不會回答的問題,可以說不清楚,但一定要記得體現你的態度和可塑性。比如回答回家后會關注這個問題,或者回答下你的分析思路。
比如:面試官問了這樣的一個問題:“你從事測試這個行業至今一共提了多少個bug?”
你可以告訴面試官,沒有算過。但可以補充:測試的迭代周期是怎樣的,一次迭代差不多能有多少個bug,你干了多少年測試,告訴一個估值。
這樣給面試官留下:邏輯還很清晰,思維還敏捷,可塑性上得滿分。
3、面試也是一種學習方式可以了解自己的不足:
之前有去一家大廠面試,對于自己感觸很大。
當時對方問我做過接口相關的測試么。我說當然做過。
對方就讓我簡單聊下狀態碼,我心想這還不簡單。
突然面試官說:“502是什么意思,什么問題導致的?”
我:“服務端錯誤。”
面試官:“服務端什么錯誤?”
我:“emmm服務端報錯。”
面試官:“ok那500什么意思?”
我:“emmm服務端報錯?!?/p>
面試官:“那502呢?”
我:“這...我不知道。”
面試官:“ok,404知道吧?”
我:“知道,訪問頁面不存,可能是用戶地址輸入錯誤導致,或者該頁面...。”
面試官:“好好但并沒有打算問你這個,我是想問:它有返回值么?”
我:“emmm有。”
面試官:“返回的是什么數據類型?或者說他返回的數據類型應該是以點什么為結尾的?”
我:....
當然后來面試官也問了些其他問題,最后面試也沒過。
其實面試結束的時候也可以跟面試官交流下。他也表示就狀態碼,按照類別分:200是正常的,300重定向,400客戶端錯誤,500服務端錯誤,大家都了解,又怎么能看出誰好誰壞呢?
404、502這種也很常見,我們要通過狀態碼不僅僅去看問題,同時也要知道如何去進行分析、定位、排除,不是說看到這個狀態碼,我們去百度查一查就能解決的。需要的是了解數據在各個節點中究竟反應了什么問題,尤其是在實際生產作業的時候。
面試后路上想一想,在此之前對狀態碼的理解和了解太淺薄了,并沒有實際掌握。所以對自己而言,還需要靜下心,在接下來的學習,要更深,思考更廣。
所以勇敢去面試吧。
技能提升
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走
這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。希望對大家有所幫助…….
關注我的微信公眾號:【程序員小濠】即可獲取這份資料了!
如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加入我們的群:779450660 大家一起討論交流,里面也有各種軟件測試資料和技術交流。
如果對你有幫助的話,點個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。