教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

軟件測試之APP產(chǎn)品常見BUG及預(yù)防

更新時間:2018年03月30日15時51分 來源:傳智播客 瀏覽次數(shù):

一、界面適配

l 手機分辨率為1920x7080的高分辨率手機,在調(diào)整手機字體大小時,會導(dǎo)致頁面顯示出現(xiàn)變形;

l 因用戶設(shè)置的特殊字體導(dǎo)致列表的字母條不顯示;

l 某些banner 圖片在部分機型只能顯示一半;

l 文字或者圖片需要適配不同分辨率的機型時,建議使用dp方式進行開發(fā),即使是使用dp,也需要考慮特殊分辨率的機型顯示;

l 適應(yīng)寬度/適應(yīng)高度/高寬均適應(yīng)的;

l 針對程序需求,設(shè)定合適的適配機制。

二、 系統(tǒng)適配

l 調(diào)用高版本API,導(dǎo)致某些機型進入主頁顯示空白頁面。

l 調(diào)用高版本API,需要考慮兼容性,開發(fā)團隊需要制定程序API調(diào)用規(guī)范。

三、 交互適配1

l 在輸入框操作時,調(diào)出系統(tǒng)輸入法軟鍵盤后,沒有有效啟用鍵盤上的“下一項”、“確定”、“搜索”等按鍵。

l 系統(tǒng)軟鍵盤,在關(guān)閉當前頁面時沒有及時收起軟鍵盤。

l 需求設(shè)計過程中需要考慮輸入法操作鍵的使用細節(jié),確保所有軟鍵盤的輸入鍵可使用。

l 設(shè)計規(guī)范:程序/頁面設(shè)計針對輸入法操作鍵的使用制定規(guī)范。

四、交互適配2

l APP界面的“返回”操作與手機系統(tǒng)的“返回”按鍵操作效果不一致;或界面未提供“返回”,在無系統(tǒng)“返回”按鍵的手機上,無法返回。

l 設(shè)計規(guī)范:程序設(shè)計針對手機返回鍵制定使用規(guī)范。

l 在設(shè)計中要綜合界面需求設(shè)定是否提供“返回”操作。

五、 界面風格

l 對話框標點、英文字符出現(xiàn)全角、半角的不統(tǒng)一。

l 對話框、提示浮動框提示語風格不同,顯示位置均不同,產(chǎn)品友好度下降。

l 字體和字號要在app中是不同的風格。

預(yù)防方法:語言文字提示規(guī)范。

Ø 全角字符和半角字符都要使用一個空格分開。

Ø 英文和數(shù)字之間要有空格分開。

Ø 漢字和英文、數(shù)字要有空格分開。

Ø 帶有漢字的話要使用全角字符。

Ø 語言中不要混用全角和半角標點。

Ø 字體和字號要保持統(tǒng)一的風格。

六、 性能優(yōu)化1

l 進入一些列表,若數(shù)量較多則會出現(xiàn)卡死。

l 界面顯示對象數(shù)量較多,某些會導(dǎo)致頁面操作卡頓,用戶體驗很差。

l 處理大量數(shù)據(jù)時,用戶等待時間過長,無進度條提示進度。

l 程序?qū)臅r較多的操作邏輯、判斷邏輯,不放入UI主線程。

l 對數(shù)據(jù)庫記錄較多的操作,可以改成數(shù)據(jù)庫批量操作,或者調(diào)用批量接口。

l 程序在后臺處理用戶的輸入,則提供進度條或?qū)υ捒颉?/p>

七、性能優(yōu)化2

l 后臺播放內(nèi)存泄露;

l 程序后臺運行的時候,手機一直處于占用CPU的運行狀態(tài)。

l 頁面中的動態(tài)效果(如:馬燈滾動)次數(shù)無限制,導(dǎo)致界面不斷刷新消耗資源。

l 使用靜態(tài)分析工具或代碼檢查方式檢查內(nèi)容的分配和釋放。

l WakeLock機制是防回收技術(shù),當沒有播放、下載等操作時,應(yīng)該主動關(guān)閉后臺的喚醒鎖,減少耗電。當再次需要使用播放、下載功能時才去開啟喚醒。

l 對刷新消耗資源類操作,要有次數(shù)限制。

八、多服務(wù)、多進程

l 某些功能操作后,app 無法連接網(wǎng)絡(luò)。

