移動測試的挑戰
在看移動測試的自動化工具前,你需要對與移動應用程序面臨的挑戰稍作了解。
設備
移動應用程序應該在你要求的設備上工作。
移動應用程序必須在每個設備上都正常工作。
移動設備必須為應用程序的運行時間進行測試。
移動設備處理能力不同,內存有限,還必須考慮通信協議。
應用
新的操作系統版本和功能意味著開發人員建立了必須被測試的新的,更復雜的程序。
多個構建常常時間很短,因此腳本執行往往不能完成。
網絡
多種網絡類型,必須進行測試,如GSM,CDMA,GPRS和Wi-Fi。
不同的連接速度(包括2G,3G和4G LTE)必須跨地點測試。
世界各地有超過400多的移動網絡運營商,測試必須處理各種網絡。
技術
必須考慮大量的測試用例。
必須處理手機特有的功能,包括觸屏約定。
必須執行API級別的測試。
移動應用程序類型
當制定移動測試策略時,你必須清楚了解可能需要測試的應用程序。移動應用程序可分為本地應用程序(Native App), 網絡應用程序(WebApp)和混合應用程序(Hybrid App)。
Native應用程序
Native App是專為移動操作系統所建,并直接安裝到該設備上。
用戶通常通過網上商店或市場(如App Store)獲取這些應用程序。
Native App是用本地編程語言構建的。例如:iPhone或iPad apps是用ObjectiveC構建的,Android apps是用Java構建的。Native App速度快,提供更好的用戶體驗和界面,并且通常可以獲取目標設備的所有功能。
Native Apps的功能包括:
存儲。二進制“可執行映像”,被明確下載并存儲到移動設備的文件系統中。安裝過程可以由用戶,或者在某些情況下,由企業的IT部門開啟。
分布。獲得Native Apps最常見的方法是去有相關特定設備的應用程序商店或市場(iTunes有iPhone或iPad的apps,安卓市場有Android Apps),或者通過企業分配機制獲取。
操作。程序直接在操作系統中運行:
由主屏幕開啟。
不需要另一個存儲器應用程序來運行它。
明確利用操作系統APIs。
移動Web應用程序
移動Web應用程序是專門針對移動設備的網絡驅動應用程序。
這些應用程序是通過移動設備的網頁瀏覽器獲取的(例如:iPhone上的Safari)。用戶不需要在設備上直接下載和安裝該應用程序。
| 利 | 弊 |
手機模擬器 | 費用: 手機模擬器是作為每個新的操作系統發布的軟件開發工具包的一部分來免費提供的。
簡單: 模擬器下載和安裝簡單,即刻使用。許多模擬器能夠以簡單和直接的方式來運行。
快速: 比起要連接到本地網絡或云的真實設備,模擬器的等待時間更短。 | 硬件支持: 仿真模擬里,完全的硬件支持是無法測試的。
計算資源: 根據PC運行模擬器的處理能力和被用來測試的手機和智能機的類型,模擬器上的表現比起真實設備,可能是不切實際的好或壞。 網絡互用性:使用模擬器不可能測試網絡相關事件的影響 (如:來電,短信),不同的關于移動應用程序行為的網絡技術(如: HSPDA, WCDMA, UMTS和LTE). 由于模擬器并沒有連接到移動網絡,它們不支持互操作性測試。 |
真實設備 | 可信賴的: 在真實設備上進行的測試給出的是最精確的結果。 網絡的互操作性:真實設備測試是在真實的網絡中進行的。用戶體驗:通過使用真實設備, 可以把特定設備的CPU,內存或屏幕大小等元素考慮在內,準確地看到用戶體驗。 | 物流和成本: 購買不同版本操作系統的不同設備是相當昂貴的,還要浪費不少精力來購買和管理這些設備。 |
表1:使用模擬器和真實設備的利弊
移動Web應用程序功能:
完全使用Web技術,如HTML(尤其是HTML5),CSS,Javascript代碼寫的。
該代碼是由瀏覽器執行,而不是由操作系統。
用戶可以通過多種方式啟動應用程序:輸入網址,單擊超鏈接,掃描QR碼,或者單擊主屏幕上的快捷方式。
安裝是非強制性的。
支持多種操作系統。
混合應用程序
類似本地應用,混合應用程序是使用傳統的Web技術開發的。
Hybrid applications是在每臺設備上的本地應用程序存儲器中運行的,但卻是集中部署和維護,是跨平臺的性質的。通常情況下,他們是由云服務,所以地球上任何地方的終端用戶體驗是一致的,跨設備的。
使用模擬器和實際設備進行自動化測試
模擬器是用來復制一個移動設備的內部工作的。它是用于開發和測試移動應用程序的強大工具,被用于手動和自動化測試中。
當然,移動APP是用在真實設備,而不是模擬器上的,所以測試必須在實際設備上進行,以確保應用質量的最高水平。
然而,讓你們組織里每個移動測試團隊都擁有一個實際設備是很燒錢的,所以使用模擬器是一個可以控制成本的有效方法。
在制定移動測試策略時,你們組織應該謹慎拳皇使用模擬器或實際設備的利弊。
移動設備自動化測試工具分類
有三種類型的工具可以支持移動設備的自動化測試。
本地平臺工具
本地平臺工具通常是由移動平臺供應商提供的軟件開發工具包的一部分。這些框架通常與用戶界面對象級別的應用程序進行交互。
這些工具允許更復雜的基于對象的交互,十分成熟,還支持本地UI對象,因為它們是平臺供應商支持的。
因為這些是操作系統級別的應用程序對象,你可以通過用測試中的應用程序編譯的小數據庫(也被稱為 “instrumentation”)洞察他們。
基于視覺的多平臺工具
基于視覺的多平臺工具最常用在移動設備自動化測試里。
這些工具通過可視化手段與設備交互,并可以識別文本或圖像,使測試人員構建基于這些認識和內置的手勢的自動腳本。
基于視覺的多平臺工具的優點是它們支持多個平臺,并且可跨多個設備執行測試。
視覺對象由OCR引擎(基本上都是將掃描的手寫、機打圖像,或印刷文本轉換成機器編碼的文本智能軟件引擎)識別。
基于對象的多平臺工具
基于對象的多平臺工具可以在應用程序內通過識別,攔截,并發送信息到對象,直接用和傳統的測試工具一樣的方式來與應用程序UI對象進行交互。
這些工具的優勢是,他們支持多種平臺,并且可以跨平臺上執行測試。
對象級整合也對應用程序變化更加寬容,從而降低與自動化測試相關的整體維護成本。
移動自動化測試的方法
在規劃您的移動自動化工作時,別忘了以下的工具評估和選擇,對象技術的方法:
工具評估和選擇
執行工具的可行性,以檢查是否該工具可以在各種移動技術和平臺使用。
選擇一個同時支持真機和模擬器或仿真器的工具。
識別多種設備和版本支持。
用實用性和可重復使用功能增加自動化測試工作的價值。
了解如果選擇的工具需要你破解或獲取設備的根。
確保該工具支持操作系統的新版本。
對象識別
基于圖像的對象識別:把每個測試對象記錄為圖像,在GUI中匹配對象和可用運行時間圖像。
光學字符識別對象的對象識別:使用光學字符識別(OCR)功能獲取屏幕上的控件的文本。該功能使用了通過字符讀取字符文本的專門算法。
真實對象或本地的對象標識:標識唯一對象的屬性,如“ ID”,“名稱”和“類” 。
基于DOM的識別:利用DOM屬性來識別web應用程序對象。
特點 | 圖像識別 | OCR對象 | 本地對象 | DOM對象 |
對象識別的復雜度 | 容易 | 容易 | 中等 | 中等 |
對象維護工作 | 高 | 高 | 容易 | 中等 |
跨設備支持 | 高 | 中等 | 容易 | 容易 |
執行中的識別速度 | 中等 | 中等 | 中等 | 高 |
結論
通過在移動應用程序測試中使用自動化測試,測試團隊可以在保持質量和減少將產品推向市場時間的同時降低成本。
許多工具可用來支持移動設備自動化測試。選擇正確的工具需要理解業務需求和移動測試獨有的因素。
權衡手機模擬器和真實設備的優劣,企業的最佳移動測試解決方案往往不是只選擇其中一個,而是選擇結合這兩者。