?
我是測試開發工程師!歡迎和我交流測試領域相關問題(測試入門、技術、python交流都可以)
我幾乎是靠這套方法,從一個只會功能測試的小白,到成為測試開發工程師的。
別急,先慢慢看,只要按照下面的流程走一遍,你就會有收獲,并有所改善的。
先上目錄
一、測試開發應具備什么樣的能力
二、測試開發應如何入門?
測試開發是什么?
放眼望去,測試開發在行業中已經不算什么新鮮的名詞。
大多數人對測試開發的刻板印象是:
整天寫寫自動化測試,開發出一些高大上的測試平臺或者測試工具,很少甚至幾乎不用去做業務層面的測試,入行門檻比較高,是測試行業的天花板。
但事實真的是這樣的么?
「并不是」,測試開發的水很深,“測試”后面加了一個“開發”,真的并不意味著你真的就是一個“開發”。
測試開發的工作內容,往往不是由“測試開發”這四個字定義的,而是「由招聘部門決定」的。
測試開發的工作內容大體可分為以下三種:
- 只開發,不測試
- 既開發又測試
- 只測試,不開發
這里簡單做個解釋:
「“只開發,不測試”」
一些互聯網大廠發展到一定規模,用戶體量十分龐大,這種時候假如出現一個bug,往往都會引發巨大的蝴蝶效應,給用戶帶來巨大損失。
傳統的手工測試已經無法滿足日常測試需要,單靠壘人去保證業務質量,測試片面、成本大、效率低。
所以大廠不惜高薪聘請測試開發工程師,開發測試工具或平臺來,豐富測試手段,提升測試效能,強化產品質量,保證系統的高可用。
甚至坊間有傳聞,某福報廠的一些部門更是要進行“去測試化”,美其名曰:“內卷”。
「“既開發又測試”」
一些中型的互聯網公司,業務處于上升期,但是質量工程又處于起步階段。
此時招聘的測試開發工程師,需要測試開發帶領若干外包同學一起把業務測試任務給保證好,然后又需要從0到1(或者從1到n)去把質量基礎設施給搭建起來。
既當爹又當媽,干活比較雜,基本上絕大多數的測試開發工程師都處于這個階段。
「“只測試,不開發”」
“面試造火箭,工作擰螺絲”,用在此處真是相當的貼切。
一般都是一些公司業務特別多且比較復雜,需要招聘一些能力稍微強一點的業務測試小能手去Cover質量保證工作。
此類公司雖然明面上招聘的是測試開發工程師,但是實際進來后,其實純粹是干業務測試的活。
相比于上面兩種類型的測試開發,“只測試,不開發”的測試開發工程師還是占比較少數,且干活的“幸福感”普遍不高。
但無論如何,「招聘“測試開發工程師”的門檻石還是會比“測試工程師”要高出一些的,工資也會相對更高。」
測試開發具備什么能力?
臻叔從各大招聘平臺上對測試開發的招聘要求、測試社區或博客對測試開發的描述以及結合自己的親身經歷,
得出以下結論:
現在我也找了很多測試的朋友,做了一個分享技術的交流群,共享了很多我們收集的技術文檔和視頻教程。
如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發等等方面有一定建樹的技術大牛
分享他們的經驗,還會分享很多直播講座和技術沙龍
可以免費學習!劃重點!開源的!!!
qq群號:310357728【暗號:csdn999】
「扎實的測試基本功」
- 對業務比較熟悉,能夠獨立負責某塊業務功能的測試工作。
- 熟悉測試流程,能夠合理的制定測試計劃,掌控測試進度,具備敏銳的質量風險意識。
- 具備一定的測試思維,能夠設計出較高質量的測試用例。
- 測試手段豐富,至少在APP、小程序/H5、WEB、SERVER等,在其中某一端具備扎實的測試經驗。
- 對于常用的測試工具做到如數家珍,并對這些測試工具運用自如。
- 有一定的測試架構能力,對CD/CI有一定的了解,并且了解一些DevOps的具體實踐。
「扎實的計算機功底」
- 熟悉計算機網絡,尤其是對HTTP、TCP協議要有深度的了解。
- 熟悉操作系統及基本原理,進程線程、CPU調度、內存管理、IO讀寫等。
- 熟悉數據庫,熟悉主流的關系型數據庫及非關系型數據庫,能寫出復雜場景下的查詢SQL。
- 熟悉Linux的基本使用,擅長編寫Shell腳本。
「扎實的編程功底」
- 掌握至少一門后端編程語言(Java/Go/PHP/C++),和至少一門腳本語言(Python/JavaScript)。
- 了解主流的測試工具/框架/平臺,能夠基于此進行二次開發。
- 掌握WEB開發技巧,熟悉后端開發框架及中間件,熟悉并掌握至少一個較為流行的前后端分離項目。
- 掌握IDE工具的基本使用,會使用Git等代碼版本控制軟件。
- 具備良好的編程風格,了解基本的代碼調優技巧。
「軟實力」
- 敢想敢做,勇于嘗試,具備創新精神。
- 善于思考,善于總結,善于查資料。
- 具備勇攀高峰,克難攻堅的品格。
- 具備良好的溝通能力。
怎么入門測試開發?
「一、強化測試基本功」
加深對業務的理解
?不能落地到業務的自動化測試,等同于耍流氓,我們做任何測試開發,最核心的目標,肯定都是要為業務賦能。那么如何加深對業務的理解呢? ?
臻叔有幾點建議:
- 長期維護一份全流程的測試用例,不用寫得太細,但是要寫得全,并且要經常更新。目的是幫助我們快速梳理業務細節。
- 養成手繪業務流程圖的習慣,并善于總結和做筆記。
- 看開發寫的業務代碼,從代碼層面去對深入理解業務細節。
- 研究競品,包括功能、性能、穩定性方面。
提升個人測試能力
有以下幾點建議:
- 掌握主流的測試手段,包括并且不局限于:自動化測試、接口測試、性能測試、穩定性測試、安全/滲透測試、移動端測試、服務端測試等。
- 對于業界流行的測試工具做到如數家珍
- 想要解決測試痛點,不要悶頭苦想,閉門造車,你遇到的問題,大廠肯定都遇到過。可以在網上找一些大廠的解決方案,或直接詢問在大廠工作的朋友。
「二、強化計算機功底」
?計算機基礎就像男人的存款,可以不用,但是不能沒有。?
「如果實在沒有一點基礎」,建議進行系統性的去學習
「如果有一定的計算機基礎」,有以下幾種途徑來強化基礎:
- 時間充足的情況下,系統的去看計算機專業書籍。推薦《操作系統》、《圖解HTTP》、《圖解TCP/IP》、《MySQL必知必會》等。
- 看技術博客:小林coding、良許Linux。
- 刷技術面試題,可以查缺補漏漲姿勢,還能為跳槽面試做準備,豈不美哉?
- 極客時間、慕課網等在線學習平臺進行自主學習。
「三、強化編程功底」
這里送大家四個字:勤學苦練。
編程語言的學習,千萬不要一直停留在語法和基礎的學習上,如果你長期停滯在這個階段,不能突破,那么可能你真的不適合編程。
?編程語言只是我們完成測試工作的一個工具,不要為了編程而編程。 ?
為了把編程技術落到實處,我們應該多去學學一些測試工具/框架/項目,以及Web開發框架/項目,利用這些項目來幫助我們達到目的。
這里推薦大家幾個比較優秀的「GitHub項目」去鉆研學習,學學人家是怎么組織代碼,以及是如何把工具變得簡單易用的:
「UI自動化」:
- 【uiautomator2】基于Python的ui自動化框架,API簡單易用。
「接口自動化」:
- 【sosotest】基于Django(Python)的接口自動化框架,支持HTTP、Dubbo測試。
「穩定性測試工具」:
- 【Maxim】號稱智能Monkey,真香。
「抓包工具」:
- 【Mitmproxy】對Python有良好的支持
「命令行工具」:
- 【Arthas】阿里開源的Java診斷工具,易用性高,可以學習該工具的測試思路
「前端后臺項目」:
- 【vue-element-admin】基于vue、element-UI的后臺項目模版
「整站開發項目」:
- 【mall】Java的電商平臺整站開發項目,學完能夠對電商系統的設計有更深的了解,并且前后端都會涉及到,技術提升全面。
- 【RuoYi-Vue】前后端分離的后臺項目,基于vue+springboot,可以作為測試平臺的搭建基石
以上項目,可以在GitHub去搜索獲取。
「四、強化軟實力」
學會看英文技術文檔,以及看優秀的項目是怎么去編寫技術開發文檔的,不斷的模仿、學習、提升。
另外,可以多在公司小組內進行技術分享,提高溝通和表達能力。
END點贊關注不迷路!今天的分享就到此結束了~!