乾貨丨實現UI自動化測試,這5個常見問題你應該知道!

博為峰網校發表於2018-11-30

UI自動化測試一直都是如此的令人糾結,自動化測試初學者總是拿它入門,但有些經驗豐富者對其又是譭譽參半,抑或丟擲分層自動化測試那個經典的“金字塔”,來說明UI自動化測試還是少做為好。

我在從事7年產品研發之後,臨危受命轉向測試領域,至今又7年有餘。期間最關注的一直是UI端/使用者端的自動化技術:從Web應用到移動App、從測試到RPA(機器人流程自動化)、從框架研發到應用推廣。

下面我就分享下為什麼要做UI自動化測試、UI自動化測試要點以及其他的心得體會,希望能給各位同行帶來思想上的碰撞。

乾貨丨實現UI自動化測試,這5個常見問題你應該知道!

1、首先,講講UI自動化測試的誤區吧

誤區一: UI自動化沒用

造成這個誤區的原因也很簡單。技術和業務拆解能力不足就直接去搞自動化了。所以自然就沒什麼好效果,然後總結出了一個結論--UI自動化沒有什麼用。

誤區二: UI自動化實現很簡單

之所以有這麼一個誤區原因也很簡單。UI自動化不論是selenium、rf還是TestWriter。平常用的API確實沒多少,很好學。稍微有程式碼基礎的人就能很快上手,TestWriter更是0編碼都可以上手,所以覺得這真的很簡單。但其實,如果想要更長遠的發展,需要學習的東西還有很多。

2、自動化測試分層

測試金字塔:

單元自動化測試(資料處理層) :指對軟體中最小的可測試單元進行檢查和驗證,一般需要藉助單元測試框架,如java的Junit、TestNG,python的unittest,常見的手段是code review等;

介面自動化測試(業務邏輯層) :主要檢查驗證模組間的呼叫返回以及不同系統、服務間的資料交換,常見的介面測試工具有postman、jmeter、loadrunner等;

UI自動化測試(GUI介面層) :UI層是使用者使用產品的入口,所有功能透過這一層提供給使用者,測試工作大多集中在這一層,常見的測試工具有UFT、Robot Framework、Selenium、Appium等;

價效比:按照測試金字塔模型以及投入/產出比,越向下,回報率越高;

Google的自動化分層投入佔比:

小測試(Unit):佔比70%;

中測試(Service):佔比20%;

大測試(UI):佔比10%;

自動化測試面臨的挑戰:面臨的最大挑戰就是變化,因為變化會導致測試用例執行失敗,所以需要對自動化指令碼不斷debug,如何控制成本、降低成本是對自動化測試工具以及人員能力的挑戰。

3、什麼樣的專案適合自動化測試

乾貨丨實現UI自動化測試,這5個常見問題你應該知道!

如上圖所示,真正工作中無法全部滿足以上條件,所以需要作出權衡,一般來說,只需要滿足以下幾點,就可以對專案開展自動化測試(圖中紅色框標註的選項):

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

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

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

②多平臺執行,組合遍歷型、大量的重複任務

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

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

自動化測試的需求穩定性要求、自動化框架的設計、指令碼開發與除錯均需要時間,這其實也是一個軟體開發過程,如果專案週期較短,沒有足夠的時間去支援這一過程,那自動化測試也就不需要了;

④被測系統開發較為規範,可測試性強

主要出於這幾點考慮:被測試系統的架構差異、測試技術和工具的適應性、測試人員的能力能否設計開發出適應差異的自動化測試框架;

4、常見的自動化測試工具簡介

UFT

即原來的QTP與ST合併而來,由HP公司開發,是一個企業級的商業自動化測試工具,提供了強大易用的錄製回放功能,

同時相容物件識別模式與影像識別模式,支援B/S和C/S兩種架構的軟體測試;

Robot Framework

一款基於python語言編寫的自動化測試框架工具,具備良好的擴充套件性,支援關鍵字驅動,支援多種型別的客戶端和介面,可進行分散式測試;

Selenium

應用於web的自動化測試工具,支援多平臺、多瀏覽器、多語言來實現自動化,優點如下:

①開源、免費;

②多瀏覽器支援:chrome、Firefox、IE、Edge等;

③多平臺支援:Linux、Windows、MAC;

④多語言支援:java、python、Ruby、C#、JavaScript、C++;

⑤對web介面有良好的支援;

⑥簡單(API簡單)、靈活(開發語言驅動);

⑦支援分散式測試用例執行;

5、做UI自動化測試,需要什麼技能

①前端相關技術

HTML、XML、JavaScript、TCP/IP協議等

②一門程式語言

就像前面說的,selenium支援多種語言,根據個人情況以及專案的開發語言酌情選擇;

③合適的工具選型

比如selenium,比如UTF等;

④需求分析

專案型別,特質,生命週期,是否適合開展自動化測試等;

總結:

如果一個組織真正重視軟體質量,UI自動化測試是有必要做的。有如下幾點理由:

任何自動化工具都是在簡單、機械、重複的任務場景下最能發揮作用,UI測試非常符合這個特點。

對於很多組織來說,UI測試是當前耗費測試團隊人力最多的環節,大部分專職測試人員日常工作就是UI測試。“工欲善其事必先利其器”,測試人員也需要自動化工具來提升其日常工作效率。

無論後臺多複雜、多重要,使用者接觸的終究還是前端介面。現在的軟體除了後臺邏輯之外,還有很多前端指令碼邏輯和樣式,單純靠後臺介面/單元測試,無法證明使用者端的可用性。

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                     群:                    755431660


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2222322/,如需轉載,請註明出處,否則將追究法律責任。

相關文章