兼容性測(cè)試

圖片.png

1、兼容性測(cè)試方法

兼容性測(cè)試主要有手動(dòng)測(cè)試、自動(dòng)化測(cè)試和云平臺(tái)測(cè)試三種方法喊儡。

1)手動(dòng)測(cè)試

兼容性測(cè)試最簡(jiǎn)單的,就是在日常手工測(cè)試中稻据,按照一定的策略進(jìn)行測(cè)試艾猜。具體有哪些策略呢?
( 1 ) TOP 機(jī)型覆蓋。例如匆赃,在手機(jī) QQ 瀏覽器( Android )測(cè)試中淤毛,通常筆者在 “ 迭代測(cè)試 ” 階段采用當(dāng)前 Android TOP 50 (數(shù)據(jù)來源:產(chǎn)品經(jīng)理)機(jī)型。在 “ 上線前 ” 測(cè)試中算柳,筆者縮小范圍低淡,采用 TOP20 機(jī)型進(jìn)行測(cè)試;
( 2 )差異機(jī)型瞬项。先分析得出機(jī)器差異性在于 GPU 蔗蹋,再根據(jù)對(duì) GPU 品牌型號(hào)的分析,做精準(zhǔn)覆蓋滥壕。例如:
a纸颜、高通 GPU 的機(jī)器可以主要覆蓋 Adreno 200 和 Adreno 203 ,基本占高通總數(shù)的 60% 绎橘;
b胁孙、Imagnition : GPU 的機(jī)器主要覆蓋 SGX544+ 和 SGX531 ,約占該品牌總數(shù)的 65% 称鳞;
c涮较、Mali :覆蓋 Mali-400MP ,占 72% 冈止;
用上述 GPU 的機(jī)器狂票,在測(cè)試中重點(diǎn)覆蓋。
( 3 )已有 BUG 分析的機(jī)型覆蓋熙暴。通過對(duì)現(xiàn)有 BUG 庫(kù)中機(jī)型問題進(jìn)行歸納匯總闺属,歸納出重點(diǎn)測(cè)試機(jī)型。

2)自動(dòng)化測(cè)試

現(xiàn)在業(yè)界主流機(jī)型兼容自動(dòng)化思路周霉,是利用多機(jī)型云平臺(tái)海量的設(shè)備進(jìn)行被測(cè) App 的安裝卸載掂器、穩(wěn)定性、功能測(cè)試等測(cè)試俱箱。本節(jié)主要介紹自動(dòng)化實(shí)現(xiàn)部分国瓮,云平臺(tái)使用部分在下一節(jié)介紹。

(1)安裝卸載

通過在 Android 設(shè)備上安裝被測(cè)應(yīng)用 → 啟動(dòng)被測(cè)應(yīng)用 → 卸載被測(cè)應(yīng)用狞谱,來檢驗(yàn)以下兩方面內(nèi)容:
a乃摹、安裝包的安裝兼容性
通過 adb ( Android Debug Bridge )進(jìn)行安裝和卸載。例如:安裝包 test.apk 跟衅,包名 com.sample.app 孵睬,啟動(dòng) Activity 是 MainActivity 。
安裝: adb install test.apk 与斤。
啟動(dòng): adb shell am start–n com.sample.app/.MainActivity 肪康。
卸載: adb uninstall test.apk 荚恶。
覆蓋安裝: adb install–r test.apk 。
通過上述命令磷支,進(jìn)行 App 安裝谒撼、啟動(dòng)、卸載雾狈。觀察 console 輸出廓潜,如果是 success 就是成功,反之就是失敗善榛。同時(shí)抓取 Logcat 辩蛋,提供給開發(fā)人員。

b移盆、通過啟動(dòng)被測(cè)應(yīng)用悼院,檢測(cè)啟動(dòng) crash 等低級(jí)致命問題
通過對(duì) Logcat ( DDMS 中工具)打印內(nèi)容進(jìn)行監(jiān)控,查找 Java 層和 Native 層 Crash 信息咒循。
Java 層 Crash 信息如下:

E/AndroidRuntime( 1857): FATAL EXCEPTION: main
E/AndroidRuntime( 1857): java.lang.RuntimeException: Unable to create
service com.sample.app.internal.protocols.ProtocolsPackService: java.lang.
RuntimeException: Unable to register protocol, service is dead
E/AndroidRuntime( 1857): at android.app.ActivityThread.handleCreateService(Act
ivityThread.java:2373)
E/AndroidRuntime( 1857): at android.app.ActivityThread.access$1600
(ActivityThread.java:130)

