不知不覺,從事軟件測試已有7年時間。從最開始的功能測試人員,逐漸轉變成測試兼運維,不肯定還算不算嚴格的軟件測試。前段時間看到過一篇文章,裏面講述了一我的8年的軟件測試工程師感悟及對軟件測試行業的發展見解,寫了十個軟件測試工程師發展方向的知識架構體系。感受個人經歷跟他這幾個體系非常吻合,因此感觸頗深,下面結合我本身的經歷簡單介紹一下。前端
一.Linux必備知識linux
剛剛入行時,基本都是熟悉軟件測試的生命週期,及公司內較爲成熟和適合的流程規範,即寫測試用例,評審用例,執行用例,反饋問題。很慶幸個人第一家公司的流程還算比較正規,爲我打下了軟件測試最基本的職業要求,也讓我接觸到了Linux。Linux做爲如今最流行的軟件環境系統,必定須要掌握如下最最基本的要求:git
1.Linux系統的簡介與準備web
2.Linux遠程管理工具Xshellsql
3.Linux文件屬性與管理 ls -l 文件的rwx所表明的意思,結合用戶/組的概念shell
4.Linux用戶與組管理 使用不一樣用戶管理不一樣的應用,避免都使用root數據庫
5.Linux文件編輯器安全
6.Linux經常使用系統配置 網絡設置/環境變量/硬盤設置等網絡
7.Linux軟件安裝 yum/tar/make等架構
二.Shell腳本
在第一家公司時,發佈war包都是在weblogic的頁面點擊上傳,涉及到的linux操做也僅限於查看輸出日誌,啓停服務,當時只是熟練使用命令操做,若是當時瞭解了shell,應該能夠作的更簡單。在第二家公司時,開發只管提交代碼,打包和部署及環境的管理都是測試的職責,此時接觸了shell,而且初步瞭解了持續集成。
掌握shell腳本,包括shell基礎與應用,shell邏輯控制,shell邏輯函數等等
三.互聯網程序原理
自動化必由之路:前端開發基礎知識以及互聯網網絡必備知識。結合個人工做經驗,我只掌握了開發者工具測試應用/HTTP協議/Cookie等
四.Mysql數據庫
軟件測試工程師必備的Mysql數據庫知識,不只僅停留在「增刪改查」,還應該掌握Mysql環境的搭建,備份與恢復,Mysql高級查詢等
五.抓包工具
此部分我沒有使用過,簡單提一下幾種工具:Fiddler,Wireshark,Sniffer,Tcpdump等
六.接口測試工具
接口測試神器,你繞不開的強大工具:Jmeter。在第三家公司使用到了Jmeter,針對迴歸接口仍是用很大幫助的,能夠結合ant配置在jenkins裏或者使用命令來後臺執行,並輸出報告
七.Web自動化測試Java&Python
目前我正在學習Python selenium + unittest框架 +pageobject設計模型,尚未徹底學完,但願對之後工做中能夠用到並節省人力
八.接口與手機自動化
7年的經驗我卻沒有作過移動端的測試,之後須要瞭解Appium
九.敏捷測試&TestOps構建
敏捷即快速交付,持續集成Jenkins框架則需爛熟於心。而我使用的是gitliab-ci,gitlab自帶的CI框架,原理都是相似的,目的也都是爲了持續集成與交付
十.性能測試&安全測試
這兩方面我沒有太多涉獵,性能偶爾簡單測一下併發,並無過完整方案,我以爲這兩方面做爲主攻均可以單獨找到不錯的工做。
以上即爲軟件工程師發展方向的知識架構體系,並不建議一上來就作自動化/性能/安全,我我的以爲寫測試用例,手工執行功能測試是基礎,打好基礎才能對其餘的測試方向有深入理解。以個人經驗,若是此片文章有幸被初學者看到(測試大牛請忽略),建議3-4年完成前六個體系,以後再接觸後面內容可能更駕輕就熟,不過在這個快節奏的時代,可能並不容許你慢慢消化吸取,那你可能就要付出更多的努力,只要你堅持了,必定會有成效。