兼容性測試怎么做?
說到兼容性測試,大多數人第一時間都會只想到瀏覽器的兼容,很少有人能夠準確理解兼容性測試,實際上兼容性還包括其他內容,比如PC/Web端、APP兼容、智能硬件兼容等等。下面先具體說一下什么是兼容性測試:
兼容性測試(Compatibility Test Suite),官方簡稱CTS,是指對所設計程序與硬件、軟件之間的兼容性的測試。一般來說,兼容性是指能同時容納多個方面,在計算機術語上兼容是指幾個硬件之間、幾個軟件之間或者是軟硬件之間的相互配合程度。
那么如何進行兼容性測試,我們以常見的web端和APP端的兼容性測試為例,說一下具體該如何進行兼容性測試:
一種方法是人工測試即全手工測試兼容性,第二種方法是借助于第三方兼容性測試工具,第三種是采用兼容測試服務商,比如國內做的比較好的Testin云測。
前兩種方法都有利弊點,首先,人工測試的工作量很大,這樣就會導致測試的覆蓋面不全,第三方測試工具雖然相對于人工測試來說工作量小,但在主功能和主流程測試的時候沒有側重點,會很難發現一些隱藏的問題,想要更好的實施兼容性測試,目前主流的是采用兼容測試專業的服務商模式,下任務,等報告就可以了,專業簡單可信賴。
兼容性測試
兼容性測試主要有手動測試、自動化測試和云平臺測試三種方法。
現在業界主流機型兼容自動化思路,是利用多機型云平臺海量的設備進行被測 App 的安裝卸載、穩定性、功能測試等測試。本節主要介紹自動化實現部分,云平臺使用部分在下一節介紹。
通過在 Android 設備上安裝被測應用 → 啟動被測應用 → 卸載被測應用,來檢驗以下兩方面內容:
a、安裝包的安裝兼容性
通過 adb ( Android Debug Bridge )進行安裝和卸載。例如:安裝包 test.apk ,包名 com.sample.app ,啟動 Activity 是 MainActivity 。
安裝: adb install test.apk 。
啟動: adb shell am start–n com.sample.app/.MainActivity 。
卸載: adb uninstall test.apk 。
覆蓋安裝: adb install–r test.apk 。
通過上述命令,進行 App 安裝、啟動、卸載。觀察 console 輸出,如果是 success 就是成功,反之就是失敗。同時抓取 Logcat ,提供給開發人員。
b、通過啟動被測應用,檢測啟動 crash 等低級致命問題
通過對 Logcat ( DDMS 中工具)打印內容進行監控,查找 Java 層和 Native 層 Crash 信息。
Java 層 Crash 信息如下:
Native 層 Crash 信息如下:
如果 Crash 的 Trace 信息中包含被測 App 的包名( com.sample.app ),那么這個 Crash 就是被測 App 引起的。
為了測試 App 在各種不同機型上的穩定性,通過工具測試進行數小時測試,發現 Crash 問題。業界主要通過兩種方法進行測試,具體如下:
a、控件遍歷測試
現在業界測試實現方法基本包含以下幾個步驟。
( 1 )獲取當前被測 App 的所有控件方法見下表:
在手機 ( Android )項目中,搭建了一套自動化工具。通過編寫功能測試自動化腳本,在內部云平臺設備上運行。自動化框架如下圖所示:
當你面對下圖這樣的測試結果,如果僅僅通過文字判斷,結果是完全正確的。但是,你能承認結果是正的嗎?很顯然不能。因為背景顏色發白,不符合預期。
問題的關鍵在于: 自動化無法驗證復雜的界面顏色、布局、背景等元素。
如何破解呢 ?從投入產出比來看,采用自動化運行,人工驗證結果(截圖)的半自動化方式。
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
UI 級別的自動化給人的印象一直就是 “ 變化太大,收益太低 ” 。一旦 UI 發生了較大變化,之前的自動化腳本就會有較大改動,投入高,收益低。
怎么破解這個難題?思路如下:
(1)降低建設成本: 筆者以編寫自動化腳本為例,首先,選擇一個低學習成本而且高效率的框架很重要。其次,不斷地累計公共函數,讓腳本開發速度提升數倍。
(2)提高使用頻率: 自動化測試使用頻率越高,收益就越高。同一套自動化腳本,在當前版本每次回歸時都能使用;同樣,經過簡單修改后,在下個版本中也能發揮重要作用。
(3)以不變應萬變: 自動化的模塊還是優先選擇 UI 相對變化較小的模塊,這些是適合自動化的部分,能在未來減少變化帶來的成本。
(4)發展多種經營: 自動化腳本的用途,絕對不只是在功能驗證上這么簡單。其他各種測試都可以用到,例如:覆蓋安裝、性能測試、安裝包驗證 …… 發更多的用途就會有更大的收益。
兼容性測試包括哪些方面?
一、兼容性測試就是測試電腦硬件之間是否有不兼容等問題或軟件問題。
二、兼容性測試側重哪些方面
1、向前兼容和向后兼容。向前兼容是指可以使用軟件的未來版本,向后兼容是指可以使用軟件的以前版本。
2、不同版本之間的兼容。實現測試平臺和應用軟件多個版本之間能夠正常工作。
3、
標準和規范
高級標準是產品應當普遍遵守的。若應用程序聲明與某個平臺兼容,就必須接受關于該平臺的標準和規范。低級標準是對產品開發細節的描述。
4、數據共享兼容。數據共享兼容是指要在應用程序之間共享數據,要求支持并遵守公開的標準,允許用戶與其他軟件無障礙的傳輸數據。
三、兼容性測試平臺推薦
我會推薦優測這個平臺,產品體驗比較好,價格也比較劃算,人員也十分專業,是騰訊旗下的一個品牌。從項目接入到方案制定,再到項目實施,標準化流程,流水線管理,可以做到快速實施,高效率、高質量輸出,
而且優測深耕兼容性測試多年,服務多款億級用戶app,獨立測試團隊,兼容性測試領域經驗豐富,完善的測試流程和解決方案,為企業提供高效的測試服務。
配置和兼容性測試的區別是什么?
打個很通俗的比喻,就像一臺智能電視機:
所謂的配置無疑就是這個電視有多少輸入(HIDI、USB、TV、RGB、藍牙、WIFI、)基礎硬件配置就是電視的主板主芯片(看多少RAM+ROM多少G)、系統、解碼芯片、電源主板、驅動主板、這些都是硬件配置;
所謂兼容性測試就是這個智能電視機上能裝些什么軟件,如果你在電視上裝上微信,你可以發信息給到收件人,但你如果打視頻電話,普通電視上是不內裝攝像頭,所以你不能打視頻電話,這就是兼容性測試一種容易懂的,如果你在智能電視上加裝上一個攝像頭,再裝好驅動之后,就可以打視頻電話,但又有一個問題可能發生,如果你的攝像頭上不帶咪頭,可能視頻通話,聽不到聲音,如果攝像頭帶咪頭,就可能順利進行視頻電話
上述所表現的比方就很容易懂這個意思了。
1、配置測試的主要是保證軟件在其相關的硬件上能夠正常運行
2、兼容性測試主要是測試軟件能否與不同的軟件正常協作
配置有軟件配置文件(驅動),跟硬件配置
手機兼容性測試方案
手機的兼容性測試是提前發現一些可能由于不同系統特性、分辨率等導致的bug,滿足Native App、Hybrid App、Web App(以下簡稱應用)的兼容性測試,兼容性測試需滿足以下幾點:
1.待測應用在不同的操作系統平臺上正常運行,包括待測試項目能在同一操作系統平臺的不同版本上正常運行;
2.待測應用能與相關的其他軟件或系統“協調工作”;
3.待測應用能在指定的硬件環境中正常運行;
4.待測應用能在不同的網絡環境中正常運行。
從上圖可以看出,蘋果、三星、LG、Motorola占了80%以上,因此需要重點選擇這些機型。
機型選擇,除了滿足市場上的主流機型,還要考慮分辨率、屏幕大小、操作系統版本、網絡接入模式等因素,需要考慮的維度如下表。
綜合上述標準,并對同類的機型進行合并,最終選定做兼容性測試的手機列表如下:
也可選擇云端測試平臺,如Testin、TestBird。其中Testin線上有近200種的真機機型,按使用時長付費。每分鐘3元,企業用戶打9折。詳情可看testin官方網址。 www.testin.cn
移動端兼容性測試怎么做?
什么是兼容性測試
兼容性測試是指測試軟件在特定的硬件平臺上、不同的應用軟件之間、不同的操作系統平臺上、不同的網絡等環境中是否能夠很友好的運行的測試。–【百度百科】
為什么要做兼容性測試
目前碎片化十分嚴重,尤其是安卓設備。安卓設備碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能還有定制的系統,都給我們適配帶來了不小的挑戰。除了上面的碎片化,當然還有系統版本碎片化,屏幕碎片化等,為了給用戶更好的用戶體驗,做APP的兼容性測試,還是非常有必要的。
兼容性影響因素
用戶
硬件
軟件
技術
網絡
影響因素大致可以分為以上幾類,我們對所測APP做兼容性測試時,可以從以上方面去考慮。
1、用戶
我們需要依據自身APP用戶群體的特征以及使用習慣,去做相應的兼容。比如用戶群體如果大多是老人的話,可以考慮大字體的適配。比如針對旅游人士,可以考慮過程中網絡的狀況。如果擁有大量海外用戶,可以考慮多幣種、多語言、多度量、時區問題。
2、硬件
設備類型(手機、平板、穿戴式設備)
生產商(安卓手機存在每個廠商的定制化差異)
顯示屏(屏幕大小、分辨率)
特殊硬件功能(NFC、藍牙、相機、定位功能等)
3、軟件
操作系統
瀏覽器內核
伴生應用
4、技術
RN、H5、native
開發語言(oc、swift)
5、網絡
2G、3G、4G、wifi
兼容各種網絡下APP的表現
iOS APP兼容性
屏幕分辨率
屏幕尺寸(含異形)
操作系統版本
Xcode版本
開發語言
第三方庫或SDK
安裝、升級
Android APP兼容性
屏幕分辨率
屏幕尺寸(含異形)
Android版本
系統版本
處理器架構(arm、x86)
開發語言(Java、koltin、混合)
第三方庫或SDK
安裝、升級
H5兼容性
CSS樣式兼容(一些屬性的瀏覽器標示前綴沒有添加,導致默認瀏覽器不認識這個屬性,所以樣式錯亂。有些布局不靈活,樣式邊界處理不好,導致寬窄屏顯示異常)
JS兼容(主要是瀏覽器或者系統版本,新的js api不支持,但是沒有做降級處理)
第三方庫或SDK
框架(react、vue……)
緩存(ssionstorage、localstorage)
哪些場景需要做兼容性驗證
UI顯示
多次快速點擊
拉起虛擬鍵盤擋住輸入區
虛擬物理按鍵收起與顯示
多個輸入框來回切換
控件焦點熱區文體
前后臺、多個應用切換
指紋識別和faceid等
框架升級
網絡
新老版本兼容
第三方依賴庫或者SDK升級
前后端版本兼容
如何做兼容性測試
主要分為內部和外部。內部由測試人員自己覆蓋主要機型。機型選取的原則是,根據自己APP用戶的機型,選取至少top10進行人工兼容性測試。內部還可以進行的就是UI自動化測試。外部可以借助云測平臺,比如testin、testbird等。