l 進程被殺死后重啟,通知欄中顯示的信息不正確,沒有顯示正確的信息。

l app未啟動,通過其他第三方app的調(diào)用入口調(diào)用app ,無法正常使用某些功能。

l 服務(wù)停止后,無法被啟動。

l 程序被手動退出后,進程仍然在后臺存在。

l 重新初始化時獲取值時讀取到空值,因此賦予一個默認值。

l 服務(wù)重啟被回收重啟時,初始化對象時要判斷當前是否已存在,若存在則復(fù)用并更新內(nèi)容。

l 任務(wù)獨立,需要創(chuàng)建不同的服務(wù),生命周期不會互相影響,服務(wù)獨立可以避免某個服務(wù)結(jié)束會影響到其他功能的正常使用。

總體,對有啟用多服務(wù)、多進程的程序,有需要做好服務(wù)、進程的一致性管理。

九、外部調(diào)用

l 某些機型啟動app之后一直在調(diào)用某些外部服務(wù)(通過后臺服務(wù)可以看到其他服務(wù)進程,退出app后,有些服務(wù)進程消失)。

l 某些功能模塊被掃描成存在木馬病毒。

l 安全管家告警程序獲取絕密權(quán)限(通訊錄權(quán)限)。

l 調(diào)用第三方功能作為統(tǒng)計或者監(jiān)控作用時,需要考慮該sdk是否會一直喚醒app導(dǎo)致耗電或者程序無法真正關(guān)閉問題。

l 調(diào)用外部第三方SDK,要考慮被安全工具(上次有廣告被掃描到病毒)掃描的設(shè)計需求。

l 及時關(guān)閉不需要的服務(wù)進程,在能滿足需求的情況下,盡量減少使用敏感的系統(tǒng)權(quán)限。

十、網(wǎng)絡(luò)機制1

a:網(wǎng)絡(luò)重試操作機制不統(tǒng)一,導(dǎo)致頁面超時體驗風格不統(tǒng)一。

b:某些應(yīng)用頁面,訪問響應(yīng)慢。

a:對底層網(wǎng)絡(luò)重試機制做統(tǒng)一封裝后,供上層調(diào)用。

b:固定好每次重試間隔(建議10s重試)和重試總次數(shù)(建議3次)。

c:為使頁面提示可以區(qū)分網(wǎng)絡(luò)層與業(yè)務(wù)解析層不同錯誤,需對不同錯誤類型做分類的異常處理,并提示用戶原因或讓用戶重試。

d:對多個網(wǎng)絡(luò)請求的界面,網(wǎng)絡(luò)接口并行請求有利于提高響應(yīng)速度。

十一、 網(wǎng)絡(luò)機制2

a:未加載完圖片時切換到相似tab,切回不再加載圖片。

b:進入一個tab,該頁面已經(jīng)加載完成,選擇點擊某個詳細信息頁面返回時,頁面會閃一下。

a:一個頁面有多個tab頁時,用戶切換tab可不輕易取消線程,取而代之使用暫停線程,退出頁面時才回收清除。

b:啟動負載分攤機制的請求,可先保存請求地址,供返回時判斷避免重復(fù)加載。

十二、網(wǎng)絡(luò)機制3

a:iOS弱網(wǎng)絡(luò)下獲取不到配置,導(dǎo)致啟動卡死。

b:sim卡未激活,無移動網(wǎng)絡(luò),某些功能卡死。

c:斷網(wǎng)下啟動,登錄狀態(tài)丟失,某些功能信息未正確顯示。

a:啟動邏輯中的網(wǎng)絡(luò)類請求不能阻塞UI主線程,即網(wǎng)絡(luò)請求數(shù)據(jù)可不即時響應(yīng)(可在下次啟動時生效)。

b:按鈕的點擊事件不跟接口關(guān)聯(lián),做成異步處理不管是否有返回,都可以正常進行點擊操作。

c:離線操作類,不因與當前網(wǎng)絡(luò)狀態(tài)有影響。

十三、下載空間有效性判斷

a:空間不足時,無法保存信息時,沒有提示和提前判斷。

b:本地存儲空間不足時,保存文件時沒有相應(yīng)提示。

c:空間不足時,文件下載不成功,導(dǎo)致重復(fù)不停下載,浪費用戶流量。

a:對磁盤剩余空間的判斷和自動清理邏輯可以做統(tǒng)一封裝,提供各不同下載業(yè)務(wù)使。