Native 層 Crash 信息如下:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'XXXXXXXXX'
pid: 1658, tid: 13086 >>> com.sample.app <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 64696f7e
r0 00000000 r1 00000001 r2 ad12d1e8 r3 7373654d
r4 64696f72 r5 00000406 r6 00974130 r7 40d14008
r8 4b857b88 r9 4685adb4 10 00974130 fp 4b857ed8
ip 00000000 sp 4b857b50 lr afd11108 pc ad115ebc cpsr 20000030

如果 Crash 的 Trace 信息中包含被測(cè) App 的包名( com.sample.app )据途,那么這個(gè) Crash 就是被測(cè) App 引起的。

(2) 穩(wěn)定性

為了測(cè)試 App 在各種不同機(jī)型上的穩(wěn)定性叙甸,通過工具測(cè)試進(jìn)行數(shù)小時(shí)測(cè)試颖医,發(fā)現(xiàn) Crash 問題。業(yè)界主要通過兩種方法進(jìn)行測(cè)試裆蒸,具體如下:
a熔萧、控件遍歷測(cè)試
現(xiàn)在業(yè)界測(cè)試實(shí)現(xiàn)方法基本包含以下幾個(gè)步驟。
( 1 )獲取當(dāng)前被測(cè) App 的所有控件方法見下表:

圖片.png

( 2 )采用某種算法遍歷 App 中獲取的控件僚祷,基于二叉樹遍歷算法改進(jìn)而來佛致。注意點(diǎn)擊控件后,當(dāng)前控件樹發(fā)生變化辙谜。
( 3 )針對(duì)遍歷到的控件進(jìn)行相應(yīng)操作晌杰,方法見下表:
圖片.png

b、 Monkey 隨機(jī)測(cè)試
運(yùn)行 Android 原生穩(wěn)定性測(cè)試工具 Monkey 筷弦,通過 ADB ( Android Debug Bridge )實(shí)現(xiàn)。

(3)功能測(cè)試

在手機(jī) ( Android )項(xiàng)目中抑诸,搭建了一套自動(dòng)化工具烂琴。通過編寫功能測(cè)試自動(dòng)化腳本,在內(nèi)部云平臺(tái)設(shè)備上運(yùn)行蜕乡。自動(dòng)化框架如下圖所示:


圖片.png

當(dāng)你面對(duì)下圖這樣的測(cè)試結(jié)果奸绷,如果僅僅通過文字判斷,結(jié)果是完全正確的层玲。但是号醉,你能承認(rèn)結(jié)果是正的嗎反症?很顯然不能。因?yàn)楸尘邦伾l(fā)白畔派,不符合預(yù)期铅碍。


圖片.png

問題的關(guān)鍵在于: 自動(dòng)化無法驗(yàn)證復(fù)雜的界面顏色、布局线椰、背景等元素胞谈。
如何破解呢 ?從投入產(chǎn)出比來看憨愉,采用自動(dòng)化運(yùn)行烦绳,人工驗(yàn)證結(jié)果(截圖)的半自動(dòng)化方式。

(4)開源自動(dòng)化平臺(tái)

https://mp.weixin.qq.com/s/JNHKJfnW74tDeVilIfnfMg
https://blog.csdn.net/addisonko/article/details/50912357
https://blog.csdn.net/budf01/article/details/53694177
https://testerhome.com/topics/7966
https://blog.csdn.net/yorkz0909/article/details/76523271

2配紫、云平臺(tái)

  1. 騰訊優(yōu)測(cè)
    http://utest.21kunpeng.com/
    2.Testin
    https://www.testin.cn/
    3径密、百度云
    http://mtc.baidu.com/
    4、平臺(tái)對(duì)比
    圖片.png

3躺孝、兼容性測(cè)試思考

