從事軟體測驗這個行業,不論新手小白還是有一點基礎的,一定先要有個具體的學習目標,至少心中掌握個大概的學習方向,這樣在你后期的學習程序中才能對自身的學習進度、技能曲線等有個全面的掌握,尤其對于軟體測驗這個崗位,它屬于橫向發展的職業,從事軟體測驗要掌握的知識范圍比較廣,所以我們動手之前,方向就很重要,
為了更好的幫助所有想要學習軟測的小伙伴,本篇文章,結合目前國內軟體測驗的形式,針對【軟體測驗的從業方向、軟體測驗的學習路線】兩點詳細為大家介紹一下,好了,廢話不多說,進入正題,
一、軟體測驗從業方向與建議
1、發展方向
無論APP測驗也好、web測驗也好,或者想研究自動化,或者想專精性能,都是可以的,沒有什么所謂的好不好,重要的是你喜不喜歡,如果你覺得性能做著心累,沒有自動化測驗有成就感,那就一門心思去研究自動化測驗,只要往某個方向專精,一段時間后你就可以成為大神,
2、語言選擇
以前我專門寫過一篇關于軟體測驗工程師語言選擇的回答,簡單來說,就是剛接觸的時候,可以選擇Python,上手更快,更加靈活,到了高級階段,應對更大的業務形態,還得學會Java,做技術的,會很多種語言很正常,
3、自動化測驗還是性能測驗
對于自動化測驗,不要被其牽著走,不要過分夸大作用,也不要為了自動化而去自動化,
但性能測驗某種程度上會比自動化更難搞定,代碼、運維、計算機原理、資料庫、業務等等,你都要搞懂,寫腳本或者執行都還好,難的是性能分析和調優,當然如果這個階段你對自己的要求還不是很高,那么掌握性能測驗的基本流程和簡單的性能分析就可以了,更多的比如搭建壓測環境、監控性能指標等等,還是要在實戰中去積累經驗的,
二、軟體測驗的學習路線

1、軟體測驗基礎理論知識:
軟體測驗理論知識是開展測驗作業的理論依據和支撐,是測驗很重要的階段必須掌握的技能,測驗理論本身的理解掌握往往通過案例反復練習思考理解的程序,理論階段包含的核心知識內容有如下:
1.軟體的質量模型:軟體測驗程序保障軟體的質量,從哪些方面保障可以從質量模型出發思考
2.測驗分類:軟體測驗程序可以按照不同角度進行分類,基礎測驗到高級測驗遞程序序
3.開發流程:告訴測驗人員一個軟體完整的生命周期,軟體從無到有到消亡的程序
4.測驗流程:掌握并指導測驗人員在實際專案中如何開展測驗作業,這要求測驗人員對常見的主流測驗流程有較為透徹的理解,遇到不同的軟體專案,知道從何處著實能最有效率的測驗軟體缺陷
5.測驗計劃與方案:如何規劃在專案中開展測驗活動,確保測驗活動有序進行
6.設計用例方法:黑盒測驗階段必須掌握的一些測驗用例的設計方法,比如黑盒測驗用例的設計方法、測驗用例元素等等
7.軟體缺陷:在測驗執行程序中應該確定缺陷并提交缺陷報告
8.缺陷管理:提交缺陷后在實際作業中如何和開發協助處理驗證提交的問題,例如:bug的等級優先級分類、bug的描述、bug的生命周期、缺陷管理工具使用,如禪道等,
9.測驗報告:測驗程序的回顧和結果確認,生成系統性的專業軟體測驗評估報告,

2、軟體測驗功底技術——Linux系統
linux系統是主要的服務端作業系統,也是從事IT崗位的大部分人員必須具備的基本技術之一,作為軟體測驗工程師,我們常常需要在服務器端查看日志,從而定位問題的源頭,當然,更多的場景是,我們需要在linux系統上搭建測驗環境,這些都需要我們掌味訓本的linux系統知識,熟悉常見的命令及工具,
1.linux系統基本知識:多用戶,多任務,發行版本等
2.常見 linux操作命令:日志查看,檔案壓縮、解壓,用戶管理,檔案權限等
3.會部署和配置基本的應用jdk、 mysql、 tomcat
4.docker安裝使用
5.撰寫基本的 shell RAD本
6.遠程終端工具使用: shell, xftps等
3、軟體測驗功底技術——Sql資料庫
資料庫作為軟體系統必備的應用系統,在諸如介面測驗、性能測驗等等程序中往往需要操作資料庫,驗證資料正確性完整性,都離不開資料庫的增刪改查操作,在專案部署階段資料庫還需要配合專案部署,在性能測驗、介面自動化測驗中都需要資料庫的支撐,
1.資料庫基本概念
2.關系型資料庫
3.MYSQL基本的增改查陳述句,存盤程序
4.MYSQL復雜查詢、多表查詢
5.MYSQL索引及事務相關概念
6.資料庫客戶端工具使用:如 Navicat

