當前位置:
首頁 > 最新 > 細分自動化測試

細分自動化測試

背景介紹

本章話題是「如何細分自動化測試?」,關於自動化測試很多測試領域新人可能會有所疑惑,自動化測試沒有明確的方向和概念,本文就常見問題帶領大家一起揭露軟體自動化測試。

常見問題

1.我們需要做什麼樣的自動化測試?

2.系統是否適合怎樣的自動化測試?

3.自動化測試該選擇什麼樣的測試工具較為合適?

4.自動化測試覆蓋程度應該如何?

。。。,還有很多類似的問題,我們就不一一列舉了。

我們先概括列舉下我們本篇文章討論的內容,如下:

1.自動化測試分類。

2.what,why,when實施自動化測試。

3.常見自動化測試工具的適用範圍。

自動化測試分類

按測試目的分類大致可劃分為:功能自動化測試,性能自動化測試

按測試對象可以劃分為:Web應用測試,APP測試,介面測試,單元測試等

功能自動化

測試目的是發現軟體中實現功能是否符合用戶需求規格,很多新人可能會片面的認為是針對用戶界面功能是否滿足需求的測試,其實不然,功能自動化的測試的入口點有很多,不要將思維局限於用戶界面,而應該放眼於軟體系統的各個組成部分,實踐證明,基於系統UI的自動化測試只能發現軟體中極少的缺陷,往往我們實施UI自動化測試的目的不是去發現軟體系統中的缺陷,更多的是為了驗證系統是否可以正常運行,這句對大家實施自動化測試工作尤為重要。

除了可以基於UI進行自動化測試,我們還可以基於網路服務介面提供者進行測試,比如Grpc服務,Webservice介面,Restfull等,基於介面進行功能測試較為常見,也是非常有效的手段。

另外還可以基於系統基礎代碼進行測試,比如單元測試,集成測試階段,這一階段的測試也稱白盒測試,我們可以直接對DAO,Service服務進行測試,這裡常用的測試技術包括Junit, TestNG, Mock, Stub等,關於mock和stub很多測試朋友經常混淆兩者的差別,限於篇幅和文章的準確性,這裡不再過多解釋mock與stub的區別,大家可以參照Mocks Aren"t Stubs.測試新同學需要注意的是,由於企業所應用的軟體開發模型所限,本階段的測試在實際工作場景中應用較少,更多的是有開發同學親自完成。

性能自動化

性能自動化測試是通過測試工具模擬高並發負載進行壓力測試,以發現軟體系統在高負載情況下運行瓶頸,這裡的系統瓶頸包含多部分,應用程序本身的性能瓶頸,網路瓶頸,伺服器硬體資源瓶頸(CPU,MEM,DISK),數據存儲伺服器等,這一測試活動通常唯有藉助自動化測試工具來完成,常見的性能測試工具包括,Loadrunner, Jmeter, Ngrinder, Gatling等,不管哪一款測試工具,基本有三大部分組成:測試腳本管理,測試場景配置,監控結果。

與功能自動化類似的是,性能測試工作對象也可以面向用戶UI層,或者服務介面提供方,甚至可以直接面向底層基礎業務邏輯層,絕大多數通過用戶層進行性能測試模擬的是最接近真實用戶場景的測試,也是性能測試必然實施的階段,另外面向介面的性能測試也是發現系統性能瓶頸很有效的階段,我們應當結合實際工作需求有選擇性的開展。

3W原則

面對自動化測試種類繁多,我們在實施自動化測試之前需要做深入的調研工作,以免造成不必要的工作負擔,或者造成工作得不到預期的效果,這也是測試團隊成員非常關心的問題,為了能更有效的開展自動化測試,我們最好開展測試前認真解答如下幾個問題。

(what)我們需要實施什麼樣的自動化測試?

是基於功能還是性能為目的呢?不同目的性的自動化測試會直接影響我們後續開展的工作,比如測試介入時間,測試場景設計,人員、機器資源等。

另外值得注意的是,不是所有系統都適合功能自動化或者性能自動化,我們應該結合實際需求來選擇,比如面對UI自動化測試,當系統前端頻繁變動時,或者迭代周期有限的項目(外包測試中常見)時,就不適合開展UI自動化測試。

(why)為什麼需要自動化測試?

為了提升測試效率,節約人力,測試時間或者為了發現更多的軟體缺陷等等,在這裡還是要再次提醒大家一句,對於功能測試來說,軟體的缺陷發現80%以上來自於手工測試工作,不要妄圖通過UI自動化去代替手工測試,UI自動化測試更多的目的是驗證軟體系統可以按預期正常運行,而不是去發現軟體系統的缺陷。這裡,性能測試比較特殊,無法通過人工方式測試或者說人工方式進行測試代價太大,自動化測試可以解決人工方式難以解決的問題。

(when)什麼時候開展自動化測試?

在前文已經提到,不管是功能還是性能自動化,我們測試面向的對象可以是用戶層,服務介面提供者甚至是基礎業務代碼,大家都非常清楚缺陷越早的暴露,解決成本就越低,因此,根據實際工作需要,自動化測試工作也應當及早開展,比如性能測試,我們可以在基礎業務代碼功能測試通過後就進行性能測試,以發現代碼級別造成的性能問題。

總結,基於3W原則,可以使我們的測試工作更加具有針對性,準確性,前期的工作可以使日後的工作開展更加順利、高效。

常見自動化測試工具

業界有各種各樣的測試工具,不同的測試工具適用範圍存在很多差異,很多新人經常存在工具抉擇上的問題,或者不清楚使用各種工具完成什麼樣的任務,比如有很多測試新人曾經向我提問:Loadrunner能做介面功能自動化嗎?Selenium可以做性能測試嗎?等,面對各種各樣的問題,有時也很難回答,這些問題在某些時候可以是肯定的回答,但這些場景使用這樣的工具不是你的最佳選擇,這需要工具使用的經驗慢慢積累體會,同時多向前輩們請教,學習。

下面簡要的羅列下常見的測試,以及適合其最佳的測試工具。

性能測試工具:Loadrunner,Jmeter,Ngrinder,Gatling,每款測試工具存在一定的差異及其局限性,可以參考相關文檔詳細了解。

功能測試工具: Selenium, QTP

APP自動化測試工具:Appium, UI Automator, MonkeyRunner, Android UI測試推薦使用UI Automator,是Android提供的自動化測試框架,基本上支持所有的Android事件操作。IOS應用程序可以選擇使用Appium。

介面自動化測試工具:Junit,TestNG, OKhttp, HttpClient,Spring Restful等,需要有一定的編碼經驗,當然也有現成的工具,比如Postman,HttpRequester,SoapUI等。

單元測試工具:Junit, TestNG, EasyMock, Mockito, JMockit等

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

TAG:全球大搜羅 |