千鋒教(jiao)育-做有(you)情懷、有(you)良心(xin)、有(you)品質的(de)職業教(jiao)育機(ji)構
手機app出(chu)現(xian)問題如何定位
一.后端接口返回數據錯誤
1.1 引起后端(duan)接口數(shu)據(ju)錯誤的原(yuan)因:
-未成功解析接口返回值
-獲取不到參數
-參(can)數類型不(bu)對(dui)導致(zhi)代碼(ma)報(bao)錯
1.2 這類問(wen)題來源主要有(you):
-歷史遺留數據
-網(wang)絡問題導致接(jie)口超時或漏了數組元素(su)
-前后(hou)臺(tai)沒有統(tong)一參數類型(xing)標準(zhun)
-參數名錯誤
1.3 如(ru)何(he)定(ding)位:
-抓包,對照(zhao)接(jie)口文(wen)檔逐(zhu)一進行參(can)數對比(bi),判斷返(fan)回值集合數據中是否某個(ge)元素的(de)參(can)數和其它元素的(de)參(can)數有內容/類型/為空/不(bu)存在/規范不(bu)同
二.手機內存問題
2.1 引起客(ke)戶端(duan)客(ke)戶端(duan)代(dai)碼(ma)報錯的(de)原因
-兼容不好
-內存不足
-內存(cun)(cun)泄露(lu)造成app開辟內存(cun)(cun)空(kong)間失敗
-內存泄漏。
2.2 解決方案
殺(sha)死(si)后臺其它(ta)進程, 崩潰(kui)的app要進行全面測試(shi), 定位到具體那個(ge)操(cao)作(zuo)導致崩潰(kui)
2.3 測試方案
1.先(xian)進(jin)行(xing)兼容(rong)性測試, 使用不(bu)同(tong)操作系統(tong)/手機型號/品牌(pai)/系統(tong)版(ban)本(ben)/藍牙版(ban)本(ben),執(zhi)行(xing)一些讀寫(xie)相關功能的測試用例
2.監控(kong)app, 觀察各種操作后, 占用的內(nei)存是否超過預期
3.讓開發規范代碼,及(ji)時釋放掉占用的存儲空(kong)間(jian)。
4.安(an)裝超多(duo)app,盡可能多(duo)打(da)開,然后運行被(bei)測(ce)(ce)試app,觀察(cha)是否頻繁崩(beng)潰,可以用monkey測(ce)(ce)試,而判斷出被(bei)測(ce)(ce)app的生(sheng)存能力
三.數組下標問題
3.1 客戶端app代(dai)碼報(bao)錯
3.2 問題根源(yuan)
需要操(cao)作(zuo)的(de)元素(su)已(yi)經消失/代碼(ma)錯誤,超出實體數量/讀取寫入本地文(wen)件或緩存時(shi)的(de)IO錯誤
3.3 解決方案
調查引起崩潰(kui)的具(ju)體(ti)操作步驟,然后(hou)提交開發解決,前端代碼容錯率需要提高(gao)
3.4 測試方案
1. 邊界值測(ce)試為核心思想,測(ce)試正常情況有關數量(liang)的(de)功能用例
2. 要進行code review:保證代碼(ma)沒(mei)有錯誤,循環中(zhong)沒(mei)有超出實體數量
3. 保證代碼容錯性高,每個(ge)循環都要有越界異常捕獲(huo)并處理
四.頁面渲染耗時過多
4.1 產生問題原因:生成控件/調(diao)用時被阻礙,導致前端(duan)app代(dai)碼報(bao)錯
4.2 問題根源:渲(xuan)染(ran)過慢(man),操作(zuo)過快,兼容性不好
4.3 解決方案
更換手機(ji),減(jian)緩操(cao)作速(su)度
優化設計(ji)避免連(lian)續點(dian)擊(ji)造成操作(zuo)過快
優(you)化設計減輕頁面加載(zai)渲(xuan)染耗時
4.4 測試方案
對(dui)復(fu)雜/加載耗時頁面進行(xing)快速操作(zuo),讓本不應該出現(xian)(xian)在一(yi)起(qi)的倆個控件(jian)出現(xian)(xian)在一(yi)起(qi)
五.權限相關
5.1 產生問題原(yuan)因
客戶端未對無(wu)權限情況處理,導致代碼報錯
5.2 問題根源(yuan)
用(yong)戶(hu)訪問未獲取到系統相關權(quan)限(xian)的功(gong)能,客戶(hu)端又未對此情況進行處理
5.3 解決(jue)方案
修改(gai)崩潰bug,設(she)計此(ci)情況的處理機制,如提示用戶去(qu)手動開(kai)權限,自動退出(chu)等情況
5.4 測試(shi)方案
關閉所有系統權限,然后訪問(wen)所有系統權限相關的頁面和功能
例如: 相冊,照相,WIFI,藍牙,定(ding)位,GPS等權限
六.第三方導致異常
6.1 產生問題的原(yuan)因
1. 第(di)三(san)方廣告的突然彈(dan)出
2. 其他(ta)app分(fen)享進來和出去
3.各種(zhong)第三方app的消(xiao)息彈窗提(ti)醒
6.2 測試方案
在各個(ge)頁面,手(shou)動觸發大多數app或者(zhe)被測app的(de)外接廣告(gao)來測試
用其(qi)他(ta)主流app測試分享,或被(bei)測app分享出去再(zai)回(hui)來(lai)看是否已經被(bei)退出
收(shou)到其他(ta)app的強制提醒
七.橫豎屏方向問題
產生問題原因: 因橫(heng)豎屏導(dao)致app崩潰
解方案: 重啟(qi)app
測試方案:
1.先橫(heng)屏再打開app
2.先豎(shu)屏再打(da)開app
3.打開app后,各種頁面上,功能前(qian)中后,橫豎(shu)屏來回切換
八.多語言問題
產生問題原因:各種語言(yan)導致崩潰
測試方案:
1.先切(qie)換(huan)成(cheng)各國語言,再開app進行(xing)各種功(gong)能用例(li)測試(shi)
2.先開app,再來回切換(huan)各國(guo)語言進(jin)行測(ce)試
九.其他代碼錯誤
產(chan)生問(wen)題原因:客戶(hu)端(duan)app代(dai)碼錯誤
問題根源:各種異常操作(zuo),正(zheng)常操作(zuo)
解(jie)決方案:adb logcat -v time 命令把日志打(da)印出來(lai),后臺查看崩潰(kui)日志
有了日志,可以通(tong)過查找以下幾個字段來快速(su)定位問(wen)題:
ANR:查看應(ying)用是(shi)否出(chu)現了ANR的(de)情況(kuang)
Exception:查(cha)看所(suo)有發生異常(chang)的地方,看看是不是有沒有捕(bu)獲(huo)到(dao)的異常(chang)
OOM:當應(ying)用占用的內存超過了系統可以(yi)給應(ying)用分配的最大內存時(shi),就(jiu)會出現(xian)OOM
十.弱網問題
產(chan)生問題原(yuan)因(yin):客戶端解析json返回值失(shi)敗
問題根源(yuan):網絡較差(cha),json返回數(shu)據串太長
解決方案:
1.用戶換更快(kuai)網絡,客戶端對此操作增加等待時間
2.接口返回進行(xing)異步處理
3.增加翻頁功能
測試方案:
用(yong)抓(zhua)包(bao)工具模擬弱網,包(bao)含丟包(bao)率,穩(wen)定(ding)性等元素
對接口返回值構造超出長度的數據進行測試
以上, 所有問題(ti)在(zai)實際app測試(shi)中, 都(dou)是(shi)較為(wei)常(chang)見(jian)的(de)異(yi)常(chang), 希望能夠給大家(jia)帶來一定的(de)幫助!
上一篇
常見的數據庫面試題分享下一篇
什么是SDK測試相關推薦