UI 級(jí)別的自動(dòng)化給人的印象一直就是 “ 變化太大享扔,收益太低 ” 。一旦 UI 發(fā)生了較大變化括细,之前的自動(dòng)化腳本就會(huì)有較大改動(dòng)伪很,投入高,收益低奋单。
怎么破解這個(gè)難題锉试?思路如下:
(1)降低建設(shè)成本:筆者以編寫自動(dòng)化腳本為例,首先览濒,選擇一個(gè)低學(xué)習(xí)成本而且高效率的框架很重要呆盖。其次,不斷地累計(jì)公共函數(shù)贷笛,讓腳本開發(fā)速度提升數(shù)倍应又。
(2)提高使用頻率:自動(dòng)化測(cè)試使用頻率越高,收益就越高乏苦。同一套自動(dòng)化腳本株扛,在當(dāng)前版本每次回歸時(shí)都能使用;同樣汇荐,經(jīng)過簡(jiǎn)單修改后洞就,在下個(gè)版本中也能發(fā)揮重要作用。
(3)以不變應(yīng)萬變: 自動(dòng)化的模塊還是優(yōu)先選擇 UI 相對(duì)變化較小的模塊掀淘,這些是適合自動(dòng)化的部分旬蟋,能在未來減少變化帶來的成本。
(4)發(fā)展多種經(jīng)營(yíng): 自動(dòng)化腳本的用途革娄,絕對(duì)不只是在功能驗(yàn)證上這么簡(jiǎn)單倾贰。其他各種測(cè)試都可以用到冕碟,例如:覆蓋安裝、性能測(cè)試匆浙、安裝包驗(yàn)證 …… 發(fā)更多的用途就會(huì)有更大的收益安寺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吞彤,隨后出現(xiàn)的幾起案子我衬,更是在濱河造成了極大的恐慌,老刑警劉巖饰恕,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挠羔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡埋嵌,警方通過查閱死者的電腦和手機(jī)破加,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雹嗦,“玉大人范舀,你說我怎么就攤上這事×俗铮” “怎么了锭环?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)泊藕。 經(jīng)常有香客問我辅辩,道長(zhǎng),這世上最難降的妖魔是什么娃圆? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任玫锋,我火速辦了婚禮,結(jié)果婚禮上讼呢,老公的妹妹穿的比我還像新娘撩鹿。我一直安慰自己,他們只是感情好悦屏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布节沦。 她就那樣靜靜地躺著,像睡著了一般础爬。 火紅的嫁衣襯著肌膚如雪散劫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天幕帆,我揣著相機(jī)與錄音,去河邊找鬼赖条。 笑死失乾,一個(gè)胖子當(dāng)著我的面吹牛常熙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碱茁,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裸卫,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了纽竣?” 一聲冷哼從身側(cè)響起墓贿,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜓氨,沒想到半個(gè)月后聋袋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡穴吹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年幽勒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片港令。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啥容,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出顷霹,到底是詐尸還是另有隱情咪惠,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布淋淀,位于F島的核電站遥昧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绅喉。R本人自食惡果不足惜渠鸽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柴罐。 院中可真熱鬧徽缚,春花似錦、人聲如沸革屠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽似芝。三九已至那婉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間党瓮,已是汗流浹背详炬。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寞奸,地道東北人呛谜。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓在跳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親隐岛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子猫妙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1 概述 兼容性測(cè)試是指測(cè)試軟件在特定的硬件平臺(tái)上、不同的應(yīng)用軟件之間聚凹、不同的操作系統(tǒng)平臺(tái)上割坠、不同的網(wǎng)絡(luò)等環(huán)境中是...
    HeleneHSUR閱讀 2,682評(píng)論 0 1
  • 一、 手機(jī)測(cè)試概念 傳統(tǒng)手機(jī)測(cè)試 VS 手機(jī)應(yīng)用軟件測(cè)試 傳統(tǒng)手機(jī)測(cè)試:指測(cè)試手機(jī)本身比如抗壓象浑,抗摔蔫饰,抗疲勞,抗低...
    胖虎大魔王閱讀 245評(píng)論 0 0
  • 隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,App 應(yīng)用非瞅嚼梗火杖剪,測(cè)試工程師也會(huì)接觸到各種 app 應(yīng)用。除了人工測(cè)試之外驰贷,也可以通過...
    檸檬小歐閱讀 825評(píng)論 0 2
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者盛嘿,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn)括袒,也就放棄了無數(shù)的可能次兆。 ...
    yichen大刀閱讀 6,049評(píng)論 0 4
  • 公元:2019年11月28日19時(shí)42分農(nóng)歷:二零一九年 十一月 初三日 戌時(shí)干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 6,879評(píng)論 0 2