李妍
摘要:隨著移動智能終端廣泛應用,手機APP極大便利了人們生活。本文針對移動智能終端的特性,從不同的方面考慮測試范圍和測試重點,采用相應的自動化測試工具,以確保移動APP能正確、安全、可靠地運行。
關鍵詞:移動平臺;軟件測試;測試工具
隨著4G網(wǎng)絡興起,手機APP對人們的生活提供越來越多的便利,更多的人也越來越關注這些軟件運行的正確性、安全性、可靠性等方面的要求。軟件測試的不斷發(fā)展已經(jīng)逐步形成了一套成熟的理論以及衍生出一系列優(yōu)秀的自動化測試工具,為移動平臺的APP測試提供豐富的經(jīng)驗。由于移動設備的操作方式、不同尺寸的屏幕、網(wǎng)絡接入方式、較小的存儲空間及用戶使用習慣等方面與PC端的差異,導致兩者的測試重點和測試工具也有所差異。
1移動平臺APP與PC端項目測試的區(qū)別
基于移動平臺軟件測試主要針對移動終端上的NativeAPP進行測試,而PC端的軟件測試主要側重基于B/S模式的網(wǎng)站測試。移動APP在移動互聯(lián)網(wǎng)市場上生命周期短,大多數(shù)精彩的APP也只是風靡一時,導致移動APP開發(fā)周期也越來越短,各軟件開發(fā)商為了提高APP在移動應用市場的排名使得軟件更新升級也越來越頻繁,而PC端軟件一般功能齊全,開發(fā)周期較長,更新較慢。由于移動智能終端的容量限制及應用市場上海量APP可供選擇,導致用戶對于相應時間太長或者不符合需求的APP容忍度較低,且基于不同操作系統(tǒng)的移動APP可移植性差,程序員需要針對不同的操作系統(tǒng)開發(fā)軟件,而PC端可以實現(xiàn)跨平臺兼容性。因此,基于移動APP項目測試面臨著巨大的挑戰(zhàn)。
2基于移動平臺APP測試
基于移動平臺的APP測試主要考慮APP的安裝與卸載測試、功能測試、UI測試、兼容性測試、交叉事件測試、安全性測試、性能測試,并且在每個測試階段不斷地進行回歸測試,以確保軟件能正確、穩(wěn)定、安全、可靠得運行。
2.1安裝、卸載測試
安裝與卸載測試是移動APP最先進行的測試環(huán)節(jié)。在對APP進行安裝測試時,需要關注在不同的操作系統(tǒng)版本上,不同智能終端上是否能夠正確安裝,安裝過程中是否可以取消,如遇內(nèi)存不足的情況是否有提示信息同時自動取消安裝并刪除安裝時寫入設備的文件。卸載測試時,程序是否有提示卸載信息,卸載程序過程中能否取消卸載,卸載后能否自動刪除安裝時寫入設備的文件。
2.2功能測試
功能測試是最基本的測試,主要根據(jù)軟件需求規(guī)格說明書來驗證APP功能是否正確實現(xiàn),是否有遺漏或錯誤的功能。采用時間、地點、對象、行為和背景五元素或業(yè)務分析等方法分別提取APP測試點。根據(jù)被測功能的特性,采用恰當?shù)臏y試方法設計相應的測試用例。比如對于多邏輯條件輸入操作可以使用等價類劃分、邊界值、因果圖、場景法等對其進行覆蓋。跟蹤軟件測試的各個階段,及時修正業(yè)務和需求理解錯誤的地方,保證測試的準確性。一般APP功能測試還需要考慮:APP運行、前后臺切換、免登陸、照相機定位功能、時間、消息推送、離線瀏覽、數(shù)據(jù)更新、軟件更新等方面。
基于Android的功能測試工具有Monkeyrtmner和Robotium.Mon-keyrurmer是AndroidSDK自帶的測試工具,它提供了一個API,使用此API寫出的程序可以在Android代碼之外控制Android設備和模擬器。應用于功能測試中,它可以根據(jù)提供按鍵或觸摸事件的輸入數(shù)值,將輸出結果的截屏保存于工作站中。1Kobotium是一個測試框架,它提供了模擬各種手勢操作(點擊、長按、滑動等)、查找和斷言機制的API,能夠?qū)Ω鞣N控件進行操作,它使得編寫黑盒測試代碼更加容易和穩(wěn)定。Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測試,是目前國內(nèi)外使用最多的測試工具。
2.3UI測試
用戶界面是最先映入用戶視線的內(nèi)容,界面的美觀、布局合理直接影響用戶的對APP的興趣。UI測試主要關注用戶界面的布局、風格是否滿足用戶需求,界面文字是否正確、頁面的文字、圖片、色彩搭配是否美觀,操作是否友好等。UI測試主要通過導航測試、圖形測試、內(nèi)容測試來驗證用戶界面是否能為用戶提供訪問和瀏覽功能,并確保用戶界面符合公司或行業(yè)的標準,同時以實現(xiàn)APP軟件良好的交互性、人性化、易操作性。
2.4兼容性測試
兼容性測試是APP測試中最大的挑戰(zhàn),由于移動終端在軟硬件的差異性及網(wǎng)絡接入方式不同導致信息流量大小差異,使得APP的兼容性測試異常困難。
從軟件方面:目前主流的操作系統(tǒng)有Apple公司的10S和Google公司的Android,操作系統(tǒng)版本多樣,根據(jù)硬件支持情況安裝不同的版本。
從硬件方面:屏幕尺寸、分辨率的不同;不同的制造廠商;不同的設備存儲空間等。
從網(wǎng)絡接入方面:移動終端的網(wǎng)絡連接方式有2G/3G/4G/Wi-Fi,確保APP在不同的網(wǎng)絡情況下能夠正常運行。
2.5交叉事件測試
交叉事件又叫事件測試或沖突測試,是非常重要的一種測試,是指當一個APP正常執(zhí)行過程中,另一個事件或操作對APP造成干擾或打斷正在執(zhí)行的進程進行的一種測試。如APP運行過程中與來電、短信、文件下載、音樂收聽、視頻播放等關鍵運用的交互情況的測試等,通過交叉測試能夠發(fā)現(xiàn)APP中潛在的性能問題。交叉測試主要考慮以下幾種情況:
多個APP同時運行時或APP前后臺切換時,是否影響正常功能;
APP運行時接聽/撥打電話、收發(fā)短信和郵件是否影響正常功能;
APP運行時切換網(wǎng)絡是否影響正常功能;
APP運行時使用藍牙收發(fā)數(shù)據(jù)、相機拍照是否影響正常功能等。
2.6安全性測試
安全性是用戶最關注的部分,安全性的好壞直接影響用戶數(shù)量。APP的安全性測試主要從軟件的權限、數(shù)據(jù)安全性、安裝與卸載的安全性考慮。
軟件權限:APP使用過程中,是否存在發(fā)送短信、撥打電話等導致扣費風險;是否自動訪問手機信息、聯(lián)系人、圖片等隱私泄漏風險;或其他非法授權風險。
數(shù)據(jù)安全性:APP不能未經(jīng)用戶的指令或允許損壞刪除用戶信息;能正確處理非法軟件連接用戶個人信息管理的情況;刪除或修改關鍵數(shù)據(jù)時有提示或警告;敏感數(shù)據(jù)應不能以明文方式形式顯示或直接存儲,采用加密算法對密碼等敏感數(shù)據(jù)進行保護;臨時文件要及時刪除。
安裝與卸載的安全性:安裝APP時,是否包含數(shù)字簽名信息、是否捆綁其他軟件、是否自啟動、卸載是否完全、卸載是否會影響其他軟件的運行。
2.7性能測試
性能測試主要評估APP的時間和空間特性,APP性能的好壞直接影響APP未來的發(fā)展。對APP進行性能測試主要考慮以下幾個方面:在各種邊界壓力情況下,如手機電池量不足、內(nèi)存占滿、網(wǎng)絡中斷等,APP能否正確響應;安裝、卸載的響應時間及APP各功能、業(yè)務單獨執(zhí)行時響應時間是否在用戶可承受范圍之內(nèi)APP在連續(xù)運行24小時或更長時間的情況下,反復安裝卸載、持續(xù)執(zhí)行各項功能,系統(tǒng)資源占用是否正常;典型情況下評估APP運行時系統(tǒng)資源的使用情況,包括內(nèi)存占用率、CPU占用率、電池消耗情況、帶寬占用率等。
Monkey也是AndroidSdk中的一個命令行工具,可以運行在模擬器里或?qū)嶋H設備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應用程序進行壓力測試。
總之,從最初的手工測試到逐漸發(fā)展的自動化測試工具,到目前已經(jīng)有多款云測試平臺可提供給軟件開發(fā)商進行測試。云測試平臺在云端部署各種移動設備終端真機,并且擁有有一個強大的測試團隊的組織,它給用戶提供一個客戶端,用戶只需上傳APP安裝文件即可在電腦上控制云端真機,實現(xiàn)功能測試、交叉事件測試、UI測試、兼容性測試、安全性測試等。云測試平臺是自動化測的產(chǎn)物,只有測試技術不斷提高,才能確保軟件安全、穩(wěn)定地運行。