移動app傳統測試流程優化

[本文出自天外歸雲的博客園]前端

概述

在傳統的軟件測試流程中,每一期需求從開發到上線都要經歷從需求分析與評審、測試用例評審、開發、測試、發佈的流程。其中測試包含了後臺測試、前端web測試、客戶端測試。後臺測試又包括後臺代碼邏輯測試、接口測試、接口壓力測試等,web端測試包含了前端頁面的UI界面測試、PC與移動端瀏覽器兼容性測試和功能測試等,而客戶端測試包含的測試項目較多,而每項測試又相對技術含量較高,從而引入了專項測試的概念。和針對客戶端每期需求所作的功能測試不一樣,專項測試的結果雖然與產品的具體功能相關,又包含獨立於產品需求功能以外的部分。這也使得咱們在設計客戶端測試用例的時候常常會把屬於專項測試中的部份內容忽略掉,從而致使了一些在設計測試用例思路上的疏漏。
 

移動app專項測試有哪些

從專項測試的概念出發,移動端app的專項測試包括:
安裝包測試、兼容性測試、內存泄露測試、耗電量測試、流量測試、衝突測試、弱網測試、接口容錯測試、系統權限測試、過分繪製測試。
 
在現有的業務中引入專項測試,咱們須要考慮如下三點:
1. When to 專項測試?
2. How to 專項測試?
3. Why to 專項測試?
 

安裝包測試

安裝包測試介紹
安裝包測試就是對包括安裝、卸載、升級三種方式在內的提示信息的測試、安裝和升級後的包名稱、版本信息、logo、客戶端主要功能的驗證與測試。安裝包測試的重要性不言而喻,它直接可以影響用戶下載量和app激活率,間接影響用戶轉化率。
安裝包測試主要包括如下幾點:
1)常規安裝包測試;
2)從低版本到高版本的覆蓋安裝測試;
3)從低版本到高版本的app內部升級測試;
4)過程當中手機內存、硬盤不足狀況下的安裝包測試;
5)安裝殺毒軟件的前提下的安裝包測試;
6)過程當中強行關機、斷網、電話呼入呼出、跳轉到其餘app內進行操做的安裝包測試;
7)中斷測試(檢查是否可以回退到以前狀態):安裝中斷、卸載中斷、升級中斷;
8)不一樣iOS版本、安卓版本的安裝包測試。
何時進行安裝包測試?
安裝包的測試在軟件測試流程中的階段要先於功能測試階段。
 

兼容性測試

兼容性測試介紹
兼容性測試就是針對app所處硬件與軟件環境的不一樣而進行的測試。兼容性測試很重要,若是一個app換個手機就閃退,換個系統就拋異常,無疑會間接影響到用戶對產品的評價,直接與間接的增長用戶的流失率、減小app的下載量。
兼容性測試主要包括如下幾種:
1)操做系統版本兼容:Andoird版本,iOS版本;
2)屏幕尺寸與分辨率兼容:
2.8英寸分辨率爲640x480(VGA) 像素密度286PPI 
3.5英寸分辨率爲960x640(DVGA) 像素密度326PPI(iPhone4)
4.0英寸分辨率爲1136x640(HD) 像素密度330PPI(iPhone5)
4.7英寸分辨率爲1280x720(HD) 像素密度312PPI
... ...
10 英寸分辨率爲2560x1600 像素密度299ppi
3)Android ROM兼容:小米、華爲、魅族、中興、谷歌、三星;
4)網絡類型兼容:Wifi、3G、4G。
何時進行兼容性測試?
兼容性測試通常在功能測試沒有問題的基礎上展開,在軟件測試流程中的階段排在功能測試階段以後、發版上線階段以前。
 

內存泄露測試

內存泄露測試介紹
內存泄露測試就是爲了檢測在測試的過程當中是否有內存泄露的狀況的發生而進行的測試。偶爾的內存泄漏現象通常用戶是難以察覺的,可是這部分的測試仍然很是有必要,由於內存泄露的堆積會最終消耗盡系統全部的內存,嚴重影響機器的性能。內存泄露測試須要藉助於工具。
何時進行內存泄露測試
內存泄露測試貫穿着整個軟件測試流程,因此內存泄露測試和功能測試階段進行。
 

耗電量測試

