編者按:每個人都想進大廠拿高薪,然而只有少數人才有破釜成舟的勇氣和高效執行的實力。
其實公司級別只是外在標簽,成長進步才是內核本質。相信霍格沃茲測試學院優秀學員 @James 從小廠測試到中廠測試開發,畢業兩年薪資翻倍的快速成長經歷,能帶給更多測試同學啟迪和力量。
公司老板是我的測試引路人
本人就讀于某普通院校,在大學期間就開始實習找工作,誤打誤撞進入一家做工業大數據的創業公司。
剛開始我并沒有明確的職業發展方向,主要是做一些環境搭建的基礎工作。但由于執行效率高,工作責任感強,在實習期間就得到公司老板賞識,并被安排負責項目測試工作,然后一畢業就順利轉正為產品研發部的測試工程師。
我的大部分工作是以功能測試為主,也出過差以及兼職各種產品、運維、售前的活,總之公司哪里有需要,我就往哪里沖。雖然起點不高,但測試工作經驗還是學到不少,對功能測試、UI自動化測試,接口自動化測試,性能測試,安全測試及兼容性測試都有涉獵。
我也會根據工作需要快速學習各種技能,比如計算機編程、網絡、存儲、調度等知識,這也為我后面學習持續集成、數據中臺等打下了基礎。
我在創業小公司學到了什么?
測試工作尤為重視結果,而創業小公司的常態則是時間緊、任務多,迭代快。
那么該如何應對這種挑戰,高效完成測試工作,順利保證項目質量呢?
在各種工作壓力、實踐摸索和坎坷經歷后,我琢磨出核心要點:梳理公司的現有產品的研發流程,明確在研發的每個階段如何開展測試工作。
簡單來說,即搞清楚開發和執行軟件測試的全流程關鍵步驟:
- 獲取需求、功能設計、詳細設計規格和其它必須文檔
- 獲取預算和時間安排需求
- 確定項目相關人員和他們的責任,匯報需求,必須的標準和過程(如版本過程、變更過程等)
- 確認應用高風險的部分,設定優先級,確定測試的范圍和限制
- 確定測試的方法——單元測試、集成測試、系統測試、驗收測試等
- 確定環境需求(軟件/硬件/通信等)
- 確定測試工具與環境(記錄/回放工具、覆蓋率分析器、測試跟蹤、問題跟蹤等等)
- 確定測試輸入需求
- 確定任務,任務責任和相應的工作量
- 設定時間安排估計、時間表、里程碑等
- 確定輸入的等價類、邊界值分析、錯誤類
- 準備測試計劃文檔和需要的評審
- 寫測試用例
- 對測試用例進行必須的評審
- 準備測試環境和測試工具,獲取需要的用戶手冊/參考文檔/配置指導/安裝指導,建立跟蹤過程,日志和存檔過程,獲取測試數據
- 獲取和安裝軟件版本
- 執行測試
- 評價和匯報測試結果
- 跟蹤問題和修改
- 如果需要進行再測試
- 在整個生命周期內維護和修改測試計劃、測試用例、測試環境和測試工具
在梳理開發與軟件測試流程后,進一步明確每個測試階段的測試工作、階段目標、主要任務、通過準則,最后再進行測試工作,也就事半功倍了。
為什么選擇成為測試開發?
兩年多的工作經驗,讓我深刻的體驗到,光有清晰的流程梳理是不夠的。在公司內部,開發,團隊與測試、運維人員之間的反饋周期太長,導致軟件研發流程和質量存在很多缺陷:
- 測試人員等待“好的”版本構建出來;
- 在新功能開發完成幾周之后,開發團隊才能收到缺陷報告;
- 運維人員一直在等待說明文檔或缺陷修復;
雖然從測試角度,我能想到多種方法來改善軟件交付的過程,但是卻難以實施落地。因為不寫代碼,不深入了解研發業務實現的邏輯,我是無法理解這個 Bug 到底是怎么出現的,做不到透過表象看本質。有時研發的一句“你不懂”,讓我覺得溝通真困難。內心被一口氣憋著,真希望自己能一個人"頂天"。
只有成為測試開發工程師,既會測試又懂代碼,才能夠最大限度的幫助研發和測試提升測試效率,進而幫助公司提升整體研發效率。這也成為我堅定不移的職業成長目標。
破釜成舟,辭職學習測試開發技能
巴菲特和芒格說過,世界上最好的投資就是投資自己。
通過搜索學習測試開發技術,我在網上了解到了霍格沃茲測試學院的課程,感覺課程大綱很全面,知識體系完整,并且由一線大廠大牛直播教學,很是心動。但一開始考慮價格原因,并沒有直接報名,只是加了助教好友,蹭了很多干貨主題公開課。
2020 年受疫情影響,很多測試工作只能遠程線上處理,然而團隊協作效率不高,項目迭代卻依然過于快速。總感覺接到測試工作之后,只能盡快完成,而很難按原計劃實施,達到好的標準。這種疲于奔命和虎頭蛇尾的感覺,讓我啞巴吃黃連,有苦說不出。
這種工作模式讓我深惡痛絕,忍無可忍,堅持一段時間后遂決定辭職,并正式報名《Python 測試開發實戰進階》課程。一方面調整自己當下的身心狀態,另一方面也是破釜成舟,充實自己,向更好的自己 —— 測試開發方向邁進!
霍格沃茲測試學院的課程體系覆蓋非常全,大廠前沿技術和發展方向都有詳細的介紹,滿滿的干貨與實戰精華!學習消化吸收了課程知識后,我直接就用到了后續找工作的面試中,并順利拿下多家公司的 Offer。最終,我選擇了某中廠年薪 20W+ 測試開發崗位,薪資翻倍,真的美滋滋~這里也再次感謝學院各位老師的指導和幫助。
學習心得和測試面試經驗
之前學院另一位同學分享的<u style="border-bottom: 1px solid rgb(55, 58, 64); text-decoration: none;">《測試人生 | 從外包菜鳥到測試開發,薪資一年翻三倍,連自己都不敢信!(附面試真題與答案)》</u>一文,給我很大的幫助,也引起了我深深的共鳴!
一定要有自己的學習方向,目標是要做到 T 字型人才,保證廣度的時候也一定要有一兩項專精,這樣才能夠在面試時候脫穎而出。
這里分享下我個人的學習路線和面試前重點準備技能:
Python->pytest->完善接口自動化框架->Shell 腳本->Docker->Linux 三劍客->服務端自動化->Web 自動化框架->App 自動化框架->前臺自動化->計算機網絡->自動化原理->MySQL->數據結構->持續集成/交付->安全->測試用例計劃思維
分享一些常見的面試題:
HTTP 部分
- 常說的“四層”和“七層”是什么?五六層哪去了?
- HTTP 的 Cookie 機制?傳遞方式是?
- HTTPS 是什么?SSL/TLS 又是什么?
- 數字簽名與證書的特點?
性能測試部分
- 怎么理解 TPS、QPS、RT、吞吐量這些性能指標?
- JMeter中,如何合理地設置參數化數據?
- 如何進行監控設計?
- 代碼級監控及常用計數器及解析?
- 隊列級監控及常用計數器及解析?
- 鏈路級監控及常用計數器及解析?例如 SkyWalking?
接口測試部分
- 沒有任何文檔,怎么快速了解接口的信息?
- 如何把流程化的測試腳本抽象為測試框架?
- 測試框架如何才能支持 Restful 風格的接口?
- 怎么用 Mock 解決混亂的調用關系?
- 如何并發運行測試用例,測試用例的順序如何控制
- 微服務模式下 API 測試要怎么做?
Web自動化部分
- Selenium定位方法有幾種?分別是?
- WebDriver核心方法和屬性介紹?
- 使用pytest重構項目、如何實現用例依賴、測試報告、數據參數化?
- 斷言的方式有?你使用過哪些?
- 測試報告如何定制,用例覆蓋度如何?
- 如何實現真正的自動化測試?
移動端自動化測試
- 控件定位方法?
- UI分層測試體系、用例結構解析?
- 純H5自動化測試?
- 小程序自動化測試?
- 基于PO模式的移動自動化測試實戰?
- 自動遍歷測試方法與常見技術介紹?
- 如何自定義Appium?
- Appium的框架原理是什么,有沒有做過二次改造
- Appcrawler遍歷測試工具簡介?
- 跨多端平臺的用例如何維護?
Devops 相關
- 基于Jenkins的自動化調度詳解?
- 持續交付中的流水線構建?及質量保證?
其實以上問題的答案,在《Python 測試開發實戰進階》課程里,大咖導師們都有細致入微的講解,這里也不一一贅述,真心推薦大家深入學習。
以上,當下的成功永遠是下一次進步的起點,我相信心動不如行動,邊寫代碼邊積累,每天進步一點點,自己也終會與測試技術大神距離更近,也希望能與大家多交流,一起進步!