做夢我都沒想過,我會在軟體測試行業一干就是10年【避坑指南】

软件测试潇潇發表於2024-04-26

我是14年畢業的,普通本科,計算機系也算是一個對口專業。那時候網際網路行業是個很不錯的發展方向,也是機緣巧合之下,讓我走上了測試工程師的道路。但是我沒想到,在這個行業一干就是10年。

第一份工作

還記得我剛入行的時候,進了一家社交平臺公司做測試,公司最開始只我人一個做軟體測試,沒有任何的流程和規範,但好在平時工作比較輕鬆。然而當我真正工作了半年,我就產生了一個疑惑:每天我怎麼就在做一些一模一樣的事啊。每天有點不完的網頁,寫不完的文件。隨著時間的消磨,讓我產生了對自我價值和崗位意義的困惑。

那時候,測試人也都愛去論壇上交流,我至今記憶猶新的是,整個版面開啟來,一半是問大家薪資多少了,另一半是“工作很多年了,感覺未來很迷茫”。每個人對迷茫的描述都不一樣,但問題本質都一樣:除了重複勞動,我們還有什麼?

一個軟體測試人員,有什麼可以是拿得出手的核心技術,有什麼能使你區別於應屆生?最重要的是在企業的不可或缺和不可替代

當時我就有這樣的想法,我不想一直做重複勞動了,即便我在剛入職的時候說,我能做好並且願意去做繁瑣工作的。但是我並不擅長機械和重複的勞動,也不喜歡重複勞動。

痛定思痛,也就是這一年開始,下定決心要把自己的專業技能提升上去。

自我成長

我開始把自己的業餘時間投入到學習中來,不過,學習的內容一定要基於自己的工作來,這樣才能把學來的技術變成工作經驗。當時由於公司的規模和產品的侷限性,我無法在那裡接觸到更多新興熱門技術。於是我鼓起勇氣,離開了那一家公司。

後來在朋友的推薦下,進了一家電商公司,當時,有一些機會在工作中做效能測試,於是,學會了用LoadRunner和JMeter,有一次需要測試MySQL資料庫的效能,用JMeter搞了半天不知道怎麼設定,結果叫一位開發的同事幫我過來很快就搞定了。

這讓我瞭解到開發知識對於測試工作的幫助,程式語言的能力會決定你測試技術的深度。

那時候,Python開始流行起來,公司產品開始選用Python開發的,所以,我毫不猶豫的選擇了Python。因為Python簡單好學,容易上手,學起來也沒花多少時間。也是因為這個在後面學習自動化測試幫助很大。

公司為了提高效率,測試必須要引入自動化的手段。注意,不是替代不替代手工測試的問題,而是必須引入自動化才能進一步提高效率。手工測試仍然在,只要他在一些領域上效率高於自動化,就仍然會繼續存在下去。

當時由於專案的原因,開始使用Robot Framework測試框架,正因為有Python的基礎所以很快就理解了Robot Framework框架的工作原理,並可以根據專案的需要開發系統關鍵字。

掌握自動化工具的原理使用起來才能更加遊刃有餘,而這也需要你有一定的程式設計基礎的原因。

隨著移動App越來越流行,乘著換工作的間隙,我還學習了一個月的appium自動化工具,也瞭解了網易開源的Airtest框架的使用。

後來,我開始針對另一個社群專案編寫Web UI自動化測試,前後做了幾個月,積累了一些經驗,開始嘗試設計Web自動化框架,當時主要還是針對Selenium API的封裝。

為什麼我越來越有更多機會去做自動化相關的工作,當然,是我先學會了這項技能,然後,公司專案又比較適合去做自動化,所以,我就嘗試去做了,最後,這就變成了我的經驗。2018年我開始做全棧工程師,和團隊一起從0開發內部管理平臺,後端用Django框架設計介面,前端用vue.js框架設計頁面,專案已經在整個公司得到應用。

這個階段跨度有點大,但應了我前面的一些思路,當你掌握的更多的技術,那麼你也會有更多的機會繼續提升自己。在這個過程中,我也養成了對於技術關注和追求的好習慣,這個好習慣一路以來對我幫助特別大,不管是在職場上,還是生活上都有很大收益,我有滿意的薪資回報,生活上也不會有焦慮。因為學習和成長讓我遠離了那些精神內耗的問題。

我的一些建議

