桑遠超
引言:近幾年智能手機等移動終端迅速普及,移動互聯(lián)網(wǎng)的用戶數(shù)量不斷攀升,作為移動互聯(lián)網(wǎng)的關鍵載體的移動應用軟件在市場催生下更是呈爆發(fā)式增長,而大多數(shù)軟件測試人員發(fā)現(xiàn)移動設備上的軟件測試非常富有挑戰(zhàn)性,本文以移動應用測試的主要考慮因素為著力點,分析總結了這些不同于PC應用軟件測試的挑戰(zhàn),并給出部分解決方案。
隨著蘋果iOS和谷歌Android等移動操作系統(tǒng)的興起,各種手持移動設備迅速滲入人們的工作與生活,人們通過移動設備傳遞信息、接收資訊,而幫助用戶直接完成這些動作的就是各種移動應用軟件。移動場合多樣可變,移動應用的發(fā)展空間巨大,應用的測試需求也日益迫切,但移動應用和傳統(tǒng)桌面應用運行環(huán)境不同,測試所考慮的因素也大不相同,這給軟件測試人員帶來了哪些挑戰(zhàn)?測試人員又要如何面對這些挑戰(zhàn)呢?
一、 移動應用測試主要考慮因素
要創(chuàng)建成功的移動應用測試計劃,必須先熟悉移動應用所發(fā)生的環(huán)境,從而分析測試所要考慮的關鍵因素。首先需要理解設備連接問題和網(wǎng)絡速度、有效區(qū)域以及網(wǎng)絡時延;接下來要考慮設備的多樣性、設備的各種限制、設備的交互手段;最后是程序的升級與維護。這些因素都為移動應用軟件的測試帶來了不同于傳統(tǒng)軟件測試的挑戰(zhàn)。
1.1網(wǎng)絡連接
大部分的移動設備都能夠通過使用無線熱點和無線接入點聯(lián)網(wǎng),即使蜂窩移動通信采用了3G和4G技術,在速度和穩(wěn)定等性能等方面都比不上熱點連接。設計移動應用時,開發(fā)者希望它能夠使用速度相對較慢和性能相對不穩(wěn)定的數(shù)據(jù)鏈路網(wǎng)絡。為了發(fā)現(xiàn)程序針對用例的錯誤,不僅要在網(wǎng)絡通暢的環(huán)境下測試,還應該充分測試網(wǎng)絡連接不佳的情況下應用的可用性和可靠性。
1.2設備的各種限制
便攜和移動上網(wǎng)都是移動設備和移動互聯(lián)網(wǎng)得以快速流行的主要原因,但是這些優(yōu)點同時給移動設備帶來了相應的限制,這些限制也是移動應用測試不得不考慮的因素。輕薄的設備不能配備大容量的存儲介質(zhì)、大尺寸的處理器,短期內(nèi)的硬件制造工藝還不能擺脫這些限制,所以移動設備的內(nèi)存資源和計算能力是有限的。另外關于移動互聯(lián)網(wǎng)穩(wěn)定性和帶寬的限制在上述網(wǎng)絡連接部分已經(jīng)提到。
1.3設備多樣性和兼容性
市場上有大量的不盡相同配置差別懸殊的設備,應用對GPS、攝像頭、麥克風等內(nèi)置配件的調(diào)用,以及使用觸摸屏、觸摸筆、滾球等輸入設備與應用進行交互,這些行為給用戶帶來的體驗也與傳統(tǒng)應用完全不同,成功的測試計劃必須考慮用戶是如何與這些設備進行交互的,還有應用是否兼容各種不同配置的設備。
二、 移動應用測試面臨的挑戰(zhàn)
移動應用測試充滿了挑戰(zhàn),為了更從容地應對這些挑戰(zhàn),對他們進行歸類。主要來源于以下四個方面:網(wǎng)絡基礎設施,設備多樣性,生命周期短,自動化測試。
2.1網(wǎng)絡基礎設施
程序支持多個運營商,需跨越兩道難關:理解和適應運營商網(wǎng)絡的基礎設施和架構,以及克服基于位置的障礙。移動應用程序使用的不是并不是傳統(tǒng)的基于IP協(xié)議的無線熱點一類的運營商網(wǎng)絡,而是基于射頻的協(xié)議,如碼分多址(CDMA)、時分多址(TDMA)或者全球移動通信系統(tǒng)(GSM)?;谏漕l的協(xié)議將基于IP協(xié)議的數(shù)據(jù)包當作有效載體,對其進行傳輸并分發(fā)到移動設備上,然后通過移動設備進行解碼并最終呈現(xiàn)給應用程序。
2.2設備多樣性
不斷增長的設備多樣性測試所帶來的挑戰(zhàn),開發(fā)商永遠在不停地發(fā)布新的設備,跟不上開發(fā)商的發(fā)布速度,越來越多妍高的設備意味著要給中的測試增加更多的測試用例。越來越多樣的設備意味著需要為手中的測試增加更多的測試用例。數(shù)以百計的不同類型的設備可能會安裝并使用你的程序,任何沒經(jīng)過測試的機型都有可能不兼容你的應用程序,意味著損失的不僅僅是一個客戶。
2.3生命周期短,更新頻繁
很大一部分移動應用是軟件生產(chǎn)者為了迎合移動互聯(lián)網(wǎng)從PC端移植過來的,或者是一些更適合移動互聯(lián)網(wǎng)的新創(chuàng)意,生產(chǎn)商為了快速發(fā)布以搶占市場,獲取更多的用戶,通常會將第一版的開發(fā)周期壓縮到很短。這不僅給隨后的產(chǎn)品升級保留了很大的空間,甚至還導致了軟件出現(xiàn)bug的概率增加,而這兩點也都將直接導致應用的更新頻繁。
2.4自動化測試
創(chuàng)建和執(zhí)行測試腳本軟件測試的常用技巧,但是移動設備真機的環(huán)境通常不允許加載可以反復執(zhí)行的自動化測試腳本,從而需要測試人員按照寫好的文檔化的測試步驟在目標設備上手工執(zhí)行,目標設備不可能只是一種,可以預見工作量會很大,并且人工測試用例很容易出錯。
三、模擬器測試應對挑戰(zhàn)
移動應用測試有真機測試和基于模擬器的測試兩種基本選擇,真機測試雖然價格不菲,但是對于網(wǎng)絡基礎設施帶來的挑戰(zhàn),真機測試似乎是不可避免的,在真實的運營商網(wǎng)絡測試中需要身臨其境。而模擬器測試的優(yōu)勢也不僅僅是節(jié)約成本,還可以方便地應對設備多樣性以及腳本化編程給測試帶來的挑戰(zhàn)。
3.1模擬器測試應對設備多樣性
不同的模擬器模擬不同的設備,為了模擬在某一種設備上測試,只需要加載該種設備對應的模擬器配置文件即可,且基于PC的模擬器容易管理,每一個測試人員都有這個設備。為了驗證那些因為程序代碼改動而導致的設備兼容性問題,可能需要在各個設備上快速執(zhí)行測試,有了自動化測試,可以事半功倍。
3.2模擬器腳本編程實現(xiàn)自動化測試
模擬器對高級腳本編程語言的支持,可以創(chuàng)建可持續(xù)反復運行的,較少認為失誤的自動化測試腳本,而自動化測試通常要比人工測試快得多,模擬器上的腳本編程語言往往是與設備無關的,自動化測試腳本可以一處編寫,隨處運行。
四、結語
移動應用已經(jīng)滲透到我們工作生活的方方面面,在移動設備上運行賦予其更接近用戶的特殊性,其軟件的質(zhì)量會影響到應用的用戶量和粘性。移動應用測試時軟件測試的新領域,移動的環(huán)境為測試增添了更多的復雜性和人機交互途徑,只有深刻的理解和掌握所面臨的挑戰(zhàn),才能成功地測試移動應用程序。
參考文獻
[1]Glenford J.Myers, Tom Badgett, Corey Sandler. The Art of Software Testing. Third Edition. ISBN:9787111376606,2012.
[2]Mobility & App testing Community. Checklist Mobile App Testing. Version 1.0, 2012.
(作者單位:中山大學軟件學院)