4、軟體測驗功底技術——編程語言
高級的自動化測驗工程師都會涉入到編程語言的檢查環節,懂編程,不代表你要寫出一個網站或者一個小程式,如果要求真那么高的話,你都可以去做開發了,所以做測驗要學編程只不過是為了讓我們能夠寫自動化腳本,去完成更多復雜的大型專案測驗,也是提高自身測驗技術上限必備的技術點,
推薦沒有編程基礎的學員可以學習Python語言,而如果本身有編程基礎的同學可以在Python和Java之間綜合選擇,Python語言的學習內容包含以下知識點:
1.Python基礎:Python語言特點、運行環境、基本語法、代碼風格、示例程式
資料結構:
2.基本資料結構:數字、字串、型別判斷、型別轉換、切片、字串格式化、數值運算、位置引數和關鍵字引數;
3.組合資料結構:串列、元組、范圍、字典、集合、不可hash物件、解包、記憶體地資料結構址、不可變資料
4.程式控制:順序結構、回圈結構、判斷結構、例外處理、邏輯運算子
函式:定義函式、函式的引數、回傳值、變數作用域、匿名函式、常用內置函式
5.模塊和庫:模塊和包、import關鍵字、常用標準庫、常用第三方庫、包管理工具pip
6.面向物件:面向物件起源和優勢、面向物件的特性類和物件的聯系、物件的特殊方法
7.日志記錄:baseConfig、檔案日志、郵件日志、定制格式、內置占位符、等級過濾、分級傳播、組態檔
8.測驗框架:unitest、pytest等
9.并發編程:多行程、多執行緒、協程、執行緒池、同步控制、執行緒通信、分布式、猴子補丁、 async語法、生成器
10.網路編程:socket編程基礎、TCP服務端和客戶端、并行請求處理、HTTP服務端和客戶端
【Python編程語言在以下三個自動化測驗當中的應用】
自動化測驗:會用到selenium 或者robot-framwork ,你至少要會自己寫自定義模塊
根據你自動化測驗要求寫模塊功能,需要懂面對物件之封裝、繼承、多型等等
介面測驗:會用python單元測驗框架之unittest
性能測驗:python框架之locust
5、軟體測驗自動化進階——介面測驗
介面測驗本質也是功能測驗的一種,通過腳本或者工具,模擬客戶端對服務端介面進行呼叫,因為是從介面層測驗,所以能更早的發現問題,從而提高測驗效率,降低修復成本,
1.http/httpst協議學習
2.常見請求方法學習:GET、POST
3.cookie和 session學習
4.介面的基本概念
5.介面檔案認識
6.介面測驗用例撰寫
7.介面測驗工具使用:postman、Jmeter、SoapUl
6、軟體測驗自動化進階——性能測驗
性能測驗的技術要求很高,不僅僅要對性能測驗的指標、測驗分類、測驗設計有很深刻的理解,還要學習系統業務和架構相關知識,這樣才能更好的設計性能場景,分析出系統的性能瓶頸,性能測驗常用的工具有jmeter和loadrunner,大家可以根據需要進行學習,
1.性能基本概念:性能測驗意義、常見性能指標理解、性能測驗的分類
2.性能測驗流程:性能需求分析、性能場景設計、測驗腳本撰寫、測驗執行資源監控、性能調優、回歸測驗
3.Jmeter及 roadrunner使用
4.性能測驗報告輸出

7、軟體測驗自動化進階——app自動化
越來越多的專案和系統通過移動端來提供服務,移動端的軟體質量越來越重要,App自動化測驗已經成為自動化測驗的重要內容,借助Appium,使得App自動化測驗和Web自動化測驗有很多相通之處,不過作為測驗工程師,依然需要掌握移動端應用的工具和特性,
1.Appium移動測驗環境搭建:Appium ServerAppium和 Desktop、 Android運行環境搭建、模擬器安裝和連接、真機設備除錯模式、adb、 weditor、 UiAutomator22、 Monkey
2.Appium元素定位:原生應用元素定位、純web應用元素定位、混合應用元素定位
3.Appium元素互動:等待元素加載,元素的基本屬性和方法、滑動、拖動、縮放操作、下拉選擇操作、 toast訊息處理、常見控制元件分析、常見布局分析
4.封裝測驗框架:集成Appium、adb等工具、預定義例外處理、記錄Appium日志、螢屏截圖、打造多用途測驗框架