我從13年入行到現在,從初級手工到開始做自動化測試,到現在做測試平臺開發,帶團隊。這中間真是走了很多彎路,踩了很多坑,接觸過各種公司和專案:小到初創企業,大到獨角獸公司,外資合資,自研外包,電商網站,網際網路金融。主要用過4種語言,十幾種工具,見過各種測試框架、工具平臺,寫過大大小小的類庫、工具、改造過平臺。雖然我只工作了10年,但換了7次單位,真是說多了都是淚啊。。。

我這次想分享的,是我當時轉型的經歷、對現在測試行業技術大方向的分析和轉型方向的建議。另外透過這次分享也希望揭開自動化測試、測試開發、持續整合等等的神秘面紗,讓大家瞭解真實的自動化測試相關人員的工作是怎樣的,供大家在自己轉型時參考。

如何從初級功能測試到高階自動化測試開發,達到技術提升和待遇提高的目的,是很多初級測試人必經的一個階段。作為一個過來人,對學習過程中的困難深有體會。

所以我喜歡收集整理資源,記錄踩坑到爬坑的過程。希望能把自己掌握,實際工作中用到的技術、學習方法及踩過的一些坑,記錄下來。也希望想做自動化的你一樣,透過我的分享可以少走一些彎路,可以形成一套自己的方法,並應用到實際中。

在適當的年齡,選擇適當的崗位,儘量去發揮好自己的優勢。

我的十年測試之路,一路走來都離不每個階段的計劃,因為自己喜歡規劃和總結,所以,我和朋友特意花了一段時間整理編寫了下面的《測試工程師學習路線》,也整理了不少【網盤資源】,需要的朋友可以在上方小卡片獲取網盤連結。希望會給你帶來幫助和方向。也可以加入我們一起交流技術,討論行業資訊。

1. 自動化測試必備Python程式設計

自動化測試必備Python程式設計內容
Python環境搭建
Python語法規則
Python運算子
Python資料型別
Python流程控制
物件,類,模組與包概念
Python檔案操作
Python高階應用

2. Web自動化測試基礎

Web自動化測試基礎內容
自動化測試流程概述
selenium環境搭建
常規頁面元素定位方式
xpath元素定位方式詳解
css元素定位方式詳解
元素組定位
特殊元素定位
瀏覽器操作
三種等待時間詳解
切換操作技巧
滑鼠,鍵盤操作技巧
滑鼠,鍵盤操作技巧

3. Web自動化測試專案

Web自動化測試專案內容
WebUI自動化用例編寫
unittest自動化框架:unittest組織測試用例的原理
unittest自動化框架:unittest語法詳解
unittest自動化框架:unittest批次執行用例
unittest自動化框架:用例的前置後置操作,跳過執行
自動化用例斷言
自動化測試之POM模型:POM的意義與原理
自動化測試之POM模型:POM頁面物件模型
資料驅動:DDT實現自動化測試驅動
資料驅動:yaml檔案驅動
分散式測試:selenium分散式原理
分散式測試:分散式環境搭建
分散式測試:大規模自動化測試

4. APP自動化測試基礎

APP自動化測試基礎內容
自動化框架與工具使用
ADB命令操作
Monkey穩定性測試:Monkey穩定性測試原理
Monkey穩定性測試:Monkey指令詳解(基礎引數,事件引數,除錯選項)
Monkey穩定性測試:Monkey日誌分析(日誌定位,迴歸驗證)
自動化配置項:Desired Capabilities配置文件
自動化配置項:常見配置項介紹和使用場景分析
APP介面元素檢視工具
APP元素定位:元素定位方式詳解
APP元素定位:元素組定位方式
APP元素操作:元素屬性操作
APP元素操作:常用API函式
APP元素操作:點選,滑動,輸入字元,點選座標等操作技巧

5. APP自動化測試專案

APP自動化測試專案內容
微信小程式自動化操作:Appium手勢連續性操作
微信小程式自動化操作:Appium鍵盤事件
微信小程式自動化操作:切換操作
微信小程式自動化操作:小程式自動化原理
微信小程式自動化操作:Webview元素定位
微信小程式自動化操作:小程式自動化實現
H5,Webview自動化:H5的概念
H5,Webview自動化:H5與原生頁面的對比
H5,Webview自動化:H5測試技術詳解
H5,Webview自動化:Webview元素定位,自動化實現
UIautomator2測試框架:UIautomator2測試框架介紹
UIautomator2測試框架:UIautomator2測試框架環境搭建
UIautomator2測試框架:常用關鍵字封裝,滑動,APP點選
安卓叢集服務搭建:叢集環境搭建
安卓叢集服務搭建:批次管理測試真機
Pytest測試框架+分散式執行指令碼

