天天看點

深入了解軟體測試中自動化測試

什麼是自動化測試

編寫代碼(腳本),也就是把手工測試用例的操作步驟和校驗轉化成腳本實作,然後批量執行代碼(腳本)實作測試的目的, 就是自動化測試

從自動化測試的概念推導出,自動化測試用例編寫的根據是我們的手工測試用例

自動化測試的分類

接口自動化測試, web UI自動化測試, app 自動化測試, 性能自動化測試等

為什麼要做自動化測試

優點:

1、把人從重複的測試活動中解放出來(比如在疊代1版本實作了測試點A的自動化腳本, 在疊代2 ,疊代3 疊代N的版本中都可以使用自動化腳本覆寫這個測試點,把人解放出來),讓人多手工測試哪些自動化不能覆寫的點,提升測試品質

2、主要用于回歸測試(回歸之前疊代做的功能),縮短回歸時間,提升測試效率

怎麼了解自動化測試主要用于回歸測試:

1、比如在A疊代實作了裝置管理者子產品, A疊代的測試完成後間歇期寫裝置管理者子產品的自動化腳本

2、B疊代測試的時候, 可能還需要測試裝置管理者子產品,這個時候可以用自動化腳本去覆寫, 可以縮短測試周期,提升測試覆寫度, 保證品質

3、對于web系統,平均的話每個人每天大概可以執行70個左右的測試用例, 那1000個測試用例需要, 14人天左右才能執行完, 但是如果把這1000個測試用例轉化成自動化腳本,那麼可能就僅僅需要10-20個小時就測試完成,然後加上半天左右的結果分析, 就把1000個測試點給測試完成了

缺點:

1、自動化測試的腳本需要達到一定的數量才能見到測試效果,但是前期需要搭建自動化架構,是以自動化測試有前期投入大,後期收益高的特點, 這個特點也說明自動化測試适合長期疊代的軟體,不适合項目型的軟體。

2、UI自動化測試發現問題的效率沒有人手工執行發現問題的效率高,畢竟ui自動化測試用例的測試點有限, 是以在做測試的時候,測試點第一次測試的時候最好是手工去覆寫, 後面回歸的時候可以用自動化腳本覆寫

3、ui自動化腳本執行比較慢, 不是特别穩定,需要比較多的等待時間, 一般情況下一個UI自動化腳本執行時間是20秒-45秒, 1000個自動化測試用例, 如果一個機器執行,時間需要5-10個小時, 這個時候可能就需要分布到多個機器跑,比如說分布到3個機器, 那麼隻需要2-3個小時就可以出結果。

自動化測試的誤區

1.自動化測試會完全取代手工測試

2.自動化測試一定比手工測試牛X,更加高達上

3.自動化可以發掘更多BUG(ui自動化測試發現bug占總bug 的比例可能在5% ), 自動化更多的時候是保障系統功能沒有問題

4.所有用例都适合自動化, 和硬體相關的,和第三方系統相關的功能, 很多時候這些功能我們要通過手工測試去覆寫

5.并非所有的項目都适合自動化測試

什麼項目适合自動化測試

①需求穩定,不會頻繁變更

自動化測試最大的挑戰就是需求的變化,而自動化腳本本身就需要修改、擴充、debug,去适應新的功能,如果投入産出比太低,那麼自動化測試也失去了其價值和意義;

折中的做法是選擇相對穩定的子產品和功能進行自動化測試,變動較大、需求變更較頻繁的部分用手工測試;

②多平台運作,組合周遊型、大量的重複任務

測試資料、測試用例、自動化腳本的重用性和移植性較強,降低成本,提高效率和價值;

③軟體維護周期長,有生命力

自動化測試的需求穩定性要求、自動化架構的設計、腳本開發與調試均需要時間,這其實也是一個軟體開發過程,如果項目周期較短,沒有足夠的時間去支援這一過程,那自動化測試也就不需要了;

自動化測試的工具

Web自動化測試工具:selenium(web強烈推薦)

接口自動化測試工具:SoapUI、postman,jmeter,也可以通過python/java等語言。

手機自動化測試工具:appium、robotium。

編寫自動化腳本的人和時間

一個項目中的自動化架構一般有專人(這個人可能就不做手工測試啦)維護,編寫自動化腳本可能是全員

全員編寫自動化腳本的時間是疊代的間歇期, 專人是維護完架構一直寫

執行自動化的時間、人、流程

時間:疊代的每個輪次轉測試後

人:專人負責,一般和項目自動化架構專人是同一人

流程:批量執行自動化腳本,分析自動化結果, 發自動化測試報告(相關産品,研發,測試)

挑選哪些測試用例編寫自動化腳本

從自動化測試的概念推導出,自動化測試用例編寫的根據是我們的手工測試用例

從這幾個次元來挑選,1、功能重要性 2、實作難度

功能重要的, 實作容易的肯定優先實作, 如果功能重要的都不好實作,那麼先從功能次重要的,容易實作的開始