首先目前的話主要可以大的可以分為兩個方向,要么是基於Java的自動化,要么是基於Python的自動化,很多做培訓在培訓的時候也是這樣去划分,不過這個倒是不重要,歸根結底都是為了解決問題的。
本文從3個面向去解答這個問題:
一、自動化測試的學習步驟;
二、自動化測試需要掌握的技術能力;
三、自動化測試的認識誤區
首先要說的就是自動化測試的學習步驟
1. 做好手工測試(了解各種測試的知識)-> 2. 學習編程語言-> 3. 學習Web基礎-> 4. 學習自動化測試工具 ->5. 學習自動化測試框架 -> 6. 實現自動化測試用例 -> 7. 開發自動化測試工具 ->8. 開發自動化測試框架
按照這個步驟來說,基本上到第7步,難度就比較大了,這個時候也可以稱呼自己為“測試開發”。
下面說說第二個問題,做自動化測試需要掌握哪些技能。當初自己做的時候一直是基於Python去做的自動化,同時Python自動化也比java自動化更為容易上手一些,在這里我就按照Python自動化的思路去說一下如何學習自動化,解答完這個問題,文章的后半部分也會分享一下做自動化測試中容易出現的一些問題。老規矩,思維導圖放在文末。
一、首先要學會一門語言,java或者Python,這里針對Python去說。如果要能夠滿足自動化測試的需求,不要求Python的能力上來就達到精通的水平,但是最起碼的使用是要有的,然后在后期在逐步根據測試工具進行進階。
二、需要掌握前端的一些知識,無論學習語言還是前端知識,都是為了接下來的腳本和框架做鋪墊。
三、數據庫的重要性不言而喻,MySQL必須掌握
四、web端自動化測試工具selenium
五、接口測試自動化工具jmeter、postman等
六、移動端自動化測試appium
在這里主要就是把自動化划分為了web自動化測試、接口自動化和移動端自動化,我把完整的學習流程放上來。需要原圖可以直接私我。
好了,明確完自動化測試的學習思路和流程,下面再額外的說一下在學習自動化之前,最容易出現的一些認識誤區,如果這些問題不糾正的話,對於自動化測試的影響將影響比較大。
二、自動化測試的12個認識誤區
1、自動化的軟件測試與手工的軟件測試過程一樣
自動化測試所需要的技巧與手工測試所需要的技巧是不一樣的。
通常,你的項目經理會被那些測試工具銷售們迷惑,認為自動化的軟件測試就是簡單地按一個錄制的按鈕,產生測試腳本。而事實上並沒有那么簡單。
區分自動化測試所需要的技巧與手工測試所需要的技巧是非常重要的。最重要的是,自動化測試工程師需要掌握軟件開發技巧,沒有接受任何培訓的手工測試人員,或者沒有編程背景的手工測試人員,在實施自動化測試時會碰到很多困難。
2、自動化測試一定會馬上大量減少測試人員數量
自動化測試不會馬上大量減少測試人員數量。因為開展自動化測試初期需要投入一定的人力進行自動化測試腳本開發,並逐漸將自動化測試腳本用於日常的測試中,逐步減少手工測試人員從事重復勞動的時間和人數。為了縮短自動化測試腳本的開發時間,可以考慮將自動化測試腳本的開發工作借助外包的力量來早日實現大規模的自動化測試。
3、測試自動化就是錄制和回放
僅僅錄制得到的不是有效的自動化腳本。
很多項目經理仍然把測試自動化等同於使用錄制回放工具。而事實上,錄制得到的腳本通常是不可重用的腳本,腳本中充滿了硬編碼的值,這些值應該被參數化,否則腳本僅僅適用於一個測試情況,腳本還應該加入條件判斷、循環等結構,以便增強測試腳本的靈活性。
4、自動化測試找不到bug
自動化測試不直接找bug,而是通過解放有經驗的測試工程師的生產力,讓其從重復的回歸測試中解放出來,從事新的測試方法和測試手段的研究。通過自動化測試解放出測試人員的時間和精力來間接地找到更多、更深層次的新bug,將產品質量再提高一個檔次。
5、自動化測試工具是“萬能”的
很多人一聽到自動化測試,就認為自動化測試工具可以完成一切測試工作,從測試計划到測試執行再到測試結果分析,都不需要任何人工干預。顯然,這是一種理想狀態,現實中還沒有哪個測試工具有這個能力,並且將來也不會有。在現實中有關的測試設計、測試案例,以及一些關鍵的測試任務還是需要人工參與的,即自動化測試是對手工測試的輔助和補充,它永遠也不可能完全取代手工測試。
6、自動化測試工具容易使用
對於這一點,很多測試工程師有同樣的錯誤觀點,認為測試工具可以簡單地通過捕獲(錄制)客戶端操作生成腳本,且腳本不加編輯就可用於回放使用。事實上,自動化測試不是那么簡單的,捕獲的操作是否正確,以及腳本編輯是否合理都會影響測試結果。因此,自動化測試需要更多的技能,也需要更多的培訓。
7、自動化能提供百分百的測試覆蓋率
並非所有內容都可以被自動化地測試到。不可能覆蓋所有可能的輸入,所有可能的組合和路徑。
自動化測試可以增加測試的廣度和深度,但是仍然無法達到100%的測試覆蓋率,因為沒有足夠的時間或資源。
8、忘記了測試的最終目標:找到BUG
在自動化測試中,同樣要注意把邊界值分析、等價類分析、基於風險的測試方法、挑選最合適的測試用例等技術應用起來。
通常在自動化測試過程中,我們都忙着搭建自動化框架和編寫測試腳本,但是我們往往忘記了測試的本來目的:找bug。
項目經理可能雇佣了最好的自動化開發人員來搭建框架,使用了最新最好的自動化開發技術,創建了成千上萬的自動化測試腳本。但是如果BUG仍然被遺漏了,那些本該被自動化測試腳本捕捉到的BUG,結果沒有被捕捉到,那么你的自動化測試仍然會被認為是失敗的。
9、所有測試用例都可以自動化
不是所有的測試用例和測試步驟都可以轉化為自動化測試。在自動化測試投入較多的行業,領先企業的自動化測試率有的能達到80%左右,但仍有20%左右的測試用例需要手工來進行。在國外,通常從開發第一版測試用例時,就同步進行自動化測試腳本的開發,所以自動化測試率普遍比中國企業高。
10、只有性能測試才需要自動化
自動化測試不光進行性能測試,更被大量應用於功能測試驗證,在國外超過半數的自動化測試腳本都是用於功能驗證測試的。
11、測試工具可適用於所有的測試
每種自動化測試工具都有它的應用范圍和可用對象,所以不能認為一種自動化測試工具能夠滿足所有測試的需求。針對不同的測試目的和測試對象,應該選擇合適的測試工具來對它進行測試。在很多情況下,需要利用多種測試工具或者開發自動化測試框架才能達到自動化測試的目的。商業和開源的測試工具能夠用來進行自動化測試,但是我們需要根據自身產品的特點,開發自動化測試框架,在框架中提供常用的測試用例,加快測試速度,達到測試用例復用,這是今后測試自動化發展的道路。
12、自動化測試能發現大量新缺陷
發現更多的新缺陷應該是手工測試的主要目的,不能期望自動化測試去發現更多新缺陷。事實上,自動化測試主要用於發現原來的缺陷。自動化測試用於回歸測試,而大量的新業務測試更多地還是依賴手工測試。
除了以上列舉的常見誤區外,還有其他不同的認識誤區。自動化測試認識誤區的產生,歸根到底最本質的原因是由於對自動化測試不現實的期望,也就是期望過高造成的。
如果沒有建立一個正確的軟件測試自動化的觀念,認為測試自動化可以完全代替手工測試,或者認為測試自動化可以發現大量新缺陷,或者不願在初期投入比較大的開支等,則自動化測試一定會讓我們大失所望。
相信通過這樣的解答,明白了什么時候用手工測試,什么時候用自動化測試,並且知道了自動化測試的局限性,這樣就不會對做自動化測試的意義產生質疑了。
本人學習使用,轉自:https://www.jianshu.com/p/9a20d8ff356f