您好,登錄后才能下訂單哦!
資源推薦:
社區資源: 自動化測試交流群
本章話題是“如何細分自動化測試?”,關于自動化測試很多測試領域新人可能會有所疑惑,自動化測試沒有明確的方向和概念,本文就常見問題帶領大家一起揭露軟件自動化測試。
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層,或者服務接口提供方,甚至可以直接面向底層基礎業務邏輯層,絕大多數通過用戶層進行性能測試模擬的是最接近真實用戶場景的測試,也是性能測試必然實施的階段,另外面向接口的性能測試也是發現系統性能瓶頸很有效的階段,我們應當結合實際工作需求有選擇性的開展。
面對自動化測試種類繁多,我們在實施自動化測試之前需要做深入的調研工作,以免造成不必要的工作負擔,或者造成工作得不到預期的效果,這也是測試團隊成員非常關心的問題,為了能更有效的開展自動化測試,我們最好開展測試前認真解答如下幾個問題。
(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等
點擊鏈接加入群【悅分享測試聯盟】:https://jq.qq.com/?_wv=1027&k=5DiePik
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。