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