b:可結(jié)合系統(tǒng)硬件配置的10%作為有效剩余空間閥值。

c:針對手機內(nèi)外置SDCard,可以在空間不足情況下做分區(qū)切換機制。

十四、下載文件完整性判斷

a:換膚圖片未下載完,就觸發(fā)換膚操作,導(dǎo)致?lián)Q膚效果錯誤。

b:圖片無法下載完全,導(dǎo)致圖片展示不完整。

c:文件下載完成后,由于網(wǎng)絡(luò)錯誤與源文件不符,導(dǎo)致下載后無法播放。

d:上傳文件功能,目標物理文件不存在(界面缺顯示存在),導(dǎo)致傳送文件頁面一直處于等待中。

a:通過判斷下載前后文件的size或者文件內(nèi)容簽名,確保下載文件完整后再觸發(fā)文件使用相關(guān)的邏輯。

b:文件傳輸時檢查文件是否存在,若不存在則視為傳輸失敗,不阻塞后續(xù)傳輸。

十五、阻斷連續(xù)操作

a:連續(xù)快速切換界面,或者頻繁觸發(fā)某些功能操作,導(dǎo)致程序卡死。

b:連續(xù)多次點擊同一張圖片,導(dǎo)致該圖片下載錯誤。

a: 使用間隔響應(yīng)、延遲響應(yīng)的方式,達到多次相同操作只的觸發(fā)一次有效邏輯。

b:操作一次后,可將按鈕等元素設(shè)定為禁用狀態(tài),防止用戶多次點擊和請求。

十六、有效統(tǒng)計邏輯

a:操作頁面某些元素,也會導(dǎo)致發(fā)送頁面使用的統(tǒng)計信息。

a:為確保統(tǒng)計數(shù)據(jù)上傳的有效性,只針對真正展示的界面做上報統(tǒng)計,對于展示不完整、非針對性展示不做統(tǒng)計上報。

十七、程序健壯性判斷1

a:分享到新浪微博(手機未裝新浪微博客戶端),app崩潰。

b:后臺接口變更(返回值和類型發(fā)生變化),客戶端不兼容新格式判斷,拋出崩潰異常。

c:搜索默認操作崩潰;

d:使用外部第三方數(shù)據(jù),出現(xiàn)空數(shù)據(jù)或者非標準格式,則app崩潰。

e:輸入框沒有限制字符長度,保存時導(dǎo)致溢出崩潰。

a:客戶端針對接口返回需做容錯處理,如返回為空、返回數(shù)據(jù)類型不一致。

b:任何文本框類型的需要限制輸入長度。

十八、 程序健壯性判斷2

a:某些功能的初始化邏輯沒有加入啟動邏輯,導(dǎo)致功能使用失敗。

b:退出重啟app,無法自動登錄。

a:制定啟動加載邏輯規(guī)范。

b:對于重要的業(yè)務(wù)建議加入啟動邏輯,并在業(yè)務(wù)實際使用時再根據(jù)狀態(tài)多一層判斷和加載。

c:產(chǎn)品人員需要考慮是否需要保存自動登錄功能,并明確告之開發(fā)和測試人員。

十九、 安全機制

a:在URL中不要帶有明文的用戶信息寫代碼的時候,不要把密碼等敏感的用戶信息明文的顯示在url中。

b:即使要傳遞密碼參數(shù)也不要使用pwd、passpord這樣的參數(shù)名稱來進行傳遞,防止被截獲。

c:要在傳遞參數(shù)的操作中使用NoCache參數(shù),防止將url參數(shù)進行緩存。

a:建立標準的數(shù)據(jù)傳輸和命名規(guī)范,并制作一些網(wǎng)頁開發(fā)模板或者規(guī)范供參考。

二十、 日志調(diào)試管理

l 上線以后,調(diào)試日志沒有關(guān)閉,影響程序性能。

a:日志統(tǒng)一開關(guān),編譯正式包需要關(guān)閉。

b:程序界面有入口可以檢查是否關(guān)閉,方便及時校驗。

c:方便定位問題,可以做日志動態(tài)開啟的隱藏開關(guān)。

d:方便收集問題,可以對問題類型做上報處理(典型如崩潰日志上報)。

本文版權(quán)歸傳智播客軟件測試學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
 
作者:傳智播客軟件測試培訓(xùn)學(xué)院
 
首發(fā):http://test.itcast.cn/

0 分享到:
和我們在線交談!