耗電量測試介紹
耗電量測試就是在不一樣的場景下爲檢測電量消耗程度而進行的測試。之因此要進行耗電量測試,舉例來講,有用戶反饋在用一款app的時候發現電量消耗很快,最後把app卸載了之後一切恢復了正常。若是用戶間接的評論了產品,用戶的評價將直接影響app的下載量。耗電量的測試須要藉助於工具。幾個典型的耗電場景以下:
  1)定位,尤爲是調用GPS定位;
  2)網絡傳輸,尤爲是非Wifi環境;
  3)屏幕亮度;
  4)CPU頻率(一些客戶端內的操做會增長CPU頻率);
  5)內存調度頻度(同上);
  6)鎖屏與喚醒的時間和次數。
耗電量測試用例的設計需圍繞以上幾點,結合需求與功能進行展開。
何時進行耗電量測試
耗電量測試能夠和功能測試階段進行。
 

流量測試

流量測試介紹
流量測試就是在手機上面點擊想要測試的界面或者一組場景,而後查看用了多少流量的測試。流量測試很重要,有些產品的流量消耗是嚴重的,而一些用戶安裝了流量統計軟件,用戶可能會考慮卸載掉那些流量消耗嚴重的軟件或在沒有wifi的狀況下禁止使用相應的app。流量測試須要藉助於工具。
何時進行流量測試
流量測試能夠在確保功能沒有問題的前提下與功能測試階段進行。
 

衝突測試

衝突測試介紹
衝突測試就是在運行某一程序的功能時被第三方功能或軟件干擾的測試。衝突測試是一種對軟件狀態的測試,軟件狀態又分爲「開始」、「掛起」、「結束」三種,因此衝突測試也是模擬干擾軟件運行「開始」、「掛起」、「結束」三種狀態的測試。在模塊的操做過程當中觸發一些常見的打斷,測試客戶端對於事件優先級的處理是否影響功能。衝突測試的難點在要打斷一個事件須要事先算好時間,而對於有些速度快難以打斷的狀態來講想要實現衝突測試有時須要藉助於一些自動化的手段來實現。
衝突測試主要關注的點:
1)來電呼入;
2)網絡切換;
3)短信通知;
4)Push消息;
5)鬧鐘;
6)USB插入;
7)掛起;
8)程序歷史記錄啓動;
9)長按鍵關機;
10)自動橫屏;
11)鎖屏待機;
何時進行衝突測試
衝突測試涉及整個軟件測試流程,例如:安裝包測試中就涉及了衝突測試。因此,衝突測試貫穿整個軟件測試流程,先於功能測試階段進行。
 

弱網測試

弱網測試介紹
弱網測試就是在不一樣網絡環境下對app所進行的測試。受網絡情況影響的功能每每與後臺接口相關,客戶端內數據的更新也是經過調用後臺接口並接收返回來的數據而完成的。設計弱網測試用例的關鍵在於分析哪些功能與後臺接口掛鉤,凡是與後臺接口掛鉤的功能,都有必要考慮是否須要針對性的設計弱網測試用例。弱網的模擬須要藉助於工具。
何時進行弱網測試
弱網測試和功能測試階段進行。
 

接口容錯測試

接口容錯測試介紹
接口容錯測試就是對於服務端接口返回異常或不合理的數據的狀況下,驗證客戶端內是否可以正確處理異常數據的測試。接口返回超時及返回異常都應該對應在客戶端內有合理的提示以提升用戶體驗度。接口容錯測試須要藉助抓包工具來完成對接口返回數據的修改。
何時進行接口容錯測試
接口容錯測試與功能測試階段進行。
 

系統權限測試

系統權限測試介紹
系統權限測試就是針對app須要獲取系統權限處所設計的測試。在測試的過程當中主要檢查客戶端內對於獲取系統權限處的處理是否友好,功能上是否正常。咱們須要對涉及到獲取系統權限的功能模塊作一個統計,從而肯定設計測試用例的範圍。每每涉及系統權限測試相關的功能點也包含在客戶端每期的需求當中,因此涉及系統權限方面的測試點通常不容易被忽略。
測試用例需包含對app設置了「容許權限」、「提醒權限」、「禁止權限」三種狀況:
1)容許權限:app內相關模塊功能正常;
2)提醒權限:app內相關模塊功能觸發時會出現提醒;
3)禁止權限:app內相關模塊功能觸發時會友好提示,並不會有異常和崩潰的現象。
何時進行系統權限測試
系統權限測試與功能測試階段進行。
 

過分繪製測試