8、軟體測驗自動化進階——持續集成和持續測驗
持續集成和持續測驗是一個在迭代中構建、測驗產品并修復Bug的程序,它有助于團隊在開發階段的初期發現缺陷,這時的缺陷通常相對不那么復雜,并且更容易被解決,通過持續集成和持續測驗,可以盡早地將錯誤風險降至最低,并加快交付更好質量的軟體,
1.版本控制Git:背景介紹、環境部署、作業區、暫存區和提交區、分支創建與合并、解決沖突、標簽、 config與別名、本地倉與遠程倉、 GitHub與碼云
2.持續集成 Jenkins:背景介紹、環境部署、檔案結構、遠程倉庫與私服、ja包依賴、插件管理
3.容器Docker:了解 Dockers的鏡像、倉庫、容器、 Docker Engine和架構圖、網路設定、資料持久化

三、300G學習資料領取
為大家準備了一份超全的學習大禮包,囊括了:
①、2021.9月最新版軟體測驗全套完整視頻
②、500套軟體測驗面試題+面試講解視頻
③、10套典藏版 超高價值的軟體測驗試卷
④、300套軟體測驗專案簡歷模板
⑤、80套各類軟測用例的設計模板合集
加扣扣裙644956177,直接領取學習資料包:
PS:寫到最后:建議剛入行新手快速就業化的"學習側重方向"!!!
這里寫給每位正在學習或想要學習軟體測驗的同學們一點建議,主要是幫大家梳理以就業為主的學習側重點,簡單來說就是【這些都是重點,圈起來,要考的】,如果你在學習的程序中感覺迷茫了,那就來看看這個側重點,自己已經掌握了多少,如果掌握足夠來了,那么恭喜你,月薪10K起步的好Offer已經在向你招手了,
第一條建議:先學習編程語言,然后再接觸自動化工具
語言選擇上Java或者Python都是可以的,可以先從Python入手,之后再開始Java,在學習語言的程序中,一定要忘掉你是做測驗的,把自己當成開發,系統的去學相關的編程知識,因為語言水平的高低,很大程度上就決定了自動化水平的高低,
第二條建議:打好基礎,而不是本末倒置的學習自動化測驗工具
不理解http協議,就不會理解loadrunner、fiddler、soapUI這些工具;不理解HTML,就不會理解firebug,所以基礎打好了,才會事半功倍,
第三條建議:清晰的認清自己,明確自己的目標
說白了,咱干什么事情之前肯定要先看看自己有幾斤幾兩對吧,先評估一下自己現在的能力水平,然后再看下自己能夠投入什么樣的資源(精力、時間、資金)去學習,這樣才會知道什么樣的內容自己能夠搞明白,哪個階段要請教大牛,別整到最后越學越迷茫;其次就是認清自己能力之后,就要給自己定好合理的目標,多長時間達到什么樣的水平,
第四條建議:選擇好切入點,設計好對自己幫助最大的方案
介面自動化:Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins
web自動化:Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins
APP自動化:
Robotium+Java+TestNG+Jenkins,Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner
輔助測驗腳本:以Shell,Python為主來簡化重復的作業,過濾日志等
當然這些都是基本的實作方案,別的先不介紹,如果剛開始接觸,我建議是選擇語言之后,然后從介面測驗入手,然后再學習web和APP自動化,
第五條建議:貪多嚼不爛,學會舉一反三
新手上路,容易著急,啥都想學,這樣就容易混淆,也不好消化,很多地方都是相通的,代碼架構、用例管理、等都可以舉一反三,既可以提升你的學習效率,也不會混淆,最重要的是不能紙上談兵,一定要動手去實踐,
第六條建議:不要受限于工具,多用開源
在測驗行業,自動化測驗工具有很多,但是大公司趨向于用開源的框架和工具,然后定制適合自己的測驗方案,學著用一些開源的例如Webdriver, Appium等去搭建自己的自動化測驗工程,然后掌握整體的自動化作業原理,為以后能夠搭建自己的工具平臺做準備,畢竟搞定自動化,可不是會使用幾個工具那么簡單,
自動化測驗的最高境界:開發測驗工具、設計自動化框架,讓別人用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355252.html
標籤:其他
