兼容性測試爲什麼非做不可?| 對話優測技術團隊

所謂兼容,是指硬件之間、軟件之間、軟硬件之間相互配合的程度。而兼容性測試,是指測試軟件在特定的硬件平臺上、不同的應用軟件之間、不同的操作系統平臺上、不同的網絡環境中是否能正常運行的測試。當下無論是 Android 系統還是 iOS 系統,一直都在不斷更新升級,這無疑給移動終端的兼容性測試帶來極大的挑戰。爲此,InfoQ 專訪大連市世紀鯤鵬科技有限公司兼容性測試技術團隊,深入瞭解優測(Utest)如何實現自動化全面兼容性測試,並將採訪整理如下。 2019 年 5 月,谷歌再次更新 Android 版本佔有情況,從更新數據可以看到,Android 8.0/8.1 和 Android 9.0 的市場份額在持續走高,其原因除了是多款新機上市帶動之外,也跟不少廠商積極跟進了新系統的適配有關。但不可忽視的問題是,Android 系統的碎片化問題依然非常嚴重。

什麼是碎片化?舉個例子,1000 個 Android 手機製造商拿到 Android 內核之後,可以製造出 1000 種搭載不同硬件平臺、界面的 Android 手機,雖然它們仍是基於 Android ,但其實已經不再是原來的 Android 了。經過一系列改造之後,每個手機製造商都擁有一個“獨立”的Android ,這就是碎片化。碎片化會導致的常見問題有:比如,想下載一款應用,但是每次下載都失敗;手機一登錄 App 就死機,只能刪掉;每次進行到遊戲最關鍵的環節就閃退……這些問題歸根結底就是 App 的適配性問題。用戶設備種類那麼多,產品如何匹配?如何保證產品在不同平臺及版本、不同網絡制式、不同分辨率和機型都有很好的用戶體驗呢?

這就是兼容性測試要解決的問題。

移動端 App 兼容性測試爲什麼非做不可?

目前智能手機格局已經是 Android 和 iOS 雙強稱霸,Android 和 iOS 分別有不同的手機設備,其中 Android 因爲開源、廠商多樣、價位、機型豐富等原因,已經成爲份額上的絕對領導者。由於 Android 系統的源碼是開放的,因此只要遵從相應的協議,就可以對源碼進行修改。目前,國內很多手機廠商是基於 Android 源碼改造成自己對外發布的系統,比如小米手機 MIUI 系統、華爲手機 EMUI 系統、OPPO 手機 ColorOS 系統等,雖然只有谷歌 Nexus 和 Pixel 系列纔是原生系統,但是目前國內很少人用。

由於每個廠商都修改過 Android 原生系統源碼,這裏就會出現一個問題,即 Android 碎片化問題。碎片化問題的本質就是不同 Android 系統的應用兼容性不同,哪怕是搭載完全相同的硬件,不同品牌的手機在運行速度、軟件兼容上都有所區別。如果是針對一臺或者幾臺手機進行兼容性測試,還遠遠達不到用戶的要求。

App 兼容性測試一直以來被認爲是一個高成本、耗時低效、耗人力的測試工作,但兼容性測試又是一項必須要進行的測試項目,因爲有不同的機型、系統平臺、分辨率、網絡、廠商、數據兼容以及不同兼容問題場景需要進行覆蓋。現在很多公司其實並沒有專門設置兼容性測試的崗位,大部分是測試人員“兼職”去做兼容性測試。

通過傳統的方法去測試幾款典型設備來保證自家 App 的兼容性是非常困難的,在開展兼容性測試前,最好掌握現網的各種最新設備信息、排行、佔比等情況,對這些設備進行分析及分類,能夠引入各類自動化開展測試,並且將 CI 及自動化測試、異常檢測、提單、覆蓋率等過程相結合,來協同提升測試效率。要開展這些前期的工作,投入會非常巨大,包含信息的獲取、環境的搭建、設備的管理維護、各方面的關聯等,而這些其實又不是對應業務的業務需求,所以性價比最高的方式還是儘量將這些交給有經驗的測試服務提供商來解決。優測目前的支持情況如下圖所示。

優測爲應用、遊戲,H5 混合應用的研發團隊提供產品質量檢測與問題解決服務。不僅在線上平臺提供「全面兼容測試」、「遠程真機租用」等多種質量檢測工具,更爲 VIP 客戶配備專家團隊提供定製化綜合測試解決方案。真機實驗室配備上千款手機,覆蓋市面 98% 主流機型,7*24 小時在線運行,覆蓋億級用戶。

影響兼容性測試的因素有哪些?

提到兼容性測試,很多人常常把它與性能測試和功能測試相混淆。事實上,功能測試只關注 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%左右。

優測如何破解兼容性測試的難點?

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 碎片化嚴重,缺少相關設備;
  • 企業內部人員編制不足,缺少測試資源;
  • 產品質量要求很高,缺少相關人才。

其使用場景主要有以下兩類:

  • 初創團隊

具體表現爲:缺少相關測試機型;缺少專業測試團隊;產品質量有一定要求;節約成本,費用不足。

  • 千萬級用戶量產品團隊

具體表現爲:缺少相關測試機型;需要專業團隊快速響應,提升效率;產品質量要求很高;缺少專業兼容性測試人才。