過分繪製測試介紹
過分繪製是指在一幀的時間內(16.67ms)像素被繪製了屢次,每次繪製都會佔用CPU,當繪製超時時就會出現卡頓現象。而過分繪製測試就是要檢查在測試過程當中是否有過分繪製的現象發生。測試每每須要藉助於工具,由於過分繪製現象肉眼很難可以分辨。Android系統的開發者工具中提供了「強制進行GPU渲染」功能能夠幫助咱們來發現過分繪製現象。產品並不知道哪些功能模塊會有過分繪製的風險,因此並不會把涉及過分繪製的內容寫到需求說明文檔中。因爲須要對可能發生過分繪製的地方有必定的把握能力(通常在涉及Activity跳轉的地方返回容易有過分繪製現象發生。例如:從Activity A跳轉到Activity B後Activity A沒有被銷燬,從Activity B返回Activity A後Activity A又被重現建立,這時就容易出現過分繪製),因此實際測試中咱們很容易將這部分測試用例的設計忽略掉。
過分繪製主要關注的地方舉例(拿「一元樂購」app來講):
1)首頁的快捷入口icon(充值、1元變20、曬單、易中商品);
2)樂購頭條滾動欄可點擊的部分。
想要設計這部分的測試用例,須要:
1)弄清app內可能存在的全部Activity;
2)肯定能觸發Activity之間跳轉的功能模塊;
何時進行過分繪製測試
過分繪製測試與功能測試階段進行。
 

移動app專項測試實施方案

從以上總體對專項測試階段的把握來看,分三隊:
第一隊:安裝包測試、衝突測試;
第二隊:內存泄露測試、耗電量測試、流量測試、弱網測試、接口容錯測試、系統權限測試、過分繪製測試;
第三隊:兼容性測試。
 

具體實施方案

安裝包測試:建議對安裝方面有改動時測,無需每次都測;
衝突測試:衝突測試用例要和功能測試用例一塊兒設計到客戶端功能測試用例中;
內存泄露測試:建議經過自動化工具對測試過程全程進行監控,一旦發現泄露狀況,客戶端屏幕截圖、收集泄露先後的日誌、發送popo給客戶端開發;
耗電量測試:建議經過自動化工具進行檢測;
流量測試:建議經過自動化工具輔助完成測試,要求工具能夠檢測一段時間內app的流量,配合手工點擊本次需求所涉及到的客戶端與請求操做相關的按鈕或操做結合設定的流量標註來肯定是否有嚴重的流量問題;
弱網測試:建議經過自動化工具模擬各類程度的弱網,對涉及到的客戶端與請求操做相關的按鈕或操做進行弱網測試;
接口容錯測試:接口容錯測試用例要和功能測試用例一塊兒設計到客戶端功能測試用例中;
系統權限測試:系統權限測試用例要和功能測試用例一塊兒設計到客戶端功能測試用例中;
過分繪製測試:過分繪製測試用例要和功能測試用例一塊兒設計到客戶端功能測試用例中;
兼容性測試:藉助兼容性測試平臺完成(傳統作法:處處藉手機點點點)。
 

實施流程

對以上實施方案再次進行整理概括,能夠對傳統測試流程進行改進。對於每次需求,分如下階段——
1. 確認階段:
1)肯定涉及Activity之間跳轉的功能模塊;
2)肯定與後臺請求相關的全部按鈕或操做。
2. 測試用例設計階段:
1)功能測試用例;
2)衝突測試用例;
3)接口容錯測試用例;
4)系統權限測試用例;
5)過分繪製測試用例。
3. 測試執行階段:
1)手工測試:安裝包測試(按需)、功能測試;
2)半自動測試(一半靠手點,一半靠工具):流量測試、弱網測試;
3)自動化測試(徹底靠工具):內存泄露測試、耗電量測試(選取主要機型進行);
4)兼容性測試(藉助於兼容性測試平臺手工測試)。
 

自動化工具

1)自動化流量測試輔助工具,要求:能夠進行一段時間內的流量統計;
2)自動化弱網測試輔助工具,要求:能夠選擇設置各類程度的弱網;
3)內存泄露自動化測試工具;
4)耗電量自動化測試工具。
 

總結

如今的移動app軟件測試流程能夠概括爲:四個工具、三個階段、一個平臺。
相對傳統移動app測試流程的優化:
1)極大程度上豐富與完善了功能測試用例的設計方法;
2)極大程度上實現了自動化過程在測試中的開發與使用。
相關文章
相關標籤/搜索