本文章轉(zhuǎn)載于搜狗測(cè)試
Android應(yīng)用適配測(cè)試淺談
什么是Android適配測(cè)試
Android適配測(cè)試是為了讓一款應(yīng)用能夠在各種Android設(shè)備上良好運(yùn)行川陆,達(dá)到最佳用戶體驗(yàn)而進(jìn)行的一種測(cè)試韩玩。它涵蓋了安裝媳握,應(yīng)用功能僻族,界面顯示博杖,輸入交互,程序穩(wěn)定性等許多方面。
為什么要進(jìn)行Android應(yīng)用適配測(cè)試
系統(tǒng)碎片化
原生系統(tǒng)版本更新速度快(從2008年9月至今魂爪,發(fā)布了從1.1到4.4至少13個(gè)版本)
第三方編譯(CyanogenMod先舷,Omni,AOKP等)
第三方定制(MIUI滓侍,flyme OS蒋川,ColorOS,SmartisanOS等)
設(shè)備多樣化
設(shè)備品牌(三星撩笆,LG捺球,小米,華為夕冲,魅族氮兵,聯(lián)想……)
分辨率(1920*1080,1280*800歹鱼,1280*720胆剧,800*480……)
運(yùn)營(yíng)商(WCDMA,TD-SCDMA醉冤,CDMA-2000)
手機(jī),平板設(shè)備
實(shí)體鍵篙悯,SmartBar
……
常見(jiàn)的適配問(wèn)題
1. 不能安裝蚁阳,解析包時(shí)出現(xiàn)問(wèn)題;
2. 程序崩潰(啟動(dòng)崩潰鸽照,運(yùn)行崩潰螺捐,意外停止,無(wú)響應(yīng)矮燎,退出崩潰)定血;
3. UI錯(cuò)位/失配(最典型);
4. 啟動(dòng)時(shí)間長(zhǎng)/運(yùn)行不穩(wěn)定/與其它應(yīng)用沖突等诞外。
適配測(cè)試分類
分辨率適配
UI界面在不同平臺(tái)的適配受屏幕尺寸和屏幕密度影響澜沟,Android適配機(jī)制就是在資源后面添加對(duì)這兩種因素的限定,通過(guò)不同的限定區(qū)分不同的平臺(tái)資源峡谊,Android在使用資源的時(shí)候會(huì)優(yōu)先選擇滿足本平臺(tái)限定的資源茫虽,再找最接近條件的,再找默認(rèn)(即不加限定)既们,通過(guò)選擇適合當(dāng)前平臺(tái)的資源來(lái)完成不同平臺(tái)的適配濒析。
該適配測(cè)試適合于圖片,文案啥纸,控件布局較多時(shí)進(jìn)行号杏,同時(shí)也適合WebView頁(yè)面的適配測(cè)試。
廠商機(jī)型適配
當(dāng)功能涉及到與廠商推出的特殊功能相關(guān)斯棒,或者調(diào)用手機(jī)的硬件設(shè)備時(shí)盾致,就需要進(jìn)行針對(duì)廠商/機(jī)型的適配主经。比如自動(dòng)啟用免提功能,使用攝像頭進(jìn)行二維碼的掃描绰上,啟用錄音設(shè)備進(jìn)行音頻的錄制等旨怠。
系統(tǒng)版本適配
Android版本的快速迭代升級(jí),每一個(gè)版本都會(huì)有新的功能蜈块,甚至是新的API出現(xiàn)鉴腻。例如Android 4.4系統(tǒng),只允許一個(gè)默認(rèn)短信應(yīng)用百揭,Android 4.4系統(tǒng)存在一個(gè)可選的運(yùn)行環(huán)境ART爽哎,Android 5.0默認(rèn)運(yùn)行環(huán)境是ART等。
特殊ROM適配
一般來(lái)說(shuō)器一,ROM的適配是因?yàn)镽OM特殊的功能和權(quán)限引起的课锌,或者ROM提供的系統(tǒng)預(yù)置軟件數(shù)據(jù)庫(kù)等于原生不一致等情況。當(dāng)需要兼容特殊定制ROM時(shí)祈秕,就需要考慮部分廠商對(duì)Android系統(tǒng)進(jìn)行了精簡(jiǎn)渺贤、添加、修改请毛,從而進(jìn)行不同的ROM兼容適配志鞍。比如常見(jiàn)的有MIUI(安全管理,懸浮框默認(rèn)關(guān)閉)方仿,ColorOS(部分動(dòng)畫結(jié)束不發(fā)出信號(hào))固棚,flymeOS(嚴(yán)格的安全管理),SmartisanOS(不支持桌面懸浮窗)……
針對(duì)CPU架構(gòu)適配
影響CPU測(cè)試的方面主要有幾個(gè)仙蚜,廠商平臺(tái)(高通此洲,聯(lián)發(fā)科,三星委粉,英特爾)呜师、架構(gòu)(ARM,Atom)以及位數(shù)(32bit/64bit)等艳丛。
Android系統(tǒng)運(yùn)行環(huán)境
主要就是針對(duì)Dalvik和ART運(yùn)行環(huán)境匣掸。ART運(yùn)行環(huán)境是更換了Java虛擬機(jī),其帶來(lái)的影響涉及到底層的庫(kù)(JNI,Java Native Interface)氮双。需要注意的是ART也分版本碰酝。
如何判斷是否需要進(jìn)行適配測(cè)試
主要是根據(jù)開(kāi)發(fā)對(duì)一個(gè)功能實(shí)現(xiàn)/改動(dòng)的內(nèi)容、改動(dòng)的情況戴差,以及對(duì)現(xiàn)有功能的影響送爸。分為UI方面和功能邏輯方面。
其中UI方面常見(jiàn)的改動(dòng):
1. 布局更改
2. 資源圖替換
3. 文案修改
4. 透明度/動(dòng)畫調(diào)整
功能邏輯方面常見(jiàn)的改動(dòng):
1. API/方法/接口/函數(shù)的調(diào)用與修改
2. 功能或改動(dòng)因系統(tǒng)版本而異
3. 功能或改動(dòng)因ROM而異
4. 功能或改動(dòng)因廠商而異
5. 功能或改動(dòng)因不同平臺(tái)架構(gòu)而異
6. 功能或改動(dòng)因網(wǎng)絡(luò)情況而異
7. 調(diào)用系統(tǒng)預(yù)置軟件的文件/數(shù)據(jù)庫(kù)等
8. 系統(tǒng)聯(lián)系人數(shù)據(jù)庫(kù)
9. 系統(tǒng)短信數(shù)據(jù)庫(kù)
適配測(cè)試做到什么程度
1. 記錄每一步的截圖和結(jié)果;
2. 記錄結(jié)果覆蓋所有相應(yīng)功能的機(jī)型/ROM/分辨率等袭厂;
3. 對(duì)于失配的部分及時(shí)報(bào)BUG墨吓,修改完畢后對(duì)修改進(jìn)行適配檢查;
4. 適配測(cè)試需要覆蓋到所有的關(guān)注點(diǎn)纹磺;
5. 能夠給出完整的含有結(jié)論的適配報(bào)告帖烘;
適配過(guò)程中的常見(jiàn)問(wèn)題
如何適配能夠更加高效/省時(shí)?
1. 存在前后步驟或者緊密關(guān)系的適配一次性進(jìn)行
2. 一個(gè)適配步驟盡可能包含更多的適配關(guān)注點(diǎn)
3. 根據(jù)輸入輸出的難易程度進(jìn)行適配步驟的歸類與劃分
4. 有時(shí)需要進(jìn)行多種適配的時(shí)候也可能合并(部分)測(cè)試步驟
5. 避免在存在嚴(yán)重BUG/影響現(xiàn)有實(shí)現(xiàn)的BUG時(shí)進(jìn)行適配測(cè)試
涉及第三方SDK/接口的內(nèi)容怎么去適配橄杨?
需要對(duì)第三方SDK/接口的結(jié)果進(jìn)行適配測(cè)試秘症。避免出現(xiàn)因?yàn)榈谌絊DK/接口的適配問(wèn)題而給產(chǎn)品帶來(lái)負(fù)面的影響。
需要考慮到第三方接口面向的用戶終端式矫。比如微信SDK的接口分享的圖片需要面向Android和iOS設(shè)備乡摹。
如果開(kāi)發(fā)沒(méi)有同時(shí)提測(cè)一個(gè)模塊的不同功能,怎樣適配采转?
可以在開(kāi)發(fā)全部提測(cè)完成后再進(jìn)行測(cè)試聪廉。尤其當(dāng)有些頁(yè)面之間的關(guān)系為子級(jí)(跳轉(zhuǎn)過(guò)去)時(shí),完全可以到子頁(yè)面也全部提測(cè)之后再進(jìn)行測(cè)試故慈。這樣可以節(jié)省時(shí)間板熊。
如果測(cè)試時(shí)間緊張,還要進(jìn)行適配測(cè)試察绷,該怎樣進(jìn)行邻邮?
性價(jià)比優(yōu)先。在資源許可的條件下克婶,為盡可能多的用戶提供服務(wù)。
優(yōu)先適配主流機(jī)型丹泉;
優(yōu)先適配主流分辨率情萤;
優(yōu)先適配主流系統(tǒng)版本;
適配測(cè)試中存在的困難
設(shè)備類型過(guò)多摹恨,無(wú)法100%適配到筋岛;
部分適配問(wèn)題發(fā)生在非主流機(jī)型,甚至是已經(jīng)停產(chǎn)的機(jī)型上晒哄;
特定的機(jī)器刷了特定的ROM引起的適配問(wèn)題睁宰。