功能測試轉向自動化測試 / 開發。10年 心路歷程——願測試人不再迷茫

程式設計師一凡發表於2020-10-23

十年測試心路歷程:

由於歷史原因,大部分測試人員,最開始接觸都是純功能介面測試,隨著工作年限,會接觸到一些常用測試工具,比如抓包,資料庫,linux等。

我大學學的計算機專業,有一定的程式設計基礎。我的軟體測試職業開始和大多數測試人員一樣,一開始在一家電商公司做軟體功能測試。

有人留言問到我,在一線城市做功能測試,如果定個小目標,想拿到年薪二十萬,需要具備哪些技能?

首先必須熟練整個產品的業務流程、業務是基礎,這樣保證產品在快速迭代時、不僅保證新功能的完整性,而且快速回歸原有功能不受影響。

然後需要掌握一些常用測試工具來輔助測試:

Web端測試:瀏覽器開發者工具使用,network、console控制檯、相容性測試

移動端app測試:(安卓/IOS/ipad端)測試全流程,相容性測試、穩定性測試,流暢度測試、adb常用命令

服務端:掌握介面測試、抓包工具使用、如何校驗介面的完整性

Linux:常用shell命令,檢視錯誤日誌

資料庫測試:熟悉資料庫表結構,掌握常用增刪改查sql語句,便於分析測試結果。

常用工具使用:SVN/git版本控制工具 、postman、jenkins應用打包和構建

換句話說,如果你拿到一個新的產品測試功能,你如果能通過資料庫的表結構,和分析系統日誌來快速的熟悉產品業務,說明你的測試思維,功能測試能力已經非常優秀了。

當時我掌握了以上技能點,在公司將工作效率提高了,相對比較輕鬆,這就導致我有充足的時間,拾起程式語言,最初用的java語言,然後學習各種自動化測試技術,當時覺得自動化測試特別有意思,而且挺神奇,激發了我濃厚的興趣。

後來發現Python語言越來越火,而且我發現python來做自動化和對於程式設計基礎比較薄弱的測試工程師來說特別的合適,

python還能用來爬蟲,用python還能寫一些定時指令碼,資料庫指令碼,效率非常高。
放棄了年薪二十萬的offer,挑戰自動化測試:

我當時在公司得到了領導的信任,待遇方面工資加上年終獎,年薪能達到二十萬。

但是在由於當時公司規模和產品的侷限性,導致自動化測試始終未能應用到公司實戰專案中。我覺得外面的世界很大,自動化已經流行而且越來越普及,我想要突破自己的測試技術瓶頸,我毅然決然的跳槽一家公司專職做自動化測試工作,

於是我頂住壓力,不斷的系統學習自動化測試技能,而且學以致用。

我將公司產品前後端的自動化測試全部落地實現。

那些自動化指令碼真正成為公司資產,在每次上線迴歸帶來的收益遠超出我的預期。

並且定時在公司的技術分享會展示效果,那種從0到1的成就感非常難忘。

後面負責自動化測試團隊工作,核心框架搭建

學習用到的技術棧包括Python語言、Selenium、RF、Requests、Jenkins、以及見識到先進主流的Docker容器技術,持續整合等

讓我見識到技術的魅力,技術功底的提升能讓整個人非常自信。

所以自動測試給我帶來的收益不僅僅是待遇的提高,包括中間做自動化測試遇到的坑,解決問題的思路,以及技術的擴充套件,增長了見識。

最終形成了一套知識框架體系,得到一套有效落地的自動化測試方案。

自動化測試心得:

自動化測試沒用的誤解?:

自動化是測試工程師一個永恆的話題,關於有人經常問到我:

至於"自動化測試真的可以提高效率嗎?我覺得不行”,我覺得這是對自動化測試意義的最大的誤解。

一個知識比如自動化你覺‎得‎沒有‎用,是因‎為你不‎會。而你不會的東西,往往是你的雷區

那我們為什麼又要做自動化測試?我認為最大的意義在於,對測試人員的能力的固化。

指令碼可以代表測試人員的測試方法,通過指令碼就把在原來在人身上的能力,固化為組織的資產。

比如:造測試資料,跑大量資料庫指令碼,頁面服務監控等

自動化測試指令碼,能讓不同的團隊即使不懂這個功能的人,也可以通過測試指令碼來分享這種能力,這才是自動化的意義。

