我但願個人故事可以激勵如今的軟件測試人,尤爲是還堅持在作「點點點」的測試人。前端
你可能會有疑問:「我也能作到這一點的可能性有多大?」所以,我會盡可能把本身作決定和思考的過程講得更具體一些,並儘可能體現更多細節。vue
每一個測試人的經歷都不同,但我但願個人經歷中能讓你有所收穫。web
個人軟件測試職業開始和大多數最普通的測試人員同樣,一開始在一家社交平臺的公司作軟件測試,公司最開始只我人一位軟件測試人員,沒有任何流程和規範,但好在工做比較輕鬆,這就致使我有充足的時間學習各類測試技術和工具。面試
當你認爲工做很閒時,這正是你能夠有更多的時間投入學習的時候,可是,學習的內容必定要基於本身的工做來,這樣才能把學來的技術變成工做經驗。正則表達式
當時,有一些機會在工做中作性能測試,因而,學會了使用LoadRunner和JMeter,有一次須要測試MySQL數據庫的性能,用JMeter搞了半天不知道怎麼設置,結果叫一位開發的同事幫我過來很快就搞定了。sql
這讓我認識到開發知識對於測試工做的幫助,編程語言的能力會決定你測試技術的深度。shell
大概在2013年的時候,腳本語言變得愈來愈流行,我正糾結學習Python仍是Ruby,後來,我被分到社區項目的測試工做,公司產品開始選用Python開發的,因此,我絕不猶豫的選擇了Python。數據庫
若是你不知道學習什麼編程語言,那麼就根據項目的開發語言來,這也會有助於你對測試的bug的理解。編程
接着,開始用Python語言和Selenium來嘗試作自動化測試。那時,關於Python版的Selenium並很少,在學習的同時我開始發表相關博客。後端
交流是學習新技術的驅動力,大多數時候咱們很難堅持學一個新技術的緣由就在於缺乏反饋,無論是作內部分享或者是社羣交流都是很好的反饋機制。
2014年的時候,因爲項目的緣由,開始使用Robot Framework測試框架,正由於有Python的基礎因此很快就理解了Robot Framework框架的工做原理,並能夠根據項目的須要開發系統關鍵字。
掌握自動化工具的原理使用起來才能更加遊刃有餘,而這也須要你有必定的編程基礎的緣由。
2015年隨着移動App愈來愈流行,趁着換工做的間隙,我開始學習了一個月的appium自動化工具,但工做中用不到後來就沒在繼續了。
後來,我開始針對另外一個社區項目編寫Web UI自動化測試,先後作了幾個月,積累了一些經驗,開始嘗試設計Web自動化框架,當時主要仍是針對Selenium API的封裝。
爲何我愈來愈有更多機會去作自動化相關的工做,固然,是我先學會了這項技能,而後纔有,公司項目又比較適合去作自動化,因此,我就嘗試去作了,最後,這就變成了個人經驗。
可是,沒多久我會調到另一個項目負責接公司口平臺的測試,這個項目支撐公司內部不一樣的業務線,爲了更加高效的保證接口的質量,開發設計了一套基於PHPunit的接口自動化項目,由於整個接口平臺也是有PHP開發,因此,我開始嘗試用PHP編寫接口自動化測試。這個自動化項目很是高效的保證了接口平臺的穩定性,我持續維護了兩年。
測試有時候必須跟着項目發展本身的技術,但也正是以前的編程基礎和自動化的經驗的積累,因此,纔會很快的上手接口自動化項目。
2018年我開始作全棧工程師,和團隊一塊兒從零開發內部管理平臺,後端用Django框架設計接口,前端用vue.js框架設計頁面,項目已經在整個公司獲得應用。
這個階段跨度有點大,但應了我前面的一些思路,當你掌握的更多的技術,那麼你也會有更多的機會繼續提高本身。
在適當的年齡,選擇適當的崗位,儘可能發揮好本身的優點。
個人自動化測試之路,一路走來都離不每一個階段的計劃,由於本身喜歡規劃和總結,因此,我和朋友花了一段時間整理編寫了下面的軟件測試工程師發展規劃路線,會給你帶來幫助和方向:
愛碼小士(公衆號) | 測試基礎 |
---|---|
測試計劃/測試用例 | 黑盒用例設計等價類/邊界值/場景分析/斷定表/因果圖分析/錯誤推斷 |
缺陷 | 缺陷生命週期/缺陷分級/缺陷管理工具禪道/Jira |
數據庫 | Mysql/環境搭建/增刪改查/關聯查詢/存儲過程 |
Linux | 系統搭建/基本指令/日誌分析/環境搭建 |
愛碼小士 | Linux必備知識 |
---|---|
Linux系統簡介與準備 | Linux做爲如今最流行的軟件環境系統,必定得會,從CenterOS版本系統進行介紹,安裝,目錄結構等基礎內容學起,也爲後續自建測試環境準備。 |
Linux遠程工具Xshell | 詳細介紹如何入門使用Linux,並進行常規的遠程管理,文件傳輸操做,涉及其中的工具Xshell,Xftp |
Linux文件屬性與管理 | Linux文件,目錄基本屬性,文件操做,文件管理,目錄操做,目錄管理。切忌自毀行爲操做,如何預防意外操做 |
Linux用戶與組管理 | 如何在Linux中新增,刪除,修改用戶與組,並賦予相應權限,再也不由於權限問題而卡殼 |
Linux文件編輯器 | Linux文件編輯器vi的使用,命令模式,輸入模式,操做實例,快捷鍵,管道命令,使用心得。在一個沒有圖形化的系統下到底如何編輯的呢? |
Linux經常使用系統設置 | 網絡設置,環境變量,磁盤管理,時間設置,系統資源,防火牆,應有盡有,不用擔憂毫無頭緒。 |
Linux安裝軟件 | Linux安裝命令,以及如何經過tar,gz等網絡上下載的安裝文件進行安裝,如MySQL數據庫安裝。 |
Linux Docker容器 | Docker容器技術講解,image鏡像管理,倉庫,容器建立,啓動,操做,鏡像打包,遇上行業流行技術 |
愛碼小士 (公衆號) | Shell |
---|---|
Linux Shell基礎與應用 | shell腳本編程介紹,環境類型,變量,參數,運算符,數組的使用,零距離接觸腳本 |
Linux Shell邏輯控制 | shell邏輯應用,test命令,流程控制,數據輸入與輸出,腳本邏輯再也不單調,玩出花樣 |
Linux Shell函數 | shell腳本函數寫法,文件互相調用,腳本實戰應用,懂得開發,測試,運維均可以作什麼 |
Windows 腳本批處理 | Linux玩夠了,再來看看Windows常規命令用法,批處理腳本寫法,實戰應用,並非到哪都是Linux,Windows腳本也是經常使用腳本之一,看到這裏可能你就用的Windows |
愛碼小士 | 互聯網程序原理 |
---|---|
Web前端開發基礎 | HTML、CSS基本內容學習。爲何測試課程有開發?對不起,若是不會,自動化可能不歡迎,不少自動化測試問題都出自於開發基礎 |
Web前端開發腳本 | JavaScript最主流的腳本學習,一樣的,這也會在自動化測試中涉及,在一些工具中其實也常常用到動態腳本,也是JavaScript語言 |
開發者調試工具測試應用 | 雖然瀏覽器的F12被命名爲開發者工具,但實際上測試無論在功能測試仍是自動化測試中,都起到了很關鍵的做用。如解析HTML,定位元素,調試腳本,監控網絡抓包等等 |
互聯網程序網絡架構 | 經過網絡架構詳細理解互聯網程序的誕生,邏輯細節,互聯網通信原理又是如何將數據傳遞到其餘計算機的,TCP,UCP,HTTP,等等協議的關係又是什麼。 |
HTTP協議數據結構分析 | 完整解析HTTP協議數據結構,包括Request、Response數據格式,Header的定義和用法各類狀態表明什麼,如何辨別錯誤。分析協議中參數的位置,rest結構,各類常見的body數據形式,解析方式,常見數據解析錯誤的緣由。 |
Cookie與Session機制 | 解讀Cookie究竟是什麼,和Session存在什麼樣的關係,如何測試Cookie與Session,須要注意什麼 |
愛碼小士 | MySQL數據庫 |
---|---|
MySQL數據庫測試應用 | MySQL環境搭建,客戶端Navicat的基本使用與數據操做,學習並鞏固基本的SQL語法,增刪改查缺一不可,掌握各類條件的使用方法 |
MySQL高級查詢 | 查詢升級,掌握多表查詢,子查詢,查詢分組,統計函數的使用,並對經典面試題進行學習與分析 |
MySQL自定義函數 | 既然有內置函數,固然也不缺自定義函數的位置,也是常常會使用到的,這就比如任意一種開發語言同樣都離不開函數的定義與使用 |
MySQL存儲過程SP | 數據庫必不可少的存儲過程,一般也叫SP,如何定義?如何測試?怎麼樣使用更安全,測試到底用存儲過程還能作什麼更多便於測試的內容 |
MySQL事物與編程 | 數據庫事務使用案例,索引的原理與使用,數據庫SQL編程在測試中的應用,如何用其快速精準的產生大量指定的測試數據 |
愛碼小士 | 抓包工具 |
---|---|
抓包原理與方式 | 只有瞭解抓包的原理,才能真正去用好一個適合的工具,選擇合適的方向和方法,不然都是徒勞的 |
抓包工具選擇 | 抓包工具的分類與功效,什麼樣的項目適合哪一種工具,如何去辨別工具的優點 |
Fiddler基礎功能 | 做爲專業的HTTP體系的抓包工具,詳細介紹其工具原理,如何過濾數據,如何搜索想要的數據,如何對web,非web,手機,HTTPS協議等各類環境進行抓包 |
Fiddler高級功能 | 學會使用其進行接口測試,斷電,腳本等方式進行數據的修改,替換,模擬數據進行接口Mock測試,建立本身定義的菜單功能 |
Wireshark | 與其說是抓包,更是一種抓包後的分析工具,在各個系統下利用其它與系統一體化的抓包工具進行數據抓取整理並展現,有着強大的過濾和分析功能 |
Sniffer | 黑科技抓包工具,有多種版本,很是專業的抓包工具 |
Tcpdump | Linux、Android系列的系統中的抓包插件神器 |
愛碼小士 | 接口測試工具 |
---|---|
Jmeter接口測試入門 | Jmeter簡介,環境準備,目錄結構介紹 ,如何錄製腳本,以及基礎組件的使用,線程、做用域、HTTP請求、定時器、斷言等等 |
Jmeter接口測試進階使用 | Jmeter邏輯控制、前置處理器、後置處理器、監視器、結果樹,如何參數化、正則表達式關聯、事務、檢查點等等。並帶領你們對帶有token等動態數據的項目進行實戰演練 |
Jmeter接口測試高級功能 | Jmeter腳本思考時間、隨機時間、線程啓動間隔、併發集合點、聯機遠程調用,webservice、websocket、jdbc、命令調用等等 |
Postman接口測試工具使用 | 行業標準HTTP、rest接口測試神器,基本請求、分組保存、動態變量、腳本、數據關聯、參數化、自動斷言、批量運行、持續集成。思路相似其餘接口工具,避免氾濫學習 |
愛碼小士(公衆號) | Web自動化測試Java&Python |
---|---|
自動化框架思路引導 | 咱們作自動化到底爲了什麼?節省人力、加快速度、仍是讓機器代替手動、仍是提高自我。應該如何創建思路,而非無腦進坑任機器擺佈 |
Java&Python3開發環境及基本語法 | Java&Python開發環境搭建,基礎語法入門,讓不會代碼的以最快速度入門,方便適應後續自動化測試開發內容學習,代碼夠用便可,並非學得越多越好 |
Java&Python3集合類型與面向對象開發 | Java&Python各類基本類型、集合數據類型的理解與操做,循環語句、判斷語句,面向對象的開發,函數的使用,類的使用 |
Selenium3環境與瀏覽器驅動配置 | 基於selenium3的web自動化環境搭建,正確的瀏覽器配置,再也不爲起不了瀏覽器而煩惱。支持IE、Firefox、Chrome等等 |
Selenium3多種定位及動態操做 | selenium3常見定位方法,屬性和值的獲取,如何動態判斷不必定存在的元素,複雜的網頁結構,須要多步驟操做的元素等等 |
特殊狀況處理(js、特殊控件等) | selenium3自動化測試中,常見的特殊狀況處理,如日期、控件、智能等待、文件上傳下載、網頁嵌套結構,各類彈窗的處理方式,cookie處理,JavaScript腳本調用等 |
TestNG&unittest自動化框架使用 | Python unittest、Java TestNG自動化框架的使用,環境處理、基本使用邏輯,數據驅動模型,數據庫數據載入等 |
自動化框架斷言與日誌處理 | 自動化中最重要的是什麼?做爲測試固然是斷言,沒有斷言的自動化毫無用處,如何展現日誌與結果是自動化測試的根本 |
PageObject框架設計模式 | PageObject框架設計模式,究竟是作什麼的?如何更好的快速管理控件,今後作起 |
愛碼小士 | 接口與移動端自動化 |
---|---|
接口自動化方案Requests | Python Requests、Java HTTPclient接口框架,都是專業的接口調用、測試的解決方案,使用簡單快速,結合工具的使用方式和功能,快速上手並對其操做,解決其中的疑難雜症 |
web+自動化框架整合 | 自動化測試是相通的,如何將web與接口、甚至更多的測試類型和方向結合起來,組成完整的自動化框架 |
Appium環境搭建 | Appium環境相對複雜,針對Android系統進行完整的環境搭建演練,解決環境上的問題,並進行基本的自動化操做 |
Appium自動化實戰與框架結合 | Appium總體使用與web自動化相似,引導使用典型功能,並針對一款APP進行實戰操做 |
愛碼小士(公衆號) | 敏捷測試&TestOps構建 |
---|---|
構建敏捷測試運維架構體系 | 敏捷測試是什麼?爲何須要敏捷,行業都提到的devops又是什麼?TestOps能作什麼 |
持續集成Jenkins框架實戰 | 持續集成最多見的一套框架,介紹Jenkins操做、權限、系統管理等,經常使用構建與運行實例講解 |
靜態掃描測試Sonar | 一款自動化的代碼掃描工具,便捷式快速掃描代碼中的問題,作到提早發現,統一規範,自動化中的代碼測試神器 |
愛碼小士 | 性能測試&安全測試 |
---|---|
性能測試學習路線 | 如何學習性能測試,性能測試到底該怎麼學習,使用什麼工具?工具並不表明性能,接口的基礎對性能測試很是重要,而工具只是輔助,更多的是思路和策略。你不會並非分析而是準備階段 |
loadrunner脫離瀏覽器錄製專題 | IE沒法啓動被測網站?打不開瀏覽器?程序沒法在瀏覽器中被打開?這些都不要緊,仍是同樣能錄製,但錄製是偷懶專用的,對於學習有必定的輔助做用,也會帶入沒法脫離的坑 |
性能測試工具操做實踐 | loadrunner、jmeter,有了前面的基礎使用,看懂腳本不是問題,帶上關鍵的參數化、動態數據關聯、事物、日誌,大部分的腳本均可以搞定進行實踐 |
系統監控方案實施 | 工具自帶監控?系統監控?JVM內部監控?數據庫監控?各類監控的意義何在,如何在各類狀況下精準監控數據 |
安全測試起源與工具介紹 | 應該如何進行安全測試,安全測試都有哪些分類?都會用到什麼樣的工具,各自的做用又是什麼,如web漏洞掃描,端口掃描,系統掃描等 |
web安全測試手工實戰 | 接口測試在安全中的做用,不會手動的安全測試,那就永遠沒法理解自動化之後產出的結果 |
安全掃描工具測試實踐 | 實際介紹以及使用APPscan、awvs等專業安全掃描工具 |
企業安全建設(SDLC) | 企業應該如何進行安全建設,制定更安全的軟件生命週期。從哪些方面進行着手 |
上面就是我爲你們整理出來的一份軟件測試工程師發展方向知識架構體系圖。但願你們能照着這個體系在3-4年內完成這樣一個體系的構建。能夠說,這個過程會讓你痛不欲生,但只要你熬過去了。之後的生活就輕鬆不少。正所謂萬事開頭難,只要邁出了第一步,你就已經成功了一半,古人說的好「不積跬步,無以致千里。」等到完成以後再回顧這一段路程的時候,你確定會感慨良多。
若是你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感覺的話,能夠加咱們的軟件測試交流:273462828,裏面有各類軟件測試資料和技術交流。
加油吧,測試員!若是你須要提高規劃,那就行動吧,在路上總比在起點觀望的要好。
將來的你確定會感謝如今拼命的本身!