優測在機型適配測試上的技術亮點:

  1. 專業本地測試團隊,團隊成員均有多年騰訊億級用戶量產品(如 QQ、管家、同步助手、應用寶、空間等)測試的經驗,覆蓋多個產品領域。

  2. 深耕兼容性測試領域 10 年,積累了大量的兼容性測試經驗,可以根據產品功能快速輸出定製化測試解決方案。

  3. 優測有穩定的騰訊供應商渠道,機型採購週期短,更新快,機型覆蓋全面,極大縮短 Bug 生命週期。

  4. 嚴格遵守騰訊產品質量標準,嚴格把控產品質量。

優測如何做定製化 ROM 適配測試? ROM 測試主要解決以下痛點:

  • 產品功能對縱向系統版本的兼容;
  • 產品功能對橫向廠商版本的兼容;
  • 問題發現後,找不到合適的方案解決。

針對這些痛點,優測給出的 ROM 測試方案如下:

  • 分析 Android 各大版本,各大廠商(華爲、小米、OPPO、vivo 等)ROM 之間的差異功能,整合成 ROM 功能點,針對 APP 的具體功能,分析 ROM 對功能的影響範圍;

  • 測試專家根據影響範圍制定相關的測試解決方案;

  • 測試人員反饋問題,終端開發排查問題,輸出解決方案;

  • 測試人員問題迴歸,同步主幹代碼,完成服務閉環。

自動化測試的分類與常見技術難點 自動化測試主要分爲 3 種:

  • 淺度自動化測試:簡單的啓動、安裝、卸載以及輕度遍歷測試,提供截圖和 log 日誌;
  • 深度自動化測試:通過特定算法遍歷 App 70% 以上控件,並提供截圖和 log 日誌;
  • 定製化腳本測試:支持 UI2 的自動化測試框架,提供編寫自動化腳本能力。

標準自動化測試的流程如下圖所示。

自動化測試常見的技術難點與解決思路:

  • 測試框架存在機型適配問題:通過適配大量機型,積累了大量的技術經驗,做到框架兼容性高,穩定性高;
  • APK 安裝過程系統彈窗無法處理:框架測試過程中集成單獨輔助點擊服務,做到手機系統彈窗自動點擊;
  • APK 控件無信息導致無法獲取:集成控件 xpath 屬性、圖像識別,做到無屬性控件的獲取。

各個兼容性測試服務商“虎視眈眈”,優測有何不同?

隨着硬件的發展,新的移動設備可能會加入新的元件,如之前的 GPS、NFC,新發布的 iPhone 內置的全新 A13 仿生芯片等,這對兼容性測試的影響很大。我們知道,智能移動設備由非常多的元器件、傳感器構成,這些部件由很多廠商提供,雖然一些共有的標準是相同的,但內部的函數實現有可能不同,這就會導致在函數調用時產生誤差值,從而提升用戶的體驗。

經驗和數據積累對於兼容性測試至關重要,只有在該領域深耕,並能夠積累大量兼容性測試經驗,才能幫助用戶有針對性地發現及解決該類型的問題。這一點,優測的優勢不言而喻。

最近幾年 DevOps 非常火,毋庸置疑的是, DevOps 已經大大改變了測試人員和開發人員的軟件開發和測試方案。但是 DevOps 在質量保證中的作用也在被討論和質疑。優測如何應對 DevOps 呢?優測技術專家表示,傳統類的兼容性測試一般是在集成測試階段進行,但這會出現一個問題,就是發現問題的時間點滯後,給到測試的時間也很有限。

優測致力於提升整個兼容性測試鏈條的每個環節的效率,可以很方便地接入 App 的 CI,在代碼變更時主動觸發自動化測試,優選對應設備運行指定 case ,同時支持過程中的異常監控。發現問題後,根據代碼和研發對應關係,自動提單給到對應研發人員,提單包含本次構建線、發現問題設備信息、時間、log、截圖等信息,並可以提供對應的設備遠程調試入口,方便開發回溯問題。測試結束後發送對應的測試報表給到相關人員瞭解版本質量,測試完畢後還可以根據代碼覆蓋率數據進行精準判定,這就極大地提升了測試效率,降低了企業成本。成本在企業考量測試方案時佔了很大的比重。由於手機產品及其型號、操作系統版本及其升級補丁、系統及軟件配置的多種多樣,而它們的組合近乎是一個天文數字,要達到測試的全覆蓋是不可能的任務。如何以更低的成本達成更理想的測試效果呢?

優測技術專家表示,做任何測試肯定要講究投入產出比,優測會盡量用性價比最高的方式去開展測試,像手機型號、系統、廠商、軟件配置等都屬於一個數據積累和優選的過程,優測每月都會對現網的智能移動設備做統計分析,分類各維度的 TOP 排行榜,如 SDK 分佈排行、分辨率排行、手機品牌排行、各設備用戶量排行、各廠商型號用戶量變化趨勢等信息;同時,根據歷史 Bug 數據,優測會智能分析出不同類 App 可能在哪些設備上更容易產生問題;將這些設備篩選出後可以通過自動化的方式同時在大批量設備上運行,從而在短時間內做到測試收益最大化。優測在做兼容性測試服務的過程中也遇到過困難。技術專家提到,優測曾爲某一世界 TOP500 強企業做兼容性測試,在現場解決問題時,出現了一個情況,就是技術團隊需要攜帶或來回郵寄大量的手機,這大大增加了時間的成本,也影響了解決問題的速度。怎麼辦?優測技術團隊痛定思痛,開發了全國首個遠程設備分享,實現雲真機遠程調試。現在優測的測試服務具有設備遠程分享和遠程調試的功能,能夠在跨地域、甚至跨國籍團隊之間,瞬間使用手機進行遠程驗證與調試,這大大節省了時間成本,加速了問題解決的及時性,並且發版不受影響,得到用戶的高度好評。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章