6. 介面自動化測試基礎

介面自動化測試基礎內容
介面自動化測試概述:介面測試的定義與意義
介面自動化測試概述:介面測試的實現方式
介面自動化測試概述:介面自動化的實現流程
HTTP協議:通訊協議原理解析
HTTP協議:HTTP與HTTP協議詳解
HTTP協議:session,cookie,token鑑權
JSON資料格式詳解:JSON與XML的比較
JSON資料格式詳解:JSON的語法規則
JSON資料格式詳解:JSON的資料型別介紹
JSON資料格式詳解:JSON的練習
Requests模組基礎:Requests安裝
Requests模組基礎:使用Requests傳送請求
Requests模組基礎:不同格式解析響應資料
Requests之session模組:session模組應用,介面請求,會話管理
Requests請求HTTP介面實戰:GET,POST,DELETE,檔案上傳
Requests請求HTTP介面實戰:介面型別,json,from-data,引數型別
Requests請求HTTP介面實戰:場景實戰演練

7. 介面自動化測試實戰

介面自動化測試實戰內容
HTTP介面測試實戰之論壇介面:專案介面文件分析
HTTP介面測試實戰之論壇介面:介面測試用例編寫規範
HTTP介面自動化測試實戰:Requests進行介面自動化測試實戰
HTTP介面自動化測試實戰:封裝HTTP請求類
HTTP介面自動化測試實戰:unittest組織測試用例
Mock server:Mock server應用場景,實現原理
基於Flask實現Mock server:Flask專案搭建
基於Flask實現Mock server:開發get,post,delete,form-data的mock
基於Flask實現Mock server:檔案上傳介面,auth認證
WebSocket協議介面:WebSocket協議介面原理
WebSocket協議介面:搭建WebSocket測試環境
WebSocket介面測試實戰:Jmeter測試WebSocket協議介面
WebSocket介面測試實戰:Python測試WebSocket介面
基於RPC協議之Dubbo介面測試:Dubbo介面測試原理
基於RPC協議之Dubbo介面測試:Dubbo基礎架構解析
Dubbo介面測試實戰:telent測試Dubbo介面
Dubbo介面測試實戰:Jmeter測試Dubbo
Dubbo介面測試實戰:Python進行Dubbo介面測試

8.持續整合專項技術

持續整合專項技術
Jenkins介紹,環境搭建:部署Jenkins環境
Jenkins介紹,環境搭建:常用Jenkins外掛安裝
構建自動化測試任務:自動化測試用例結合Jenkins構建任務應用
構建自動化測試任務:自動化測試用例結合Jenkins定時執行
構建自動化測試任務:自動化測試用例結合Jenkins批次執行
自動化傳送郵件測試報告
git倉庫的使用:git版本庫建立
git倉庫的使用:新增遠端倉庫
git倉庫的使用:克隆,pull,push,commit命令使用
Docker容器技術:Docker使用原理
Docker容器技術:Docker環境搭建
Docker容器技術:Docker在自動化測試中場景應用
流水線:構建CI/CD流水線流程

9. 自動化測試框架技術

自動化測試框架專案技術
Pytest
Pytest基礎語法
Fixture的使用
Allure測試報告:Pytest之conftest使用
Allure測試報告:整合Allure測試報告
框架搭建原理思路:搭建框架之前的準備
框架搭建原理思路:框架的意義,設計思路,程式碼模組分層思想
UI自動化測試框架搭建一:程式碼模組分成
UI自動化測試框架搭建一:搭建日誌系統
UI自動化測試框架搭建一:搭建斷言系統,報告系統
UI自動化測試框架搭建二
介面自動化測試框架搭建一
介面自動化測試框架搭建二
UI測試框架和介面測試框架一體化
HTML前端
Flask後端api編寫:Resful API開發規範,構建一套API服務

行動吧,在路上總比一直觀望的要好,未來的你肯定會感 謝現在拼搏的自己!如果想學習提升找不到資料,沒人答疑解惑時,請及時加入扣群:731789136,裡面有各種軟體測試+開發資料和技術可以一起交流學習哦。

最後感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,這些資料,對於【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,雖然不是什麼很值錢的東西,如果你用得到的話可以直接拿走:

如果你想學習軟體測試和需要軟體測試資料,歡迎加入扣扣交流群:731789136,裡面可以免費領取軟體測試+自動化測試資料+軟體測試面試寶典+簡歷模版+實戰專案+面試刷題工具和大佬答疑解惑,我們一起交流一起學習!

相關文章