作者 | 阿里巴巴文娛技術 劉麗琴
響應式布局是在屏幕尺寸發生變化時,APP的頁面、組件按照規則進行動態自適應,實現一套代碼兼容多尺寸終端設備。響應式技術應用在多端上減少了開發人力投入,但是對於測試來說需要測試的範圍相對擴大,要保障多端、多尺寸的APP質量,下面介紹優酷在響應式測試過程中沉澱的測試能力及方法。
測試面臨的挑戰
移動端主要測試類型包括功能測試、性能測試、穩定性測試、兼容性適配測試等,針對響應式測試主要難點在兼容性測試,原因是兼容性測試範圍擴大,測試效率面臨較大挑戰。具體表現在以下幾方面:
1)端類型增加,之前關注Phone端即可,現在要關注Phone、Pad、摺疊屏、車機大屏
2)組件樣式繁多,Phone端組件樣式顯示一種狀態,現在不同屏幕設備、不同狀態下組件呈現樣式布局會有相應不同
3)系統交互多,包括分屏、浮窗、平行視界、系統轉屏設置與響應式交互
4)測試對象多,需要考慮所有的頁面、組件、彈窗功能遍歷
5)多業務場景交互,比如全屏播放
技術實現分析
針對以上挑戰,測試團隊對優酷全端響應式適配進行深入分析,總結出相應的測試點。主要從以下幾方面進行分析:
響應式業務流程
如上圖顯示,響應式測試分為UI測試和數據處理邏輯測試兩部分:
1、UI顯示由響應式SDK完成
響應式SDK提供了在不同尺寸設備上通用的響應式能力,在屏幕尺寸發生變化時,頁面樣式、布局的UI顯示也會發生相應的變化,這塊主要關注兼容性適配測試。
2、數據處理邏輯由上層業務完成
數據處理主要進行了數據合併、數據過濾、數據映射及數據補全的邏輯處理,重點關注響應式和非響應式下數據處理邏輯的正確性。這塊就需要構造各種不同數據進行邏輯覆蓋驗證。
除此之外,針對業界廠商目前支持的屏幕尺寸變化能力,需要考慮到不同能力下的交互測試:
1、系統支持旋轉屏幕設置;
2、Android Pad支持分屏,部分華為Pad支持平行視界能力;
3、iPad支持浮窗、分屏能力。
測什麼?
由以上的分析結果不難得出測試範圍以及主要的測試點,另外一個重要部分,是需要對響應式開關進行測試,已確定及時止損的能力。
測試範圍
1)分層:SDK測試、業務層測試;
2)分端:Phone、Pad、摺疊屏、車機大屏;
3)分平臺:Android、iOS;
4)分能力:響應式開/關;
5)分機型:iPad分屏、浮窗能力,見下表:
設備 | 浮窗 | 分屏 |
iPad mini 2 | ✅ | |
iPad mini 3 | ✅ | |
iPad mini 4 | ✅ | ✅ |
iPad Air | ✅ | |
iPad Air 2 | ✅ | ✅ |
iPad Pro | ✅ | ✅ |
主要測試點
怎麼測?
通過對響應式的測試分析,知道了測哪些,下面從功能測試、兼容性測試等方面來闡述怎麼測。
1、功能測試
功能測試主要驗證數據處理邏輯在大屏端的正確性。數據處理邏輯主要對組件進行了數據合併、數據映射、數據過濾及補全,針對數據的構造主要通過mock的能力實現,確認大屏端邏輯處理正確。
同時,數據處理邏輯不能影響Phone端的組件頁面,這部分測試主要進行回歸測試,並且回歸量相對較大,為了提高測試效率優酷打造了組件自動化測試方案。
2、組件自動化測試
該測試藉助圖像識別,能夠很好的規避技術改造的影響,穩定性較好。從以上5個方面解決問題,通過設計測試場景,將線上引流數據清洗後自動構造所需組件數據,自動應用mock數據,基於魔鏡算法服務進行相似度+配置化的UI對比。
本次組件測試,覆蓋首頁/頻道頁35個組件,正常、異常mock文件500+,dailybuild高頻測試,在響應式項目中很好的保證了組件測試的力度和覆蓋度。
3、兼容性測試
響應式測試難點在於兼容性測試,這部分要在多端、多系統、多尺寸上驗證UI顯示,測試工作量較大;針對兼容性測試優酷推出了優化後的兼容性測試方案,包括機型選擇和測試平臺:
機型選擇
測試平臺
為了解決兼容性測試成本問題,針對兼容性測試做了以下改進:
1)通用腳本降低腳本編寫成本、提高執行穩定性、快速開展業務測試
通用腳本基於scheme跳轉能力,解決了業務入口觸達穩定性問題;提供自動滾屏和基於元素查找的點擊功能,還包含通用彈窗處理以及登錄功能。
2)長截圖能力解決了不同解析度以及不同物理尺寸下圖片驗證的難點
長截圖實現方式有兩種,一種滾屏過程中截長圖;一種滾屏截圖,最後拼接成長截圖能力。
3)圖像驗證解決人工檢測問題
通過圖像識別算法,智能篩選出可疑圖片,大大減少了人工檢測圖片數量。
4、其他測試
1)穩定性測試
大屏端穩定性測試是很有必要的,特別是iPad端低端設備居多並且內存較Phone端也相對低,所以需要考慮這些設備上的穩定性問題。
2)性能測試
響應式方案會顯示更多的圖片和數據,其數據解析和圖片渲染過程會對APP啟動和流暢度,內存產生明顯影響。
3)數據測試
第一,響應式旋轉屏幕時,組件行數列數會發生變化,此時要保證不同數據處理下,埋點數據下發正常:
第二,響應式映射處理的組件埋點數據下發與映射前的組件埋點一致。
總結
針對響應式測試在功能測試、兼容性測試方面做了大量的研究,沉澱了組件測試方案和兼容性測試方案,即保障了響應式高質量上線,又提高了測試效率。
後續的響應式測試如何高效支持持續迭代對測試來說是一個新的挑戰,主要在兩方面:
一是,如何保證開發新的組件支持響應式
建立響應式編碼規範,對代碼進行靜態掃描,對不符合的規範進行告警
二是,如何高效保障sdk的增量修改的質量
響應式sdk開源後,將脫離APP獨立存在,針對sdk單獨的測試方案需要考慮開展單元測試和覆蓋率分析進行保障sdk質量。
點分享