千鋒教育-做有情懷、有良心、有品質的職業教育機構
手機app出現問題如何定位
一.后端接口返回數據錯誤
1.1 引起后端接口數據錯誤的原因:
-未成功解析接口返回值
-獲取不到參數
-參數類型不對導致代碼報錯
1.2 這類問題來源主要有:
-歷史遺留數據
-網絡問題導致接口超時或漏了數組元素
-前后臺沒有統一參數類型標準
-參數名錯誤
1.3 如何定位:
-抓包,對照接口文檔逐一進行參數對比,判斷返回值集合數據中是否某個元素的參數和其它元素的參數有內容/類型/為空/不存在/規范不同
二.手機內存問題
2.1 引起客戶端客戶端代碼報錯的原因
-兼容不好
-內存不足
-內存泄露造成app開辟內存空間失敗
-內存泄漏。
2.2 解決方案
殺死后臺其它進程, 崩潰的app要進行全面測試, 定位到具體那個操作導致崩潰
2.3 測試方案
1.先進行兼容性測試, 使用不同操作系統/手機型號/品牌/系統版本/藍牙版本,執行一些讀寫相關功能的測試用例
2.監控app, 觀察各種操作后, 占用的內存是否超過預期
3.讓開發規范代碼,及時釋放掉占用的存儲空間。
4.安裝超多app,盡可能多打開,然后運行被測試app,觀察是否頻繁崩潰,可以用monkey測試,而判斷出被測app的生存能力
三.數組下標問題
3.1 客戶端app代碼報錯
3.2 問題根源
需要操作的元素已經消失/代碼錯誤,超出實體數量/讀取寫入本地文件或緩存時的IO錯誤
3.3 解決方案
調查引起崩潰的具體操作步驟,然后提交開發解決,前端代碼容錯率需要提高
3.4 測試方案
1. 邊界值測試為核心思想,測試正常情況有關數量的功能用例
2. 要進行code review:保證代碼沒有錯誤,循環中沒有超出實體數量
3. 保證代碼容錯性高,每個循環都要有越界異常捕獲并處理
四.頁面渲染耗時過多
4.1 產生問題原因:生成控件/調用時被阻礙,導致前端app代碼報錯
4.2 問題根源:渲染過慢,操作過快,兼容性不好
4.3 解決方案
更換手機,減緩操作速度
優化設計避免連續點擊造成操作過快
優化設計減輕頁面加載渲染耗時
4.4 測試方案
對復雜/加載耗時頁面進行快速操作,讓本不應該出現在一起的倆個控件出現在一起
五.權限相關
5.1 產生問題原因
客戶端未對無權限情況處理,導致代碼報錯
5.2 問題根源
用戶訪問未獲取到系統相關權限的功能,客戶端又未對此情況進行處理
5.3 解決方案
修改崩潰bug,設計此情況的處理機制,如提示用戶去手動開權限,自動退出等情況
5.4 測試方案
關閉所有系統權限,然后訪問所有系統權限相關的頁面和功能
例如: 相冊,照相,WIFI,藍牙,定位,GPS等權限
六.第三方導致異常
6.1 產生問題的原因
1. 第三方廣告的突然彈出
2. 其他app分享進來和出去
3.各種第三方app的消息彈窗提醒
6.2 測試方案
在各個頁面,手動觸發大多數app或者被測app的外接廣告來測試
用其他主流app測試分享,或被測app分享出去再回來看是否已經被退出
收到其他app的強制提醒
七.橫豎屏方向問題
產生問題原因: 因橫豎屏導致app崩潰
解方案: 重啟app
測試方案:
1.先橫屏再打開app
2.先豎屏再打開app
3.打開app后,各種頁面上,功能前中后,橫豎屏來回切換
八.多語言問題
產生問題原因:各種語言導致崩潰
測試方案:
1.先切換成各國語言,再開app進行各種功能用例測試
2.先開app,再來回切換各國語言進行測試
九.其他代碼錯誤
產生問題原因:客戶端app代碼錯誤
問題根源:各種異常操作,正常操作
解決方案:adb logcat -v time 命令把日志打印出來,后臺查看崩潰日志
有了日志,可以通過查找以下幾個字段來快速定位問題:
ANR:查看應用是否出現了ANR的情況
Exception:查看所有發生異常的地方,看看是不是有沒有捕獲到的異常
OOM:當應用占用的內存超過了系統可以給應用分配的最大內存時,就會出現OOM
十.弱網問題
產生問題原因:客戶端解析json返回值失敗
問題根源:網絡較差,json返回數據串太長
解決方案:
1.用戶換更快網絡,客戶端對此操作增加等待時間
2.接口返回進行異步處理
3.增加翻頁功能
測試方案:
用抓包工具模擬弱網,包含丟包率,穩定性等元素
對接口返回值構造超出長度的數據進行測試
以上, 所有問題在實際app測試中, 都是較為常見的異常, 希望能夠給大家帶來一定的幫助!
上一篇
常見的數據庫面試題分享下一篇
什么是SDK測試相關推薦