移動端測試詳解
一、移動端測試概述
1. 網路種類多
- 移動端有多種網路:無線網路、2G、3G、4G等,斷網、網速較差及網路之間的切換時頁面的顯示等,這些對於移動端來說很重要。此外,在非wifi下,還需要注意網路使用量問題。
2. 間斷問題
- 移動端有一個很重要的問題,一般情況下在使用軟體的過程並不是長久的,這中間可能發生很多中斷,如電話、簡訊、通知、斷電等等,軟體需要特殊處理這些特殊情況。
- 開啟一個頁面,或在操作的過程中(點選一個按鈕後),將手機螢幕鎖住,再開啟時,應用能否正常處理。
3. 螢幕的限制
- 圖片及文字的顯示;上傳不同的圖片尺寸顯示是否正常;圖片和文字一起顯示時,效果如何。
- 操作區域;web端的應用,一般不會受到螢幕的限制,而且通過滑鼠操作更加準確。但是移動端由於螢幕較小,頁面及按鈕會受到螢幕大小的限制,再加上使用者都是通過手指進行操作,一些按鈕、選擇框 等是否容易點選,多個可點區域位置較近時,點選部位稍微偏移,也許就會造成不同的結果,這種情況下是否可以達到預先的效果。
4. 軟體啟動執行
- 移動端啟動、解除安裝、升級幾個特性,這是比較常見、也很重要的,比如升級時使用者的資料怎麼辦,解除安裝後用戶的資料怎麼處理,解除安裝再安裝使用者登入資料的顯示等。
5. 手勢
- 移動端還有一大特性,就是移動端有自己比較簡單的手勢,使用者可以通過手勢進行一個操作,比如左滑刪除、右滑返回上一個頁面、左右滑動圖片等,軟體需要對這個手勢進行適配。
6. 分享
- 移動端一般會裝有很多軟體,使用者下單或者產品有活動時,使用者都會進行分享,但是分享時的許可權、軟體是否存在等問題,需要特殊處理測試。一般的軟體或應用,都會開放一部分頁面,允許使用者不登入時即可訪問,而有些頁面是必須要求使用者登入的,主要針對這兩種許可權不同的頁面做分享,然後通過分享進入本頁面,檢視權 限的控制是否正常。
7. web和移動端的同步
- 使用者在web端的操作,在移動端是否可以正常的進行同步、顯示;在移動端的操作,使用者登入web賬號,資訊是否同步等。
二、移動端的認識
1. 移動端作業系統
- IOS
- Android
- Windows Phone
- Symbian/meego
- Windows Mobile
- Blackberry
2. 什麼是移動端應用
- 狹義:原生APP
- 廣義:Web APP(H5)、混合app、小程式(微信、支付寶、百度……)
- 原生APP偏向於互動,注重使用者體驗;WebApp偏向與瀏覽器簡單的互動,用於資訊展示。一些功能需要訪問硬體,則使用原生APP。
- 現在流行的方法是將原生APP與WebApp進行融合,核心功能使用原生APP,內容展示等輔助簡單功能使用WebApp。這樣便於更新、保證核心功能的互動體驗
3. 移動端測試的複雜性
- 網路多樣化:2G網路、3G網路、4G網路、WIFI
- 支援系統多樣化:手機作業系統:Android、iOS、windows Phone等
- 硬體配置多樣化:記憶體大小種類多、核心數量多
- 解析度型別多樣化:7201280、10801920等
三、移動端測試流程
四、移動端測試要點
1. 安裝和解除安裝
1.1 安裝測試
- 從不同的渠道獲取安裝程式是否正常安裝。
andorid的app:開發提供app,在安卓手機、安卓模擬器安裝即可(版本一致性) ios的app: 1、如果你們有企業證書,直接分發 2、你的app還沒有蘋果的企業證書,把你的手機UDID發給開發人員,讓開發udid打包到app裡面即可 3、app裡面繫結udid是有限制的,如果超標就使用testflight分發,需要提供測試人員的appleid(你的郵箱賬號),從testflight中下載安裝包及邀請碼即可安裝測試 - 軟體在不同作業系統版本下安裝是否正常。
- 軟體安裝後的是否能夠正常執行,安裝後的資料夾及檔案是否寫到了指定的目錄裡。
- 軟體安裝過程中意外情況的處理是否符合需求(如宕機,重啟,斷電)
- 安裝空間不足時是否有相應提示
- 安裝後沒有生成多餘的目錄結構和檔案
- 對於需要通過網路驗證之類的安裝,在斷網情況下嘗試一下
- 還需要對安裝手冊進行測試,依照安裝手冊是否能順利安裝
1.2 解除安裝測試
- 直接刪除安裝資料夾解除安裝是否有提示資訊。
- 直接解除安裝程式是否有提示資訊。
- 解除安裝後是否全部刪除所有的安裝資料夾。
- 解除安裝過程中出現的意外情況的測試(如宕機、斷電、重啟)。
- 系統直接解除安裝UI測試,是否有解除安裝狀態進度條提示。
2. UI測試
- 按鈕、對話方塊、列表和視窗等;或在不同的連線頁面之間需要導航
- 是否易於導航,導航是否直觀
- 是否需要搜尋引擎
- 導航幫助是否準確直觀導航與頁面結構、選單、連線頁面的風格是否一致
- 橫向比較,各控制元件操作方式統一
- 自適應介面設計,內容根據視窗大小自適應
- 頁面標籤風格是否統一
- 頁面的圖片應有其實際意義而要求整體有序美觀
- 圖片質量要高且圖片尺寸在設計符合要求的情況下應儘量小
- 介面整體使用的顏色不宜過多
- 輸入框說明文字的內容與系統功能是否一致
- 文字長度是否加以限制
- 文字內容是否表意不明
- 是否有錯別字
- 資訊是否為中文顯示
- 是否有敏感性詞彙、關鍵詞
- 是否有敏感性圖片,如:涉及版權、專利、隱私等圖片
3. 功能測試
- 註冊:關注長度限制、型別限制、重複註冊、簡訊接入、前後臺數據一致性
- 登入:正誤情況、多裝置登入、禁用賬戶登入、登入超時、登入中斷網/網路切換、登入後介面
- 登出:登出後再登入、取消登出
- 應用前後臺切換:前後臺切換、鎖屏解屏、電話/簡訊中斷後回到app、必須處理的提示框處理後回到app、殺掉程序後重新啟動app
- 免登入:登入後殺掉程序重新啟動app、無網路、切換使用者登入、密碼更換、退出登入下次啟動app、解除安裝重灌
-資料更新:手動或自動重新整理、從後臺切換到前臺時資料更新、實時更新、定時更新、資料展示的處理邏輯(伺服器獲取、本地快取)、更新異常處理(弱網、斷網、伺服器響應異常、資料為空) - 定位、相機、語音、藍芽等系統服務:已開啟、未開啟根據提示開啟、未開啟並拒絕開啟
- 時間測試:修改時區
- 推送測試:推送訊息內容、連結跳轉、免打擾或拒接收
4. 效能測試
- Monkey結合效能測試工具監控cpu、記憶體、流量、耗電量,效能測試工具如anothermoniter、騰訊的GT
- 收集同類產品效能資料(基線測試)
- 根據系統以往運營資料確定部分效能指標
- 評估典型使用者應用場景下,伺服器系統資源的使用情況
- 不同網路響應速度、伺服器介面壓力測試
5. 交叉事件測試
- 多個App同時執行是否影響正常功能
-App執行時前/後臺切換是否影響正常功能 - App執行時撥打/接聽電話
- App執行時傳送/接收資訊
- App執行時傳送/收取郵件
- App執行時切換網路(2G、3G、4G、WIFI)
- App執行時瀏覽網路
- App執行時使用藍芽傳送/接收資料
- App執行時使用相機、計算器等手機自帶裝置
6. 相容測試
- 必須是真機上進行
- 自己買裝置(當前主流的50款手機),時效性
- android裝置相容性:
不同手機品牌相容(華為、小米、魅族、oppo、vivo、oneplus、三星、google Nexus)
同一品牌下,還要選擇不同的系列(mate、p、榮耀、低端、小米、紅米、note、max)
同一個品牌、同一個系列(處理器不同、記憶體、螢幕不同、Android版本、GSM、CDMA、3G、4G)
android版本相容,9.0版本,至少往前相容兩個版本8.0、7.0、6.0,碎片化問題(系統一週不更新)、老年使用的 - IOS裝置相容性:
IOS系統閉源,沒有碎片話問題
蘋果裝置單元:iphone4~iphone10,p系列等,ipad、ipod。
網路制式
- android裝置相容性:
7. 升級、更新測試
- 測試升級後的功能是否與需求說明一樣
- 測試與升級模組相關的模組的功能是否與需求一致
- 升級安裝意外情況的測試(升級安裝意外情況的測試(如宕機、斷電、重啟))
- 升級介面的UI測試
- 不同作業系統間的升級測試
8. 使用者體驗測試
- 是否有空資料介面設計,引導使用者去執行操作。
- 是否濫用使用者引導。
- 是否有不可點選的效果。
- 選單層次是否太深
- 互動流程分支是否太多
- 相關的選項是否離得很遠
- 一次是否載入太多的資料
- 介面中按鈕可點選範圍是否適中
- 標籤頁是否跟內容沒有從屬關係,當切換標籤的時候,內容跟著切換
- 操作應該有主次從屬關係
- 是否定義Back的邏輯。涉及軟硬體互動時,Back鍵應具體定義
- 是否有橫屏模式的設計,應用一般需要支援橫屏模式,即自適應設計
9. 硬體環境測試
- 手勢操作測試
- 手機開鎖屏對執行中的App的影響
- 切換網路對執行中的App的影響
- 執行中的App前後臺切換的影響
- 多個執行中的App的切換
- App執行時關機
- App執行時重啟系統
- App執行時充電
- App執行時kill掉程序再開啟
- 網路環境測試
- 無網路時,執行需要網路的操作,給予友好提示,確保程式不出現崩潰。
- 內網測試時,要注意選擇到外網操作時的異常情況處理。
- 在網路訊號不好時,檢查功能狀態是否正常,確保不因提交資料失敗而造成崩潰。
- 在網路訊號不好時,檢查資料是否會一直處於提交中的狀態,有無超時限制。如遇資料交換失敗時要給予提示。
- 在網路訊號不好時,執行操作後,在回撥沒有完成的情況下,退出本頁面或者執行其他操作的情況,有無異常情況。
- 後臺服務牽涉到DNS、空間服務商的情況下會影響其穩定性
10. 客戶端資料庫測試
- 一般的增、刪、改、查測試
- 當表不存在時是否能自動建立,當資料庫表被刪除後能否再自建,資料是否還能自動從服務端中獲取回來並儲存。
- 在業務需要從服務端取回資料儲存到客戶端的時候,客戶端能否將資料儲存到本地
- 當業務需要從客戶端取資料時,檢查客戶端資料存在時,app資料是否能自動從客戶端資料中取出,還是仍然會從伺服器端獲取?檢查客戶端資料不存在時,app資料能否自動從伺服器端獲取到並儲存到客戶端
- 當業務對資料進行了修改、刪除後,客戶端和服務端是否會有相應的更新。
11. 安全測試
-
軟體許可權安全性
扣費風險:包括髮送簡訊、撥打電話、連線網路等
隱私洩露風險:包括訪問手機資訊、訪問聯絡人資訊等
對App的輸入有效性校驗、認證、授權、敏感資料儲存、資料加密等方面進行檢測
限制/允許使用手機功能接入網際網路
允許使用手機發送接受資訊功能
限制/允許應用程式來註冊自動啟動應用程式
限制或使用本地連線
限制/允許使用手機拍照或錄音
限制/允許使用手機讀取使用者資料
限制/允許使用手機寫人使用者資料
檢測App的使用者授權級別、資料洩漏、非法授權訪問等 -
人機介面安全性
返回選單總保持可用
聲音的設定不影響應用程式的功能
應用程式必需能夠處理不可預知的使用者操作,例如錯誤的操作和同時按下多個鍵 -
通訊安全性
在執行其軟體過程中, 如果有來電、SMS、EMS、MMS、藍芽、紅外等通訊或充電時,是否能暫停程式,優先處理通訊,並在處理完畢後能正常恢復軟體,繼續其原來的功能
當創立連線時,應用程式能夠處理因為網路連線中斷,進而告訴使用者連線中斷的情況
應能處理通訊延時或中斷
應用程式將保持工作到通訊超時,進而傳送給使用者一個錯誤資訊指示有連線錯誤 -
資料安全性
當將密碼或其他的敏感資料輸入到應用程式時其不會被儲存在裝置中,同時密碼也不會被解碼
輸人的密碼將不以明文形式進行顯示
密碼、信用卡明細、或其他的敏感資料將不被儲存在它們預輸入的位置上
不同的應用程式的個人身份證或密碼長度必需至少在4-8個數字長度之間
當應用程式處理敏感資料時,不以明文形式將資料寫到其它單獨的檔案或者臨時檔案中。以防止應用程式異常終止而又沒有刪除它的臨時檔案,檔案可能遭受入侵者的襲擊,然後讀取這些資料資訊。
備份應該加密,恢復資料應考慮恢復過程的異常通訊中斷等,資料恢復後再使用前應該經過校驗
應用程式應考慮系統或者虛擬機器器產生的使用者提示資訊或安全警告
在資料刪除之前,應用程式應當通知使用者或者應用程式提供一個“取消”命令的操作, “取消”命令操作能夠按照設計要求實現其功能
應用程式應當能夠處理當不允許應用軟體連線到個人資訊管理的情況
在沒有使用者明確許可的前提下不損壞、刪除個人資訊管理應用程式中的任何內容
如果資料庫中重要的資料正要被重寫, 應及時告知使用者 -
安裝與解除安裝安全性
應用程式應能正確安裝到裝置驅動程式上
能夠在安裝裝置驅動程式上找到應用程式的相應圖示
是否包含數字簽名信息
JAD檔案和JAR包中包含的所有託管屬性及其值必需是正確的
JAD檔案顯示的資料內容與應用程式顯示的資料內容應一致
安裝路徑應能指定
沒有使用者的允許, 應用程式不能預先設定自動啟動
解除安裝是否安全, 其安裝進去的檔案是否全部解除安裝
解除安裝使用者使用過程中產生的檔案是否有提示
其修改的配置資訊是否復原
解除安裝是否影響其他軟體的功能
解除安裝應該移除所有的檔案