軟件測試工程師主要是負責理解產(chǎn)品的功能要求,并對其進行測試,檢查軟件有沒有錯誤(Bug),決定軟件是否具有穩(wěn)定性(Robustness),寫出相應的測試規(guī)范和測試案例。
簡單來說,軟件測試工程師在一家軟件企業(yè)中擔當?shù)氖恰百|量管理”角色,及時糾錯及時更正,確保產(chǎn)品的正常運作。
同時,由于測試行業(yè)的綜合性和全面性,測試需要和很多人員打交道,其中括開發(fā)人員、產(chǎn)品經(jīng)理等等和軟件項目相關的崗位,相對的,一個好的測試人員可以去轉行許多崗位。
如產(chǎn)品崗位,因為在做項目時,他們就會接觸到一些設計常識,如運維工程師,因為測試也需要代建環(huán)境,甚至有的測試員可以去做軟件的部署等等。由此可見,學好測試其實未來可以選擇發(fā)展的方向有很多。
再回歸到測試本身,測試的發(fā)展之路很長,需要不斷的學習進步,提升自己的硬技能和軟技能,硬技能指的是技術方面,軟技能就是我們上述提到的和其他部門人員的溝通,處理矛盾等等各方面的問題。
所以,想要成為一名好的測試工程師并不簡單。
2、測試學習成長路線
下面給大家一個技術學習成長路線,小伙伴可以根據(jù)此參考,開始學習:
技術路線會更加偏重代碼技術方向,測試領域有,服務器端測試,客戶端測試,安全測試,性能測試,接口測試,自動化測試,滲透測試,測試開發(fā)。當你已經(jīng)達到了測試開發(fā)的水平,也就說明你離這個行業(yè)的金字塔頂端不遠了。
下面針對這條路線中比較關鍵的幾點拎出來和大家說一下:
1)軟件測試基礎知識
這一階段,我們需要了解軟件測試的概念,掌握軟件測試是干什么的,熟悉軟件測試的基礎理論和測試方法,了解測試的生命周期,測試流程,測試用例的編寫方法,在項目中的日常主要做什么等等。需要掌握以下兩點:
軟件測試相關文檔的學習和BUG提交規(guī)范的學習
1、了解測試計劃、測試方案、測試策略、需求文檔、需求評審、測試用例設計方法等
2、了解bug的定義、分類、bug的生命周期,bug提交規(guī)范,bug管理工具和項目管理工具的基本使用(禪道,jira,tapd,readmind,testlink等)。
需要學習哪些測試工具
1、xmind/mindmanage思維導圖、svn/git源代碼和文檔管理工具、抓工具(fiddler、charles:掌握基本抓用法,弱網(wǎng)請求、接口請求攔截、響應結果篡改)
2、學習linux基本操作,掌握常用命令,環(huán)境部署的大致操作
3、學習數(shù)據(jù)庫的基本知識,掌握增刪改查的常見操作
4、了解一些簡單的html、css、javascript相關的內容,有個概念就行
5、結合以上工具,再運用到項目中,回過頭來重新再去測試一遍(不要覺得枯燥,測試經(jīng)常干一些反復瑣碎的事情,需要耐心和細心)
2)語言基礎
這一階段建議大家選擇Python或者Java入門,首推Python,學完再學Java,語言的很多思想和語法都是相通的,學完門,第二門就很容易上手了。
3)手動轉自動
在我們學習了一個語言后,我們需要不斷熟悉精通這門語言,可以結合Selenium學習Web自動化測試,通過腳本,會快速提高語言基礎知識的理解和運用。
4)自動化腳本開發(fā)
這個階段我們需要會自己寫出測試用例了,如果Selenium自動化腳本開發(fā),你起碼要完成100個自動化測試用例,才能做到熟練運用。
5)了解和接觸框架
這里的框架指的是測試的框架,這一階段我們需要繼續(xù)深入研究Selenium和一些自動化測試框架的知識,其中括,單元測試框架,Java中Junit或者testNG,Python中unittest
6)設計簡單測試框架
一個測試框架大概括測試對象,測試組件,基礎類和函數(shù),工具類,測試數(shù)據(jù),異常處理,測試日志,斷言和測試報告等這些模塊。
在設計測試框架的時候,我們要盡可能的將這些模塊有機的結合起來,將腳本能夠有效的組織、連貫應用起來,提高測試腳本的可維護性和可讀性。
7)常見設計框架
由于應用系統(tǒng)技術五花八門,幾乎沒有測試框架能應用在多個項目上并體現(xiàn)出應有的價值,所以一般情況都需要根據(jù)項目自身情況來定制化我們的測試框架,常用的有數(shù)據(jù)驅動,關鍵字驅動和兩種方式的混合。
8)Linux和數(shù)據(jù)庫
當自動化測試到一定深度,就需要用代碼連接數(shù)據(jù)庫去測試,所以常見的linux和shell腳本是有必要學習的。
9)版本控制和持續(xù)集成
持續(xù)集成指的是,頻繁地(一天多次)將代碼集成到主干。持續(xù)集成強調開發(fā)人員提交了新代碼之后,立刻進行構建、(單元)測試。
根據(jù)測試結果,我們可以確定新代碼和原有代碼能否正確地集成在一起。同時,集成可以幫助我們每完成一點更新,就集成到主干,可以快速發(fā)現(xiàn)錯誤,定位錯誤也比較容易。
10)Web前端(可選)
我們可以學一些前端的知識,來幫助我們之后更好的完成。
11)寫一些小程序
通過一些小程序來幫助我們更快的確定自己的技術能力在哪個層面。
12)完全掌握一門語言
可以將這一階段看作一個學習的目標,幫助我們穩(wěn)定代碼基礎。
3、寫在最后
這個學習路線的后面幾個層面對于初學者而言是有些困難的,但是如果你了解一定的開發(fā)和有扎實的代碼基礎,在未來,成為一名測試開發(fā)會更容易些,當然,如果完全按照路線圖所,你的能力一定在許多測試員之上,這一點是毋庸置疑的。
無論哪一行都需要努力和堅持,測試行業(yè)也是如此,相信自己,其實只要有毅力,從小白晉升專業(yè)者也不是什么難事。