2019 年 5 月,谷歌再次更新 Android 版本佔有狀況,從更新數據能夠看到,Android 8.0/8.1 和 Android 9.0 的市場份額在持續走高,其緣由除了是多款新機上市帶動以外,也跟很多廠商積極跟進了新系統的適配有關。但不可忽視的問題是,Android 系統的碎片化問題依然很是嚴重。算法
什麼是碎片化?舉個例子,1000 個 Android 手機制造商拿到 Android 內核以後,能夠製造出 1000 種搭載不一樣硬件平臺、界面的 Android 手機,雖然它們還是基於 Android ,但其實已經再也不是原來的 Android 了。通過一系列改造以後,每一個手機制造商都擁有一個「獨立」的Android ,這就是碎片化。碎片化會致使的常見問題有:好比,想下載一款應用,可是每次下載都失敗;手機一登陸 App 就死機,只能刪掉;每次進行到遊戲最關鍵的環節就閃退……這些問題歸根結底就是 App 的適配性問題。用戶設備種類那麼多,產品如何匹配?如何保證產品在不一樣平臺及版本、不一樣網絡制式、不一樣分辨率和機型都有很好的用戶體驗呢?網絡
這就是兼容性測試要解決的問題。app
1移動端 App 兼容性測試爲何非作不可?框架
目前智能手機格局已是 Android 和 iOS 雙強稱霸,Android 和 iOS 分別有不一樣的手機設備,其中 Android 由於開源、廠商多樣、價位、機型豐富等緣由,已經成爲份額上的絕對領導者。因爲 Android 系統的源碼是開放的,所以只要聽從相應的協議,就能夠對源碼進行修改。目前,國內不少手機廠商是基於 Android 源碼改形成本身對外發布的系統,好比小米手機 MIUI 系統、華爲手機 EMUI 系統、OPPO 手機 ColorOS 系統等,雖然只有谷歌 Nexus 和 Pixel 系列纔是原生系統,可是目前國內不多人用。運維
因爲每一個廠商都修改過 Android 原生系統源碼,這裏就會出現一個問題,即 Android 碎片化問題。碎片化問題的本質就是不一樣 Android 系統的應用兼容性不一樣,哪怕是搭載徹底相同的硬件,不一樣品牌的手機在運行速度、軟件兼容上都有所區別。若是是針對一臺或者幾臺手機進行兼容性測試,還遠遠達不到用戶的要求。ide
App 兼容性測試一直以來被認爲是一個高成本、耗時低效、耗人力的測試工做,但兼容性測試又是一項必需要進行的測試項目,由於有不一樣的機型、系統平臺、分辨率、網絡、廠商、數據兼容以及不一樣兼容問題場景須要進行覆蓋。如今不少公司其實並無專門設置兼容性測試的崗位,大部分是測試人員「兼職」去作兼容性測試。函數
經過傳統的方法去測試幾款典型設備來保證自家 App 的兼容性是很是困難的,在開展兼容性測試前,最好掌握現網的各類最新設備信息、排行、佔比等狀況,對這些設備進行分析及分類,可以引入各種自動化開展測試,而且將 CI 及自動化測試、異常檢測、提單、覆蓋率等過程相結合,來協同提高測試效率。要開展這些前期的工做,投入會很是巨大,包含信息的獲取、環境的搭建、設備的管理維護、各方面的關聯等,而這些其實又不是對應業務的業務需求,因此性價比最高的方式仍是儘可能將這些交給有經驗的測試服務提供商來解決。優測目前的支持狀況以下圖所示。工具
優測爲應用、遊戲,H5 混合應用的研發團隊提供產品質量檢測與問題解決服務。不只在線上平臺提供「全面兼容測試」、「遠程真機租用」等多種質量檢測工具,更爲 VIP 客戶配備專家團隊提供定製化綜合測試解決方案。真機實驗室配備上千款手機,覆蓋市面 98% 主流機型,7*24 小時在線運行,覆蓋億級用戶。性能
2單元測試
影響兼容性測試的因素有哪些?提到兼容性測試,不少人經常把它與性能測試和功能測試相混淆。事實上,功能測試只關注 App 自己的邏輯功能,性能測試關注 App 自己的性能指標(如 CPU、內存、FPS 等),而兼容性測試側重在軟件品質特性的可移植性,其主要包括:
適應性:軟件產品無需做相應變更就能適應不一樣環境的能力。
易安裝性:儘量少地提供選擇,方便用戶直接安裝。
共存性:軟件產品在公共環境中與其餘軟件分享公共資源的能力。
易替換性:軟件產品在一樣的環境下,替代另外一個相同用途的軟件產品的能力。
可移植性的依從性:遵循相關的標準。
有哪些因素會影響兼容性?
App 端的編碼:例如,targetSDK28 增長了一個 API,在 APP 編寫的時候開發人員沒有考慮到 targetSDK28 如下的 Android 版本沒有該 API 的場景,會引起 Crash 。
手機 / Pad 環境:兼容性最最重要的就是考慮軟件產品適應不一樣環境的能力。而手機 /pad 就 APP 所接觸的環境,手機 /pad 環境的類型越多,出現問題的概率就越高,質量風險就越大。
ROM 版本:不一樣的 ROM 版本都會有不用的功能 Android 版本從 4.X~9.X,定製的 ROM 有華爲、OPPO、VIVO、三星、魅族等多個廠商,在功能上都有不一樣的差別。
手機硬件:因廠商、系列、型號不一樣,其硬件更是良莠不齊。
用戶行爲:App 的不一樣致使用戶行爲習慣的不一樣,這也形成了大量 Bug 的產生。優測多年來一直與手機 QQ、管家、音樂等不一樣領域的億萬級用戶的 App 合做,掌握了豐富的用戶行爲的經驗,可以爲 App 兼容性測試提供精準的設計方案,保障強有力的數據技術支持。
當下,移動終端廠商衆多,兼容性測試要覆蓋的品類更是數不勝數,要作到全部機型的全覆蓋兼容性測試既不經濟,也不可能。針對這一痛點,優測的技術專家表示,世間任何事物咱們都沒法窮盡,兼容性測試亦是如此。優測具備專家級的兼容性測試總體方案,其中的機型選取方案,經過 TOP 用戶數排行選取(同類型合併)、SDK 覆蓋(大版本特性(向下兼容))、廠商覆蓋(整合系列,如華爲 Mate 系列、運營商)、重點機型覆蓋(分辨率使用人數 TOP 排行)、分辨率覆蓋(以往問題集中機型)。經過優測的機型選取方案整合機型屬性信息,在保證質量的狀況下,能下降適配機型數量的 50%左右。
3優測如何破解兼容性測試的難點?App 兼容性測試的重要性不言而喻,但問題是,企業在作 App 兼容性測試會面臨一些難點,好比兼容性測試經驗不足、測試人力不足、缺乏測試設備。
那麼優測是如何解決這些難點的?
首先在設備方面:優測幾乎涵蓋了市面上全部的 Android 和 iOS 設備,包括手機和 Pad;這些設備上能夠覆蓋全部 App 端產品須要的機型,並且還在持續更新,幫助企業有效下降採購成本。從設備維度分類的角度,優測能夠獲取來自騰訊燈塔、歷史經驗分析、以及數百個行業現象級 App 的機型數據,發現問題命中率高,定位精準。
其次在人員方面:優測擁有百餘人的測試團隊,核心骨幹均具備 10 年以上的測試行業經驗,不管是從項目管理人員、自動化框架人員、自動化服務開發人員,仍是測試方案設計人員、測試用例編寫人員、測試執行人員等,都有很是完整的人員模型,幫助企業提供資深的團隊服務。
在機房方面:優測可實現千款真機機房管理,24 小時運維服務,提供遠程的真機使用,遠程的機房輸出能力。
能力方面:優測具有成熟並完備的測試體系,可提供多種測試方案,具有自動化、遠程真機、設備分享,設備遠程調度等能力。
最後是經驗優點:優測多年來已經服務上百個 App,包括億級用戶量級的產品(如 QQ、管家、同步助手、應用寶、空間等),具有極爲豐富的兼容性測試經驗,在實踐過程當中積累了大量的行業數據指標和各種不一樣領域的 App 數據。
兼容性測試的分類與權衡
優測的兼容性測試服務主要分爲三類:機型適配測試、ROM 適配測試、自動化測試。機型適配測試能夠理解爲對產品功能邏輯的兼容性測試,整個優測技術團隊在實踐中,會分析產品須要適配的功能點,經過機型來智能選取獲取須要適配的測試機型,配合測試專家針對產品功能點制定的測試方案進行測試,達到全面覆蓋功能、深刻挖掘 Bug 的效果。
ROM 適配測試是針對手機廠商或谷歌系統差別特性可能對產品形成影響的功能進行測試,會有專項開發調研系統的變動特性,分析功能影響範圍,測試專家輸出測試方案對相關功能進行測試,快速發現問題,保證產品體驗。
自動化測試的用途是把以人爲驅動的手動測試轉化爲機器自動執行測試的一種方式 ,用於快速驗證產品基礎功能,包括安裝、啓動、卸載、控件遍歷等,發現產品是否存在嚴重的 crash 問題。
提到自動化測試,有些廠商經過機器人來模擬人類操做來實現自動化兼容性測試。根據測試金字塔模型可知,雖然經過 UI 測試的成本更高,反饋更慢,但測試結果的置信度也更高。那麼優測是如何作到自動化測試呢?
優測技術專家表示, 通常來講,經過外一層的機器人模擬真實操做都是用來作一些有針對性的測試,好比規則統一的重複操做、一些暴力測試等,其優勢是能夠跨平臺,只要錄製規則、點擊座標就能夠適配一系列設備;但這樣的作法也有其劣勢,如機器人自身的斷定偏差致使的座標偏移等問題。
優測目前採用的仍是基於軟件接口層面的模擬操做,目前這種方式已經徹底知足現有的自動化需求。而 UI 類自動化測試的成本確實不小,但考慮到其能夠徹底反映真實操做,權衡來看 UI 測試還是不可或缺的。優測經過 case 管理、case 分層分級、有效的 case 封裝,以及智能遍歷及 AI 接入等一系列操做提升 ROI 。另外,對於企業而言,能夠儘可能多地開展單元測試、接口測試等對環境因素要求小的測試,從而提高本身 App 的質量。
機型適配測試解決的痛點和使用場景
機型適配測試解決的主要痛點是:
Andriod 碎片化嚴重,缺乏相關設備;
企業內部人員編制不足,缺乏測試資源;
產品質量要求很高,缺乏相關人才。
其使用場景主要有如下兩類:
初創團隊
具體表現爲:缺乏相關測試機型;缺乏專業測試團隊;產品質量有必定要求;節約成本,費用不足。
千萬級用戶量產品團隊
具體表現爲:缺乏相關測試機型;須要專業團隊快速響應,提高效率;產品質量要求很高;缺乏專業兼容性測試人才。 優測在機型適配測試上的技術亮點
專業本地測試團隊,團隊成員均有多年騰訊億級用戶量產品(如 QQ、管家、同步助手、應用寶、空間等)測試的經驗,覆蓋多個產品領域。
深耕兼容性測試領域 10 年,積累了大量的兼容性測試經驗,能夠根據產品功能快速輸出定製化測試解決方案。
優測有穩定的騰訊供應商渠道,機型採購週期短,更新快,機型覆蓋全面,極大縮短 Bug 生命週期。
嚴格遵照騰訊產品質量標準,嚴格把控產品質量。
優測如何作定製化 ROM 適配測試?
ROM 測試主要解決如下痛點:
產品功能對縱向系統版本的兼容;
產品功能對橫向廠商版本的兼容;
針對這些痛點,優測給出的 ROM 測試方案以下:
分析 Android 各大版本,各大廠商(華爲、小米、OPPO、vivo 等)ROM 之間的差別功能,整合成 ROM 功能點,針對 APP 的具體功能,分析 ROM 對功能的影響範圍;
測試專家根據影響範圍制定相關的測試解決方案;
測試人員反饋問題,終端開發排查問題,輸出解決方案;
測試人員問題迴歸,同步主幹代碼,完成服務閉環。
自動化測試的分類與常見技術難點
自動化測試主要分爲 3 種:
淺度自動化測試:簡單的啓動、安裝、卸載以及輕度遍歷測試,提供截圖和 log 日誌;
深度自動化測試:經過特定算法遍歷 App 70% 以上控件,並提供截圖和 log 日誌;
定製化腳本測試:支持 UI2 的自動化測試框架,提供編寫自動化腳本能力。
標準自動化測試的流程以下圖所示。
自動化測試常見的技術難點與解決思路:
測試框架存在機型適配問題:經過適配大量機型,積累了大量的技術經驗,作到框架兼容性高,穩定性高;
APK 安裝過程系統彈窗沒法處理:框架測試過程當中集成單獨輔助點擊服務,作到手機系統彈窗自動點擊;
APK 控件無信息致使沒法獲取:集成控件 xpath 屬性、圖像識別,作到無屬性控件的獲取。
4各個兼容性測試服務商「虎視眈眈」,優測有何不一樣?
隨着硬件的發展,新的移動設備可能會加入新的元件,如以前的 GPS、NFC,新發布的 iPhone 內置的全新 A13 仿生芯片等,這對兼容性測試的影響很大。咱們知道,智能移動設備由很是多的元器件、傳感器構成,這些部件由不少廠商提供,雖然一些共有的標準是相同的,但內部的函數實現有可能不一樣,這就會致使在函數調用時產生偏差值,從而提高用戶的體驗。
經驗和數據積累對於兼容性測試相當重要,只有在該領域深耕,並可以積累大量兼容性測試經驗,才能幫助用戶有針對性地發現及解決該類型的問題。這一點,優測的優點不言而喻。
最近幾年 DevOps 很是火,毋庸置疑的是, DevOps 已經大大改變了測試人員和開發人員的軟件開發和測試方案。可是 DevOps 在質量保證中的做用也在被討論和質疑。優測如何應對 DevOps 呢?優測技術專家表示,傳統類的兼容性測試通常是在集成測試階段進行,但這會出現一個問題,就是發現問題的時間點滯後,給到測試的時間也頗有限。
優測致力於提高整個兼容性測試鏈條的每一個環節的效率,能夠很方便地接入 App 的 CI,在代碼變動時主動觸發自動化測試,優選對應設備運行指定 case ,同時支持過程當中的異常監控。發現問題後,根據代碼和研發對應關係,自動提單給到對應研發人員,提單包含本次構建線、發現問題設備信息、時間、log、截圖等信息,並能夠提供對應的設備遠程調試入口,方便開發回溯問題。測試結束後發送對應的測試報表給到相關人員瞭解版本質量,測試完畢後還能夠根據代碼覆蓋率數據進行精準斷定,這就極大地提高了測試效率,下降了企業成本。成本在企業考量測試方案時佔了很大的比重。因爲手機產品及其型號、操做系統版本及其升級補丁、系統及軟件配置的多種多樣,而它們的組合近乎是一個天文數字,要達到測試的全覆蓋是不可能的任務。如何以更低的成本達成更理想的測試效果呢?優測技術專家表示,作任何測試確定要講究投入產出比,優測會盡可能用性價比最高的方式去開展測試,像手機型號、系統、廠商、軟件配置等都屬於一個數據積累和優選的過程,優測每個月都會對現網的智能移動設備作統計分析,分類各維度的 TOP 排行榜,如 SDK 分佈排行、分辨率排行、手機品牌排行、各設備用戶量排行、各廠商型號用戶量變化趨勢等信息;同時,根據歷史 Bug 數據,優測會智能分析出不一樣類 App 可能在哪些設備上更容易產生問題;將這些設備篩選出後能夠經過自動化的方式同時在大批量設備上運行,從而在短期內作到測試收益最大化。
優測在作兼容性測試服務的過程當中也遇到過困難。技術專家提到,優測曾爲某一世界 TOP500 強企業作兼容性測試,在現場解決問題時,出現了一個狀況,就是技術團隊須要攜帶或來回郵寄大量的手機,這大大增長了時間的成本,也影響了解決問題的速度。怎麼辦?優測技術團隊痛定思痛,開發了全國首個遠程設備分享,實現雲真機遠程調試。如今優測的測試服務具備設備遠程分享和遠程調試的功能,可以在跨地域、甚至跨國籍團隊之間,瞬間使用手機進行遠程驗證與調試,這大大節省了時間成本,加速了問題解決的及時性,而且發版不受影響,獲得用戶的高度好評。