更新時(shí)間:2018年03月30日15時(shí)51分 來源:傳智播客 瀏覽次數(shù):
一、界面適配
l 手機(jī)分辨率為1920x7080的高分辨率手機(jī),在調(diào)整手機(jī)字體大小時(shí),會(huì)導(dǎo)致頁(yè)面顯示出現(xiàn)變形;
l 因用戶設(shè)置的特殊字體導(dǎo)致列表的字母條不顯示;
l 某些banner 圖片在部分機(jī)型只能顯示一半;
l 文字或者圖片需要適配不同分辨率的機(jī)型時(shí),建議使用dp方式進(jìn)行開發(fā),即使是使用dp,也需要考慮特殊分辨率的機(jī)型顯示;
l 適應(yīng)寬度/適應(yīng)高度/高寬均適應(yīng)的;
l 針對(duì)程序需求,設(shè)定合適的適配機(jī)制。
二、 系統(tǒng)適配
l 調(diào)用高版本API,導(dǎo)致某些機(jī)型進(jìn)入主頁(yè)顯示空白頁(yè)面。
l 調(diào)用高版本API,需要考慮兼容性,開發(fā)團(tuán)隊(duì)需要制定程序API調(diào)用規(guī)范。
三、 交互適配1
l 在輸入框操作時(shí),調(diào)出系統(tǒng)輸入法軟鍵盤后,沒有有效啟用鍵盤上的“下一項(xiàng)”、“確定”、“搜索”等按鍵。
l 系統(tǒng)軟鍵盤,在關(guān)閉當(dāng)前頁(yè)面時(shí)沒有及時(shí)收起軟鍵盤。
l 需求設(shè)計(jì)過程中需要考慮輸入法操作鍵的使用細(xì)節(jié),確保所有軟鍵盤的輸入鍵可使用。
l 設(shè)計(jì)規(guī)范:程序/頁(yè)面設(shè)計(jì)針對(duì)輸入法操作鍵的使用制定規(guī)范。
四、交互適配2
l APP界面的“返回”操作與手機(jī)系統(tǒng)的“返回”按鍵操作效果不一致;或界面未提供“返回”,在無系統(tǒng)“返回”按鍵的手機(jī)上,無法返回。
l 設(shè)計(jì)規(guī)范:程序設(shè)計(jì)針對(duì)手機(jī)返回鍵制定使用規(guī)范。
l 在設(shè)計(jì)中要綜合界面需求設(shè)定是否提供“返回”操作。
五、 界面風(fēng)格
l 對(duì)話框標(biāo)點(diǎn)、英文字符出現(xiàn)全角、半角的不統(tǒng)一。
l 對(duì)話框、提示浮動(dòng)框提示語(yǔ)風(fēng)格不同,顯示位置均不同,產(chǎn)品友好度下降。
l 字體和字號(hào)要在app中是不同的風(fēng)格。
預(yù)防方法:語(yǔ)言文字提示規(guī)范。
Ø 全角字符和半角字符都要使用一個(gè)空格分開。
Ø 英文和數(shù)字之間要有空格分開。
Ø 漢字和英文、數(shù)字要有空格分開。
Ø 帶有漢字的話要使用全角字符。
Ø 語(yǔ)言中不要混用全角和半角標(biāo)點(diǎn)。
Ø 字體和字號(hào)要保持統(tǒng)一的風(fēng)格。
六、 性能優(yōu)化1
l 進(jìn)入一些列表,若數(shù)量較多則會(huì)出現(xiàn)卡死。
l 界面顯示對(duì)象數(shù)量較多,某些會(huì)導(dǎo)致頁(yè)面操作卡頓,用戶體驗(yàn)很差。
l 處理大量數(shù)據(jù)時(shí),用戶等待時(shí)間過長(zhǎng),無進(jìn)度條提示進(jìn)度。
l 程序?qū)臅r(shí)較多的操作邏輯、判斷邏輯,不放入U(xiǎn)I主線程。
l 對(duì)數(shù)據(jù)庫(kù)記錄較多的操作,可以改成數(shù)據(jù)庫(kù)批量操作,或者調(diào)用批量接口。
l 程序在后臺(tái)處理用戶的輸入,則提供進(jìn)度條或?qū)υ捒颉?/p>
七、性能優(yōu)化2
l 后臺(tái)播放內(nèi)存泄露;
l 程序后臺(tái)運(yùn)行的時(shí)候,手機(jī)一直處于占用CPU的運(yùn)行狀態(tài)。
l 頁(yè)面中的動(dòng)態(tài)效果(如:馬燈滾動(dòng))次數(shù)無限制,導(dǎo)致界面不斷刷新消耗資源。
l 使用靜態(tài)分析工具或代碼檢查方式檢查內(nèi)容的分配和釋放。
l WakeLock機(jī)制是防回收技術(shù),當(dāng)沒有播放、下載等操作時(shí),應(yīng)該主動(dòng)關(guān)閉后臺(tái)的喚醒鎖,減少耗電。當(dāng)再次需要使用播放、下載功能時(shí)才去開啟喚醒。
l 對(duì)刷新消耗資源類操作,要有次數(shù)限制。
八、多服務(wù)、多進(jìn)程
l 某些功能操作后,app 無法連接網(wǎng)絡(luò)。
l 進(jìn)程被殺死后重啟,通知欄中顯示的信息不正確,沒有顯示正確的信息。
l app未啟動(dòng),通過其他第三方app的調(diào)用入口調(diào)用app ,無法正常使用某些功能。
l 服務(wù)停止后,無法被啟動(dòng)。
l 程序被手動(dòng)退出后,進(jìn)程仍然在后臺(tái)存在。
l 重新初始化時(shí)獲取值時(shí)讀取到空值,因此賦予一個(gè)默認(rèn)值。
l 服務(wù)重啟被回收重啟時(shí),初始化對(duì)象時(shí)要判斷當(dāng)前是否已存在,若存在則復(fù)用并更新內(nèi)容。
l 任務(wù)獨(dú)立,需要?jiǎng)?chuàng)建不同的服務(wù),生命周期不會(huì)互相影響,服務(wù)獨(dú)立可以避免某個(gè)服務(wù)結(jié)束會(huì)影響到其他功能的正常使用。
總體,對(duì)有啟用多服務(wù)、多進(jìn)程的程序,有需要做好服務(wù)、進(jìn)程的一致性管理。
九、外部調(diào)用
l 某些機(jī)型啟動(dòng)app之后一直在調(diào)用某些外部服務(wù)(通過后臺(tái)服務(wù)可以看到其他服務(wù)進(jìn)程,退出app后,有些服務(wù)進(jìn)程消失)。
l 某些功能模塊被掃描成存在木馬病毒。
l 安全管家告警程序獲取絕密權(quán)限(通訊錄權(quán)限)。
l 調(diào)用第三方功能作為統(tǒng)計(jì)或者監(jiān)控作用時(shí),需要考慮該sdk是否會(huì)一直喚醒a(bǔ)pp導(dǎo)致耗電或者程序無法真正關(guān)閉問題。
l 調(diào)用外部第三方SDK,要考慮被安全工具(上次有廣告被掃描到病毒)掃描的設(shè)計(jì)需求。
l 及時(shí)關(guān)閉不需要的服務(wù)進(jìn)程,在能滿足需求的情況下,盡量減少使用敏感的系統(tǒng)權(quán)限。
十、網(wǎng)絡(luò)機(jī)制1
a:網(wǎng)絡(luò)重試操作機(jī)制不統(tǒng)一,導(dǎo)致頁(yè)面超時(shí)體驗(yàn)風(fēng)格不統(tǒng)一。
b:某些應(yīng)用頁(yè)面,訪問響應(yīng)慢。
a:對(duì)底層網(wǎng)絡(luò)重試機(jī)制做統(tǒng)一封裝后,供上層調(diào)用。
b:固定好每次重試間隔(建議10s重試)和重試總次數(shù)(建議3次)。
c:為使頁(yè)面提示可以區(qū)分網(wǎng)絡(luò)層與業(yè)務(wù)解析層不同錯(cuò)誤,需對(duì)不同錯(cuò)誤類型做分類的異常處理,并提示用戶原因或讓用戶重試。
d:對(duì)多個(gè)網(wǎng)絡(luò)請(qǐng)求的界面,網(wǎng)絡(luò)接口并行請(qǐng)求有利于提高響應(yīng)速度。
十一、 網(wǎng)絡(luò)機(jī)制2
a:未加載完圖片時(shí)切換到相似tab,切回不再加載圖片。
b:進(jìn)入一個(gè)tab,該頁(yè)面已經(jīng)加載完成,選擇點(diǎn)擊某個(gè)詳細(xì)信息頁(yè)面返回時(shí),頁(yè)面會(huì)閃一下。
a:一個(gè)頁(yè)面有多個(gè)tab頁(yè)時(shí),用戶切換tab可不輕易取消線程,取而代之使用暫停線程,退出頁(yè)面時(shí)才回收清除。
b:?jiǎn)?dòng)負(fù)載分?jǐn)倷C(jī)制的請(qǐng)求,可先保存請(qǐng)求地址,供返回時(shí)判斷避免重復(fù)加載。
十二、網(wǎng)絡(luò)機(jī)制3
a:iOS弱網(wǎng)絡(luò)下獲取不到配置,導(dǎo)致啟動(dòng)卡死。
b:sim卡未激活,無移動(dòng)網(wǎng)絡(luò),某些功能卡死。
c:斷網(wǎng)下啟動(dòng),登錄狀態(tài)丟失,某些功能信息未正確顯示。
a:?jiǎn)?dòng)邏輯中的網(wǎng)絡(luò)類請(qǐng)求不能阻塞UI主線程,即網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)可不即時(shí)響應(yīng)(可在下次啟動(dòng)時(shí)生效)。
b:按鈕的點(diǎn)擊事件不跟接口關(guān)聯(lián),做成異步處理不管是否有返回,都可以正常進(jìn)行點(diǎn)擊操作。
c:離線操作類,不因與當(dāng)前網(wǎng)絡(luò)狀態(tài)有影響。
十三、下載空間有效性判斷
a:空間不足時(shí),無法保存信息時(shí),沒有提示和提前判斷。
b:本地存儲(chǔ)空間不足時(shí),保存文件時(shí)沒有相應(yīng)提示。
c:空間不足時(shí),文件下載不成功,導(dǎo)致重復(fù)不停下載,浪費(fèi)用戶流量。
a:對(duì)磁盤剩余空間的判斷和自動(dòng)清理邏輯可以做統(tǒng)一封裝,提供各不同下載業(yè)務(wù)使。
b:可結(jié)合系統(tǒng)硬件配置的10%作為有效剩余空間閥值。
c:針對(duì)手機(jī)內(nèi)外置SDCard,可以在空間不足情況下做分區(qū)切換機(jī)制。
十四、下載文件完整性判斷
a:換膚圖片未下載完,就觸發(fā)換膚操作,導(dǎo)致?lián)Q膚效果錯(cuò)誤。
b:圖片無法下載完全,導(dǎo)致圖片展示不完整。
c:文件下載完成后,由于網(wǎng)絡(luò)錯(cuò)誤與源文件不符,導(dǎo)致下載后無法播放。
d:上傳文件功能,目標(biāo)物理文件不存在(界面缺顯示存在),導(dǎo)致傳送文件頁(yè)面一直處于等待中。
a:通過判斷下載前后文件的size或者文件內(nèi)容簽名,確保下載文件完整后再觸發(fā)文件使用相關(guān)的邏輯。
b:文件傳輸時(shí)檢查文件是否存在,若不存在則視為傳輸失敗,不阻塞后續(xù)傳輸。
十五、阻斷連續(xù)操作
a:連續(xù)快速切換界面,或者頻繁觸發(fā)某些功能操作,導(dǎo)致程序卡死。
b:連續(xù)多次點(diǎn)擊同一張圖片,導(dǎo)致該圖片下載錯(cuò)誤。
a: 使用間隔響應(yīng)、延遲響應(yīng)的方式,達(dá)到多次相同操作只的觸發(fā)一次有效邏輯。
b:操作一次后,可將按鈕等元素設(shè)定為禁用狀態(tài),防止用戶多次點(diǎn)擊和請(qǐng)求。
十六、有效統(tǒng)計(jì)邏輯
a:操作頁(yè)面某些元素,也會(huì)導(dǎo)致發(fā)送頁(yè)面使用的統(tǒng)計(jì)信息。
a:為確保統(tǒng)計(jì)數(shù)據(jù)上傳的有效性,只針對(duì)真正展示的界面做上報(bào)統(tǒng)計(jì),對(duì)于展示不完整、非針對(duì)性展示不做統(tǒng)計(jì)上報(bào)。
十七、程序健壯性判斷1
a:分享到新浪微博(手機(jī)未裝新浪微博客戶端),app崩潰。
b:后臺(tái)接口變更(返回值和類型發(fā)生變化),客戶端不兼容新格式判斷,拋出崩潰異常。
c:搜索默認(rèn)操作崩潰;
d:使用外部第三方數(shù)據(jù),出現(xiàn)空數(shù)據(jù)或者非標(biāo)準(zhǔn)格式,則app崩潰。
e:輸入框沒有限制字符長(zhǎng)度,保存時(shí)導(dǎo)致溢出崩潰。
a:客戶端針對(duì)接口返回需做容錯(cuò)處理,如返回為空、返回?cái)?shù)據(jù)類型不一致。
b:任何文本框類型的需要限制輸入長(zhǎng)度。
十八、 程序健壯性判斷2
a:某些功能的初始化邏輯沒有加入啟動(dòng)邏輯,導(dǎo)致功能使用失敗。
b:退出重啟app,無法自動(dòng)登錄。
a:制定啟動(dòng)加載邏輯規(guī)范。
b:對(duì)于重要的業(yè)務(wù)建議加入啟動(dòng)邏輯,并在業(yè)務(wù)實(shí)際使用時(shí)再根據(jù)狀態(tài)多一層判斷和加載。
c:產(chǎn)品人員需要考慮是否需要保存自動(dòng)登錄功能,并明確告之開發(fā)和測(cè)試人員。
十九、 安全機(jī)制
a:在URL中不要帶有明文的用戶信息寫代碼的時(shí)候,不要把密碼等敏感的用戶信息明文的顯示在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)頁(yè)開發(fā)模板或者規(guī)范供參考。
二十、 日志調(diào)試管理
l 上線以后,調(diào)試日志沒有關(guān)閉,影響程序性能。
a:日志統(tǒng)一開關(guān),編譯正式包需要關(guān)閉。
b:程序界面有入口可以檢查是否關(guān)閉,方便及時(shí)校驗(yàn)。
c:方便定位問題,可以做日志動(dòng)態(tài)開啟的隱藏開關(guān)。
d:方便收集問題,可以對(duì)問題類型做上報(bào)處理(典型如崩潰日志上報(bào))。
本文版權(quán)歸傳智播客軟件測(cè)試學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客軟件測(cè)試培訓(xùn)學(xué)院
首發(fā):http://test.itcast.cn/
北京校區(qū)