文 | 喻曉 袁謙 吳廣 劉健
移動(dòng)應(yīng)用軟件測(cè)試要點(diǎn)綜述
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,人們對(duì)于移動(dòng)應(yīng)用軟件的需求呈現(xiàn)爆發(fā)式增長(zhǎng),對(duì)其質(zhì)量以及用戶使用體驗(yàn)更是提出了相當(dāng)高的要求。同時(shí),移動(dòng)應(yīng)用版本的持續(xù)更新和功能的大量增多,以及設(shè)備廠商的井噴式增長(zhǎng)和操作系統(tǒng)版本的快速更迭,使得用戶對(duì)應(yīng)用的要求不僅僅是功能的簡(jiǎn)單實(shí)現(xiàn),而更多關(guān)注的是移動(dòng)應(yīng)用軟件的穩(wěn)定性、可靠性、兼容性、性能效率等方面。
移動(dòng)應(yīng)用測(cè)試是保證移動(dòng)應(yīng)用質(zhì)量最基本的方法,在移動(dòng)應(yīng)用軟件開(kāi)發(fā)過(guò)程中,軟件測(cè)試不僅是軟件開(kāi)發(fā)的一個(gè)有機(jī)組成部分,而且在軟件開(kāi)發(fā)的系統(tǒng)工程中占據(jù)著相當(dāng)大的比重,是保證軟件質(zhì)量的必要環(huán)節(jié)。
從應(yīng)用類型來(lái)看,移動(dòng)應(yīng)用分為原生應(yīng)用(Native APP)、Web應(yīng)用(Web APP)和混合應(yīng)用(Hybrid APP)。
根據(jù)不同的應(yīng)用類型,測(cè)試的側(cè)重點(diǎn)應(yīng)有所不同。由于原生應(yīng)用直接運(yùn)行于Android或iOS等系統(tǒng)的移動(dòng)設(shè)備之上,支持離線運(yùn)行,有較好的易用性、流暢的畫(huà)面,以及較高的用戶體驗(yàn),因此測(cè)試重點(diǎn)應(yīng)主要集中在軟件安裝與卸載、功能測(cè)試、交叉事件測(cè)試、兼容性等方面。Web應(yīng)用本質(zhì)上是為移動(dòng)瀏覽器設(shè)計(jì)的基于HTLM5的應(yīng)用,因而測(cè)試重點(diǎn)應(yīng)放在功能測(cè)試、UI測(cè)試、兼容性、性能測(cè)試等方面。而作為兩者的結(jié)合,混合應(yīng)用的測(cè)試重點(diǎn)也要求更高更全面。
移動(dòng)應(yīng)用軟件測(cè)試流程主要包括測(cè)試需求分析、測(cè)試計(jì)劃編制、測(cè)試用例設(shè)計(jì)、測(cè)試實(shí)施、測(cè)試結(jié)果整理、測(cè)試報(bào)告生成等階段。從測(cè)試需求分析到測(cè)試實(shí)施階段,安裝與卸載、功能測(cè)試、UI測(cè)試、兼容性測(cè)試、交叉事件測(cè)試、安全性測(cè)試、性能測(cè)試等測(cè)試重點(diǎn)便涉及其中,測(cè)試人員應(yīng)根據(jù)移動(dòng)應(yīng)用類型和具體的委托測(cè)試需求,確定測(cè)試的重點(diǎn)方向并明確測(cè)試需求和測(cè)試計(jì)劃,繼而進(jìn)行用例設(shè)計(jì)和后續(xù)測(cè)試流程。
根據(jù)移動(dòng)應(yīng)用的測(cè)試重點(diǎn),以下主要考慮安裝與卸載測(cè)試、功能測(cè)試、UI測(cè)試、兼容性測(cè)試、交叉事件測(cè)試、安全性測(cè)試、性能測(cè)試,以確保軟件能正確、穩(wěn)定、安全、可靠的運(yùn)行。
安裝與卸載測(cè)試是移動(dòng)應(yīng)用最先進(jìn)行的測(cè)試環(huán)節(jié)。在對(duì)移動(dòng)應(yīng)用軟件進(jìn)行安裝測(cè)試時(shí),需要關(guān)注在不同的操作系統(tǒng)版本上,不同智能終端上是否能夠正確安裝,安裝過(guò)程中是否可以取消,如遇內(nèi)存不足的情況是否有提示信息同時(shí)自動(dòng)取消安裝并刪除安裝時(shí)寫(xiě)入設(shè)備的文件;安裝完成后的軟件是否能夠正常運(yùn)行,安裝后的文件夾及文件是否寫(xiě)到了指定的目錄里。卸載測(cè)試時(shí),程序是否有提示卸載信息,卸載程序過(guò)程中能否取消卸載,卸載后能否自動(dòng)刪除安裝時(shí)寫(xiě)入設(shè)備的文件。
功能測(cè)試是最基本的測(cè)試,主要根據(jù)軟件說(shuō)明書(shū)或需求規(guī)格說(shuō)明書(shū)來(lái)驗(yàn)證移動(dòng)應(yīng)用功能是否正確實(shí)現(xiàn),是否有遺漏或錯(cuò)誤的功能。一般采用時(shí)間、地點(diǎn)、對(duì)象、行為和背景五元素或業(yè)務(wù)分析等方法分提取測(cè)試點(diǎn)。根據(jù)被測(cè)功能的特性,采用恰當(dāng)?shù)臏y(cè)試方法設(shè)計(jì)相應(yīng)的測(cè)試用例,比如對(duì)于多邏輯條件輸入操作可以使用等價(jià)類劃分、邊界值、因果圖、場(chǎng)景法等對(duì)其進(jìn)行覆蓋。一般移動(dòng)應(yīng)用功能測(cè)試還需要考慮:運(yùn)行、前后臺(tái)切換、免登陸、照相機(jī)定位功能、時(shí)間、消息推送、離線瀏覽、數(shù)據(jù)更新、軟件更新等方面。
移動(dòng)應(yīng)用測(cè)試流程及相關(guān)測(cè)試重點(diǎn)圖
UI測(cè)試即用戶界面測(cè)試,是對(duì)軟件中的可見(jiàn)外觀及其與用戶交互部分的測(cè)試,主要關(guān)注用戶界面的布局、風(fēng)格是否滿足用戶需求??梢?jiàn)外觀包括界面的色彩搭配、圖標(biāo)、字體、按鈕是否美觀、合理,提示信息和頁(yè)面是否有語(yǔ)法錯(cuò)誤等內(nèi)容;與用戶交互部分一般是指菜單、對(duì)話框、按鈕等控件。
UI測(cè)試主要通過(guò)導(dǎo)航測(cè)試、圖形測(cè)試、內(nèi)容測(cè)試,以及軟件在不同屏幕尺寸和分辨率下的測(cè)試等來(lái)驗(yàn)證用戶界面是否能為用戶提供訪問(wèn)和瀏覽功能,以實(shí)現(xiàn)移動(dòng)引用軟件良好的交互性、人性化、易操作性,同時(shí)應(yīng)注意用戶界面是否符合公司或行業(yè)的標(biāo)準(zhǔn)。
兼容性測(cè)試是在規(guī)定的條件下,應(yīng)用程序與相關(guān)硬件、軟件、網(wǎng)絡(luò)、數(shù)據(jù)等之間是否滿足有關(guān)要求能力的適配性驗(yàn)證。針對(duì)移動(dòng)應(yīng)用軟件,兼容性測(cè)試應(yīng)主要考慮以下幾個(gè)方面:
硬件兼容性:主要關(guān)注移動(dòng)應(yīng)用在不同的設(shè)備上是否能夠正確顯示、穩(wěn)定地運(yùn)行;在不同屏幕尺寸和分辨率情況下能否正常操作、顯示。
軟件兼容性:主要測(cè)試移動(dòng)應(yīng)用在Android、iOS等不同操作系統(tǒng)下是否能夠正常運(yùn)行;是否會(huì)影響其他應(yīng)用的使用或受其他應(yīng)用程序影響;是否兼容相關(guān)瀏覽器進(jìn)行正常的訪問(wèn)和操作。
網(wǎng)絡(luò)兼容性:在2G/3G/4G/Wi-Fi等不同網(wǎng)絡(luò)連接下,移動(dòng)應(yīng)用是否能夠正常使用運(yùn)行。
數(shù)據(jù)兼容性:同一軟件不同版本之間,以及與其他軟件之間的數(shù)據(jù)兼容和共享是否正常。
交叉事件又叫事件測(cè)試或沖突測(cè)試,是指當(dāng)一個(gè)移動(dòng)應(yīng)用正常執(zhí)行過(guò)程中,同時(shí)另一個(gè)事件或操作對(duì)當(dāng)前應(yīng)用過(guò)程造成干擾或打斷的一種測(cè)試。這些事件通常包括來(lái)電、短信、微信、消息推送、文件下載、音樂(lè)收聽(tīng)、視頻播放等。
對(duì)于移動(dòng)應(yīng)用軟件來(lái)說(shuō)這是非常重要的一種測(cè)試,因?yàn)樵谥悄苁謾C(jī)等移動(dòng)終端的日常使用中經(jīng)常會(huì)發(fā)生交叉事件,對(duì)于交叉或沖突事件,應(yīng)重點(diǎn)關(guān)注:
多應(yīng)用同時(shí)運(yùn)行時(shí),是否會(huì)影響目標(biāo)測(cè)試應(yīng)用或其他應(yīng)用的正常運(yùn)行。
當(dāng)目標(biāo)測(cè)試應(yīng)用進(jìn)行前后臺(tái)切換時(shí),是否會(huì)影響其正常使用運(yùn)行。
當(dāng)目標(biāo)測(cè)試應(yīng)用運(yùn)行使用時(shí),電話接聽(tīng)/撥打、微信消息提示、消息推送、相機(jī)拍照等事件是否影響其正常運(yùn)行使用。
當(dāng)網(wǎng)絡(luò)切換時(shí),是否影響目標(biāo)測(cè)試應(yīng)用的正常運(yùn)行使用。
安全性是用戶最關(guān)注的部分,安全性的好壞直接影響用戶數(shù)量。移動(dòng)應(yīng)用的安全性測(cè)試主要從軟件的權(quán)限和數(shù)據(jù)安全性考慮。安全測(cè)試是檢查軟件中已存在的安全性、安全保密性措施是否有效的測(cè)試。其重點(diǎn)關(guān)注以下幾個(gè)方面:
軟件權(quán)限: 運(yùn)行應(yīng)用時(shí),是否會(huì)有扣費(fèi)風(fēng)險(xiǎn)、泄露隱私風(fēng)險(xiǎn)、非法授權(quán)訪問(wèn)等方面因素;
數(shù)據(jù)安全性:應(yīng)用是否在未經(jīng)用戶的指令或允許損壞刪除用戶信息;是否能正確處理非法軟件連接用戶個(gè)人信息管理的情況;刪除或修改關(guān)鍵數(shù)據(jù)時(shí)是否有提示或警告;敏感數(shù)據(jù)是否以明文方式形式顯示或直接存儲(chǔ),采用加密算法對(duì)密碼等敏感數(shù)據(jù)進(jìn)行保護(hù);臨時(shí)文件是否及時(shí)刪除。
性能測(cè)試主要評(píng)估軟件的時(shí)間和資源特性,移動(dòng)應(yīng)用性能的好壞直接影響其用戶體驗(yàn)和未來(lái)的發(fā)展。對(duì)APP進(jìn)行性能測(cè)試主要考慮以下幾個(gè)方面:
壓力測(cè)試:在各種邊界壓力情況下,如手機(jī)電池量不足、內(nèi)存占滿、網(wǎng)絡(luò)中斷等,應(yīng)用能否正確響應(yīng);在承受最大并發(fā)用戶數(shù)持續(xù)運(yùn)行的情況下,系統(tǒng)是否運(yùn)行平穩(wěn),業(yè)務(wù)失敗率是否在可接受范圍內(nèi)。
響應(yīng)時(shí)間:安裝、卸載的響應(yīng)時(shí)間及應(yīng)用各功能、業(yè)務(wù)單獨(dú)執(zhí)行時(shí)響應(yīng)時(shí)間是否在用戶可承受范圍之內(nèi)。
可靠性:在反復(fù)或長(zhǎng)期執(zhí)行的情況下,應(yīng)用的各項(xiàng)功能能否正常運(yùn)行,系統(tǒng)資源占用是否出現(xiàn)異常。
資源特性:典型情況下評(píng)估APP運(yùn)行時(shí)系統(tǒng)資源的使用情況,包括內(nèi)存占用率、CPU占用率、電池消耗情況、帶寬占用率等。
所謂自動(dòng)化測(cè)試,是指利用自動(dòng)化測(cè)試工具取代手工方式,進(jìn)行一系列測(cè)試操作,以此來(lái)滿足軟件驗(yàn)證需求。其中,移動(dòng)應(yīng)用測(cè)試以界面操作為主要測(cè)試方式,因此測(cè)試腳本的錄制和回放就顯得尤為重要,需要借助針對(duì)于移動(dòng)應(yīng)用的自動(dòng)化測(cè)試框架(平臺(tái))或工具。目前,比較成熟的有:基于坐標(biāo)點(diǎn)觸屏的Google公司的Monkeyrunner測(cè)試工具;基于元素圖形對(duì)比的Experitest公司的SeeTest測(cè)試工具;騰訊Bita云測(cè)試平臺(tái)和性能測(cè)試工具GT;云測(cè)公司的iTestin測(cè)試工具;Robotium自動(dòng)化測(cè)試框架;Google的UIAutomator測(cè)試工具;Microsoft公司的UIAutomation;Micro Focus公司的 Silk Test等。測(cè)試人員可以根據(jù)測(cè)試項(xiàng)目的復(fù)雜程度以及測(cè)試平臺(tái)的性價(jià)比選擇適合測(cè)試需要的測(cè)試框架。
在形成測(cè)試腳本之后,需根據(jù)測(cè)試場(chǎng)景對(duì)測(cè)試腳本進(jìn)行編輯,形成最終的測(cè)試方案流程。同時(shí),結(jié)合適用的測(cè)試方案管理工具,將包含所需測(cè)試用例的測(cè)試腳本統(tǒng)籌規(guī)劃,形成自動(dòng)化測(cè)試運(yùn)行計(jì)劃,并按周期執(zhí)行測(cè)試計(jì)劃。
進(jìn)行移動(dòng)應(yīng)用自動(dòng)化測(cè)試,獲取并識(shí)別應(yīng)用軟件中的對(duì)象是自動(dòng)化測(cè)試的第一步,也是自動(dòng)化測(cè)試執(zhí)行中用于對(duì)已識(shí)別的對(duì)象進(jìn)行比較的基礎(chǔ)。常用的對(duì)象識(shí)別技術(shù)主要有:
基于坐標(biāo)點(diǎn)的對(duì)象識(shí)別:通過(guò)點(diǎn)擊目標(biāo)應(yīng)用控件(如按鈕、菜單、表單等),記錄點(diǎn)擊位置的坐標(biāo)(x,y),形成測(cè)試腳本。這種方法可以跨平臺(tái)應(yīng)用,但卻存在移植性不好的問(wèn)題,若新的移動(dòng)設(shè)備尺寸和分辨率與錄制測(cè)試腳本時(shí)的設(shè)備不一致,就可能存在無(wú)法識(shí)別的風(fēng)險(xiǎn)。具體辦法可通過(guò)將靜態(tài)坐標(biāo)(x,y)變換為動(dòng)態(tài)坐標(biāo)(Ax,By),A和B分別為新設(shè)備相對(duì)于原錄制設(shè)備在橫向和縱向的尺寸或分辨率比例系數(shù)。
基于元素圖形對(duì)比的對(duì)象識(shí)別:把某界面的某一區(qū)域的圖像定義為一個(gè)元素,通過(guò)圖片元素定位。具體的實(shí)現(xiàn)通過(guò)在錄制期間截取某個(gè)按鈕的圖片并保存到對(duì)象庫(kù),運(yùn)行時(shí)通過(guò)該圖片對(duì)象來(lái)定位對(duì)應(yīng)的按鈕進(jìn)行測(cè)試。這種基于圖像元素識(shí)別的技術(shù),帶來(lái)的好處是可以使測(cè)試腳本和設(shè)備的操作系統(tǒng)無(wú)關(guān)。
基于控件的對(duì)象識(shí)別:根據(jù)類型或者文本去篩選,找到并獲取控件中心點(diǎn)絕對(duì)坐標(biāo),點(diǎn)擊坐標(biāo)完成測(cè)試動(dòng)作?;诳丶?duì)象識(shí)別技術(shù)使測(cè)試腳本具有較好的可移植性。
基于Xpath的對(duì)象識(shí)別:XPath是一種在XML文檔中定位元素的語(yǔ)言,當(dāng)屏幕點(diǎn)擊或選擇時(shí),通過(guò)記錄對(duì)象的絕對(duì)或者相對(duì)Xpath路徑,進(jìn)而實(shí)現(xiàn)關(guān)于對(duì)象的識(shí)別。當(dāng)我們所要定位的元素很難找到合適的方式時(shí),都可以通過(guò)這種絕對(duì)或者相對(duì)路徑的方式定位。
移動(dòng)應(yīng)用已成為人們?nèi)粘I钪胁豢苫蛉钡闹匾M成部分,其軟件質(zhì)量的好壞直接影響到用戶使用量及用戶粘度;同時(shí),移動(dòng)應(yīng)用軟件在各行各業(yè)中的應(yīng)用日益廣泛,生活、辦公移動(dòng)化已成趨勢(shì),我們必須要認(rèn)識(shí)到移動(dòng)應(yīng)用軟件對(duì)于當(dāng)今社會(huì)的重要性。從目前來(lái)看,相比較傳統(tǒng)的PC及互聯(lián)網(wǎng)應(yīng)用測(cè)試,移動(dòng)應(yīng)用軟件測(cè)試仍處于發(fā)展階段,需要更多的測(cè)試經(jīng)驗(yàn)和方法創(chuàng)新,促進(jìn)移動(dòng)應(yīng)用自動(dòng)化測(cè)試、云測(cè)試等技術(shù)日益成熟演進(jìn)。