關於測試開發

後來一個機緣巧合,朋友推薦我去一家金融公司做測試開發,負責開發公司定製化的測試質量平臺。

這對於我來說也是一個挑戰,新的領域,測試開發在一線城市非常吃香。當時的待遇比初、中級開發工程師要高。

到崗後頂住壓力,不斷的系統學習測試開發技能,而且學以致用。技術架構採用的是前後端分享,包括Python的後端開發框架Flask,前端框架vue,elementUI元件等

堅持做了幾年的測試開發,真實的體會到測試開發等於測試全週期的工作,包括產品功能業務熟悉,

測試平臺的需求設計,平臺前後端研發,平臺的自測,給到測試部門幾十號人的推廣、培訓產品使用、運營。

所以測試開發的大前提是功能測試經驗豐富,介面自動化,UI自動化非常熟練,不然很難以開展測試開發工作。

目前測試平臺專案研發已經完成並且在Github開源,有興趣的朋友可以去Github下載https://github.com/ooqitech/ATP

測試行業的現狀

現在測試行業的的趨勢,你去面試任何級別的測試工程師都會問你是否會自動化測試,所以自動化測試已經是必備技能,而不是加分項。

換句話說,會用開源的測試工具不足以在公司漲薪或者跳槽至一線網際網路大廠。因為真正企業自動化測試落地肯定是一個團隊在做,

當你熟悉使用這些開源框架之後,你會發現有些框架之間是相通的,所以基於這些開源框架,我們打造一個屬於自己的測試框架,

可以根據公司實際測試需求自主封裝適合專案的測試框架,落地實用。建立自己的技術體系,得到一套落地有效的自動化測試方案,從青銅變身王者。

這樣讓我們自動化團隊將更多的精力放在測試用例設計本身上面,達到提高產品質量,提升效率的目的
如何在繁瑣重複的手工測試工作中,慢慢擴充套件積累測試技術,建立自己的技術體系?

由於歷史原因,大部分測試人員,最開始接觸都是純功能介面測試,隨著工作年限,會接觸到一些常用測試工具,比如抓包,資料庫,linux等。

但是有個比較常見的問題,由於現在企業大多數都是敏捷開發模式,容易陷入版本快速迭代中,

以至於沒有時間精力再去額外學習一些高階和主流的測試技術,如某種程式語言、自動化測試工具、測試框架搭建、測試平臺研發

即使擠時間強迫自己學習,也不知道從哪裡開始入手,那些碎片化的東西,只能讓你瞭解,很難很難消化,

當你要形成自己的輸出,用自己的思路和技術來做專案的時候,你要回到那個知識框架裡面去學習

不要碎片化資訊學習,那不叫學習,要有決策性學習,系統的學習,學習解決問題的思路。

比如自動化測試,已經是測試工程師的必備技能,搭建自動化測試框架也是測試人員能力分水嶺的體現。

那麼如何來全面的學習自動化測試呢?

一、掌握基本的Python基礎語法規則,全方位提升Python程式設計技能,物件導向思維
二、全面掌握元素定位技巧、POM設計模式、關鍵字驅動、資料驅動、selenium的WebUI自動化測試技能

三、全面掌握元素定位、小程式自動化、Python+Appium的APPUI自動化測試技能

四、全面掌握request庫的HTTP協議介面自動化測試技能,websocket介面測試、Dubbo介面測試

五、掌握自動化持續技能能力、自動化用力指令碼執行、產出報告、自動化傳送郵件、全流程持續整合自動化


六、獨立搭建介面、UI測試框架、介面與UI框架整合一體化、場景關聯應用,簡歷自己的技術體系

七、擴充套件,提升職業技術深度

專案實戰
上面就是我為大家整理出來的一份軟體測試工程師發展方向知識架構體系圖。希望大家能照著這個體系在3-4年內完成這樣一個體系的構建。可以說,這個過程會讓你痛不欲生,但只要你熬過去了。以後的生活就輕鬆很多。正所謂萬事開頭難,只要邁出了第一步,你就已經成功了一半,等到完成之後再回顧這一段路程的時候,你肯定會感慨良多。

如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以關注我一起討論。

加油吧,測試人!路就在腳下,成功就在明天!

未來的你肯定會感謝現在拼命的自己!

相關文章