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