手工測試轉型web自動化測試,必須需懂得什麼技能

2020-09-21 12:00:42

在轉型成功之前,我們要先自學兩個工具
商業web自動化測試工具請自學QTP;QTP的學習可以跳過,我是跳過了的。
開源web自動化測試工具請自學Selenium;我當年是先學watir(耗時1周),再學selenium(也耗時1周)。

這裡主要講一些能讓讀者和普通小菜鳥區別開來的東西,這些請和上面的兩個工具穿插地學:

基礎:
1.瀏覽器前端相關的簡單技術基礎:就是那些什麼html、xml、css、javascript、等等,詳見w3c教學網站
http://www.w3schools.com/
2.學習使用一個單元測試框架或者叫做測試執行器,建議testNG,學完testNG,你應該具備了3小時學會任何一個測試執行器的能力,我用過的有testNG/Junit/Nunit/ruby unit test/python test unit/visual studio裡的測試執行器、等等;
http://testng.org/doc/documentation-main.html
3.學習一個語言的基本語法:
靜態語言建議java、動態語言建議python;只需要學基本語法,一般三個月之內都可以學完。我順便學了一些ruby、groovy、shell指令碼等。
4.學習一兩個版本控制工具的使用:
svn和git; 我那時候還順便學了hg,不過現在沒多少人用了
只要使用,很簡單,請自己找資料
5.學習page object設計模式:
selenium官網有例子,極其簡單; 理解這個設計模式花了一兩天。用這個模式改寫一個網站的全套迴歸測試用例花了我一個月。
6.學習jenkins的使用:
只要使用,很簡單,請自己找資料; 這一點大概花費一個下午時間。
7.學習自動化構建工具的使用:
至少學ant和maven; 這個在學testNG時順便掌握,只需要簡單應用。

提高:
1.瀏覽器是怎麼工作的:
How browsers work
http://taligarsiel.com/Projects/howbrowserswork1.htm 這個聽說有中文翻譯的,自己找吧。
2.學習瞭解一個關鍵字驅動的測試執行器,建議robot
Robot Framework 有前面的基礎,這個大概學一個下午可簡單掌握,深入掌握清熟讀官方檔案。
3.學習瞭解一個BDD業務驅動的測試執行器,建議cucmber
Cucumber 個人對BDD持保留意見,有testNG的基礎學這個大概一兩個下午(這個是用ruby的,我假設你順便學了ruby語法)。另外我順便花了一兩個下午看了看JBehave(Java的)、Spock(groovy的)。
4.學習幾個資料庫的簡單使用:
mysql,mongodb; 這個w3cschool有教學。自己找。我其實還沒看。
5.學習伺服器端的作業系統簡單使用:
linux,unix及shell指令碼之類的; 這個比較費時間,推薦鳥哥的linux私房菜系列。
6.學習其他的商業工具或自動化測試工具
原理都是差不多的,大概有幾十種可以學,但都差不多。這個我斷斷續續把網上能找到都看了看,大概看了幾十種吧。其中不乏很奇葩的產品比如fit和fitness
7.繼續擴充套件學習各種開發框架、網路協定等。如果你想去巨頭網際網路公司做測試開發,學完這條才是剛剛開始;這也是為什麼轉型做專職的自動化測試、測試開發人員對很多手工測試人員而言這麼困難。

當然網際網路公司的測試開發前面的很多東西可以跳過不學。有的人跳過的東西太多了,就會開發出各種奇葩的測試框架/工具,但他反正可以做到這個職位了。

8.擴充套件到其他方向如app自動化、效能等等。如果想去新創業的網際網路公司做測試開發,app的自動化肯定要學,但有前面的基礎,學這個易如反掌。

1.黑箱測試理論;一週入門,三個月精通。大部分人學到三個月就夠了。覺得自己很懂的同學其實要知道你還不是很懂。因為這塊挖深了可以挖出很多神奇但對找份好工作沒多大用的理論知識。建議你到架構師層次再來深入學習這些理論以便更好地給人講課、吹牛逼。

2.白盒測試理論;這個建議還是要懂一點的。比如樁啊驅動啊,覆蓋率啊;工具方面可以自學sonar,並嘗試和jenkins一起用,整合進一個小專案中。工具不學也沒關係因為很少有公司用。個把月可以掌握。但一般在前述很多東西學習時順便掌握。

3.自動化測試理論;這個N多的人其實壓根都不懂。比如你跟他說個資料驅動、業務邏輯和測試實現分離、False alarm誤報之類的自動化測試的專有名詞他都不知道你說什麼鬼。但這種人也可以做自動化測試,做測試開發,所以這個也就是可有可無的了。當然我建議還是要有。順便你可以看下別人研究的自動化測試ROI的錯誤計算方法(因為大部分計算方法都是錯誤的)、自動化測試和手工測試的區別等等。還有什麼基於模型的自動化測試設計理論、正交設計法和全配對(pariwise)設計法的異同等等。這些學了之後可以用於吹牛逼和給別人講課。

4.測試管理理論、專案管理知識:你學瞭如果沒機會也做不了管理。你不學有機會了也可以坐上管理的位子。