更新時間:2018年03月30日15時51分 來源:傳智播客 瀏覽次數(shù):
一、界面適配
l 手機分辨率為1920x7080的高分辨率手機,在調(diào)整手機字體大小時,會導(dǎo)致頁面顯示出現(xiàn)變形;
l 因用戶設(shè)置的特殊字體導(dǎo)致列表的字母條不顯示;
l 某些banner 圖片在部分機型只能顯示一半;
l 文字或者圖片需要適配不同分辨率的機型時,建議使用dp方式進(jìn)行開發(fā),即使是使用dp,也需要考慮特殊分辨率的機型顯示;
l 適應(yīng)寬度/適應(yīng)高度/高寬均適應(yīng)的;
l 針對程序需求,設(shè)定合適的適配機制。
二、 系統(tǒng)適配
l 調(diào)用高版本API,導(dǎo)致某些機型進(jìn)入主頁顯示空白頁面。
l 調(diào)用高版本API,需要考慮兼容性,開發(fā)團(tuán)隊需要制定程序API調(diào)用規(guī)范。
三、 交互適配1
l 在輸入框操作時,調(diào)出系統(tǒng)輸入法軟鍵盤后,沒有有效啟用鍵盤上的“下一項”、“確定”、“搜索”等按鍵。
l 系統(tǒng)軟鍵盤,在關(guān)閉當(dāng)前頁面時沒有及時收起軟鍵盤。
l 需求設(shè)計過程中需要考慮輸入法操作鍵的使用細(xì)節(jié),確保所有軟鍵盤的輸入鍵可使用。
l 設(shè)計規(guī)范:程序/頁面設(shè)計針對輸入法操作鍵的使用制定規(guī)范。
四、交互適配2
l APP界面的“返回”操作與手機系統(tǒng)的“返回”按鍵操作效果不一致;或界面未提供“返回”,在無系統(tǒng)“返回”按鍵的手機上,無法返回。
l 設(shè)計規(guī)范:程序設(shè)計針對手機返回鍵制定使用規(guī)范。
l 在設(shè)計中要綜合界面需求設(shè)定是否提供“返回”操作。
五、 界面風(fēng)格
l 對話框標(biāo)點、英文字符出現(xiàn)全角、半角的不統(tǒng)一。
l 對話框、提示浮動框提示語風(fēng)格不同,顯示位置均不同,產(chǎn)品友好度下降。
l 字體和字號要在app中是不同的風(fēng)格。
預(yù)防方法:語言文字提示規(guī)范。
Ø 全角字符和半角字符都要使用一個空格分開。
Ø 英文和數(shù)字之間要有空格分開。
Ø 漢字和英文、數(shù)字要有空格分開。
Ø 帶有漢字的話要使用全角字符。
Ø 語言中不要混用全角和半角標(biāo)點。
Ø 字體和字號要保持統(tǒng)一的風(fēng)格。
六、 性能優(yōu)化1
l 進(jìn)入一些列表,若數(shù)量較多則會出現(xiàn)卡死。
l 界面顯示對象數(shù)量較多,某些會導(dǎo)致頁面操作卡頓,用戶體驗很差。
l 處理大量數(shù)據(jù)時,用戶等待時間過長,無進(jìn)度條提示進(jìn)度。
l 程序?qū)臅r較多的操作邏輯、判斷邏輯,不放入UI主線程。
l 對數(shù)據(jù)庫記錄較多的操作,可以改成數(shù)據(jù)庫批量操作,或者調(diào)用批量接口。
l 程序在后臺處理用戶的輸入,則提供進(jìn)度條或?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ù),當(dāng)沒有播放、下載等操作時,應(yīng)該主動關(guān)閉后臺的喚醒鎖,減少耗電。當(dāng)再次需要使用播放、下載功能時才去開啟喚醒。
l 對刷新消耗資源類操作,要有次數(shù)限制。
八、多服務(wù)、多進(jìn)程
l 某些功能操作后,app 無法連接網(wǎng)絡(luò)。
l 進(jìn)程被殺死后重啟,通知欄中顯示的信息不正確,沒有顯示正確的信息。
l app未啟動,通過其他第三方app的調(diào)用入口調(diào)用app ,無法正常使用某些功能。
l 服務(wù)停止后,無法被啟動。
l 程序被手動退出后,進(jìn)程仍然在后臺存在。
l 重新初始化時獲取值時讀取到空值,因此賦予一個默認(rèn)值。
l 服務(wù)重啟被回收重啟時,初始化對象時要判斷當(dāng)前是否已存在,若存在則復(fù)用并更新內(nèi)容。
l 任務(wù)獨立,需要創(chuàng)建不同的服務(wù),生命周期不會互相影響,服務(wù)獨立可以避免某個服務(wù)結(jié)束會影響到其他功能的正常使用。
總體,對有啟用多服務(wù)、多進(jìn)程的程序,有需要做好服務(wù)、進(jìn)程的一致性管理。
九、外部調(diào)用
l 某些機型啟動app之后一直在調(diào)用某些外部服務(wù)(通過后臺服務(wù)可以看到其他服務(wù)進(jìn)程,退出app后,有些服務(wù)進(jìn)程消失)。
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ù)進(jìn)程,在能滿足需求的情況下,盡量減少使用敏感的系統(tǒng)權(quán)限。
十、網(wǎng)絡(luò)機制1
a:網(wǎng)絡(luò)重試操作機制不統(tǒng)一,導(dǎo)致頁面超時體驗風(fēng)格不統(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:進(jìn)入一個tab,該頁面已經(jīng)加載完成,選擇點擊某個詳細(xì)信息頁面返回時,頁面會閃一下。
a:一個頁面有多個tab頁時,用戶切換tab可不輕易取消線程,取而代之使用暫停線程,退出頁面時才回收清除。
b:啟動負(fù)載分?jǐn)倷C制的請求,可先保存請求地址,供返回時判斷避免重復(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),做成異步處理不管是否有返回,都可以正常進(jìn)行點擊操作。
c:離線操作類,不因與當(dāng)前網(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:上傳文件功能,目標(biāo)物理文件不存在(界面缺顯示存在),導(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)的方式,達(dá)到多次相同操作只的觸發(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:搜索默認(rèn)操作崩潰;
d:使用外部第三方數(shù)據(jù),出現(xiàn)空數(shù)據(jù)或者非標(biāo)準(zhǔn)格式,則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ù)名稱來進(jìn)行傳遞,防止被截獲。
c:要在傳遞參數(shù)的操作中使用NoCache參數(shù),防止將url參數(shù)進(jìn)行緩存。
a:建立標(biāo)準(zhǔn)的數(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/