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