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