APP測試分類
業務功能測試
就是平時的功能測試。
APP專項測試
- 相容性測試
- 安裝,解除安裝,升級測試
- 交叉事件測試
- push訊息推送測試
- 效能測試
- 其他測試
- 使用者體驗
- 極限,邊界
- 許可權
業務功能測試
概念
按照使用者的需求(需求說明書,原型等)去校驗開發的程式碼實現是否滿足使用者的功能性需求。
測試物件
- 功能點(單個模組)==》單元測試
- 多模組==》整合測試
- 業務流程 ==》系統測試、驗收測試、冒煙測試
測試方法
- 測試理論階段與測試用例設計方法,即適用於web產品,也適用於APP產品。
- 理論階段設計測試用例8大方法:
- 等價類
- 邊界值
- 因果圖
- 判斷表
- 場景法
- 流程圖
- 正交法
- 錯誤推測法
- 專案階段適用的測試用例設計方法:
- 等價類與邊界值組合
- 需求》測試點》測試用例(一個測試點就是一條測試用例)
- 基於場景與業務流程設計測試用例
APP專項測試—相容性測試
概念
APP產品在不同的軟體環境和硬體環境上都有很好的可移植性(都能正常工作)。
測試關注點
手機型號
- 參考線上統計資料:
作業系統
- Android
- 5.x
- 6.x
- 7.x
- 8.x
- 9.x
- 10.x
- iOS
- 12.x
- 13.x
- 14.x
螢幕解析度、尺寸
解析度
- Android
- 1080 * 1920
- 720 * 1280
- iOS
- 1242 * 2208
- 750 * 1334
尺寸
參考網站:http://www.woshipm.com/screen/
4.7
5.5
網路環境
- WIFI
- 2G
- 3G
- 4G
- 5G
測試機的選取原則
- 一定要在一定數量的真機上進行測試(資金充足,購買對應的真機)
- 藉助雲測平臺來進行測試(testin)(資金一般)
- 模擬器
- Genymotion
- Xcode
資訊的獲取渠道
- 第三方線上統計排名
- 官方資料
- 埋點技術
APP專項測試—交叉事件測試
概念
交叉測試又叫衝突測試或者干擾測試
是指一個功能正在執行過程中,另外一個事件或者操作對該過程進行干擾的測試。
測試的關注點
- 撥打、接聽電話
- 接受、傳送簡訊息
- 插拔耳機
- 網路切換
- 系統自帶應用的呼叫(相機,錄音機)
APP專項測試—安裝、解除安裝、升級測試
安裝型別
-
Android:.apk
-
iOS:.ipa
安裝渠道
- Android
- 應用商城(各種手機品牌)
- 應用寶,手機助手
- 官方網站下載
- iOS
- App Store
安裝測試關注點
正常情況
- 正常安裝測試,檢查是否安裝成功
- APP版本覆蓋測試
- 回退版本測試
- 在不同的手機型號、系統、螢幕大小、解析度上的手機進行安裝
- 安裝完成後,能否正常啟動應用程式
- 安裝完成後,重啟手機能否正常啟動應用程式
異常情況
- 記憶體不足時進行安裝
- 安裝過程中的意外影響情況(強行斷電、斷網、接聽電話等)
- 能否取消安裝
解除安裝測試關注點
正常情況
- 用自己的解除安裝程式進行解除安裝,檢查是否解除安裝乾淨
- 用第三方工具,檢查是否解除安裝乾淨
- 解除安裝後再次安裝,是否正常使用
異常情況
- 解除安裝中出現異常情況能否恢復(手機關機、記憶體不足、沒電等),程式是否還能執行
- 解除安裝後是否有殘留,是否能夠再次進行安裝
- 是否可以取消解除安裝,軟體恢復使用
升級測試關注點
更新版本需要提示使用者
- 在設定中版本資訊中紅點提示
考慮是否進行強制升級
- 軟體存在嚴重的缺陷需要強制升級
- 軟體不能向前相容時(如新版本有新功能,但是低版本不相容,必須升級)
考慮是否跨版本升級
- v5.0 ==> v6.0 ==> v7.0
- 是否支援直接從5.0版本升級到7.0
APP專項測試—push訊息推送測試
概念
push即為訊息推送測試,主要目的就是為了喚醒或提醒使用者。
物件
- 全部推送
- 部分推送
- 精確推送
訊息形式
- 彈窗
- 訊息通知欄
測試關注點
- push訊息應該按設定規則傳送給特定使用者
- APP在後臺執行時,應該能正常收到其push訊息
- 裝置鎖屏狀態下,應能正常收到APP的push訊息
- 裝置網路斷開後再一次建立連線時,應能收到push訊息
- 系統設定不接收該APP通知訊息時,使用者不應該再收到push訊息
APP專項測試—效能測試
效能測試指標
- 記憶體
- CPU
- 手機流量
- 手機電量
- 啟動速度
- 介面切換速度
測試的關注點
- APP的啟動時間是否過長
- APP使用時對CPU、記憶體的佔用情況(Android效能檢測工具:Emmagee)
- APP使用時,電量流量的消耗情況
- 反覆長期操作情況下,系統資源的使用情況
APP專項測試—穩定性測試
由於app軟體是安裝在手機的作業系統之上的,為了保證app能夠在長時間內執行操作不會出問題,所以需要做穩定性測試,穩定性測試需要用到monkey工具,monkey工具是基於命令列的方式執行的,通過這個工具長時間來操作對應的app,以此來檢測app會不會出現假死(ANR)或者崩潰的問題。
APP專項測試—弱網測試
概念
弱網測試是指手機app在網路不好的場景下,執行操作app,以此檢測app會不會出現異常閃退、假死、以及異常提示資訊等各種情況,弱網測試的重點是要模擬出各種複雜的弱網環境,一般都會藉助於一些工具來模擬弱網環境,比如fiddler、charles等工具。
原理
通過fiddler來模擬限速
- fiddler本來就是個代理,它提供了客戶端請求前和伺服器響應前的回撥介面
- fiddler的模擬限速是在客戶端請求前自定義限速,通過延遲傳送資料或接收的資料的時間來限制網路的下載速度和上傳速度,從而達到限速的效果。
步驟(fiddler)
- 開啟fiddler,設定代理
- 手機連線和電腦連線在同一個區域網內
- 手機設定代理,ip為電腦的ip,埠為fiddler代理開發的埠
- 開啟fiddler網速模式開光(Rules->Performances->Simulate Modem Speeds)
- 手機訪問APP,或者用手機瀏覽器訪問網路,觀察功能響應或者頁面重新整理速度
- 如果需要自定義網路的速度,需要到自定義規則中配置(Rules->Customize Rules)
APP專項測試—其他測試
使用者體驗
- 介面的美觀性
- 保持登入
- 頁面的層級關係不能過深(4層左右)
邊界(極限測試)
- 電量不足
- 記憶體不足
許可權測試
- 攝像頭許可權
- 相簿許可權
- 位置許可權
- 通訊錄許可權
熟悉APP專案的步驟
- 業務特性(這個APP是幹嘛的)
- 專案角色與使用者(面向的使用者)
- 專案組織架構圖(都有些什麼功能)
- 技術棧(都用到什麼技術)
app測試流程
- 需求評審
- 編寫測試計劃
- 測試用例設計與編寫
- 執行用例與缺陷跟蹤
- 編寫測試報告
APP釋出平臺
內測分發平臺
工作流程:
- 開發將打包好的程式包上傳到內測分發平臺上
- 內測分發平臺基於上傳的安裝包生成唯一的二維碼
- 測試掃描此二維碼即可下載進行安裝測試
常見的內測分發平臺:
- 蒲公英(https://www.pgyer.com/)
- fir.im(https://fir.im)
線上釋出平臺
- Android
- 應用商店
- 手機助手
- 官網
- iOS
- APP Store
面試題
記憶體溢位與記憶體洩漏
- 記憶體溢位(out of memory):是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。
- 記憶體洩漏(memory leak): 是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩漏危害可以忽略,但是記憶體洩漏堆積後果很嚴重,無論記憶體有多少,遲早會用完,最後就會出現記憶體溢位。
- 兩者關係:記憶體洩漏最終會導致記憶體溢位。
冷啟動與熱啟動
- 冷啟動:指APP被後臺殺死後,在這個狀態下開啟APP;
- 熱啟動:APP沒有沒後臺殺死,仍然在後臺執行,在這個狀態下再次開啟這個APP。
web測試與APP測試的差異
- APP的相容性測試尤為重要:由於手機品牌、手機型號存在過多的差異,導致APP端測試需要考慮的更多,如:解析度、系統版本、手機品牌、尺寸等。
- APP效能測試指標不一樣:除了需要考慮和web一樣的CPU、記憶體外,還要考慮電量、流量消耗、GPU渲染等。
- APP網路測試場景較複雜:如 2G、3G,、4G、5G、WiFi、弱網環境等。
- APP基於手機載體存在的交叉事件測試、前後臺切換、安裝/解除安裝/升級測試。
- APP基於手機載體一些特有的操作習慣測試,如:橫豎屏切換、多點觸控、事件觸發區域等。