大家都知道,兼容性問題經常在移動端測試過程中發現,每當IOS和Android操作系統升級新的版本,尤其是大版本的升級時,總會給用戶帶來很多新的特性,由于有了這些新的特性,現有app的功能、樣式,甚至app本身都有可能發生變化。
作為測試人員,顯然不能等到新的操作系統發布之后才開始了解這些新引入的特性,最好在新操作系統的測試階段就了解更多的新的操作系統的特性。
下面先看下Android升級系統從4.1到7.0中比較典型的幾個版本,引入的新特性。
一、Android4.1—API等級16
1、增強了通知欄
在Android 4.1中,通知欄框架有了翻天覆地的變化,總體來說就是更大、更豐富、直接操作。
開發者可以在新版系統中使用三種不同的通知樣式,最高可以達到256dp,用戶可以直接查看圖片、信息、郵件、提醒等內容,可以進行一鍵回撥、一鍵分享、一鍵回復等操作。
對于這個改動,測試人員在測試App的時候,就需要覆蓋到在通知欄進行操作的場景。
2、桌面小工具Widget可以自動調整大小
如果你測試的app有創建桌面小工具的功能,此處就應該測試不同大小的app Widget。
3、增強的輔助功能
對于這些添加的輔助功能,測試人員需要測試app是否支持這些功能來方便殘障人士使用app。
4、擴展了語言和輸入法的支持
對于支持多語言和地區的app,比如微信,需要考慮是否要適配更多的用戶人群;
對于那些不支持多語言和地區的app,則需要考慮是否限制開始支持多語言和地區了;
而測試人員則根據這些變化來進行相關測試。
5、更好的支持HTML5
Android瀏覽器和WebViews將提供更好的HTML5視頻支持,滾動和縮放性能得到加強,并減少了內存占用,HTML5/CSS3/Canvas動畫性能、文本輸入、JavaScript引擎(V8)性能都得到了加強。
這從功能到性能都是一大升級。而在測試app時,測試人員也需要對使用WebViews的功能進行重點測試。
二、Android4.4—API等級19
1、新的UI設計
之前藍綠色的配色設計被更換成了白/灰色,更加簡約,另外圖標風格也進一步扁平化,還內置了一些新的動畫,整體來說界面更漂亮、占用資源更少。另外,還加入了半透明的界面樣式,以確保狀態欄和導航欄在應用中發揮更好的效果。
對于運行在這個系統上的app,用戶自然也其能用和操作系統一致的風格,比如更加扁平化等。
2、App支持全屏模式
可以讓用戶不受外界干擾,更加關注app,在測試中也需要測試app對于全屏模式的支持。
3、支持Emoji鍵盤
終于,Android也能夠支持豐富有趣的Emoji輸入了,可以讓你的郵件或是信息更加個性化。測試的時候各種輸入框應該增加此類型輸入測試。
4、提供儲存訪問框架Storage access framework
Android4.4提供的儲存訪問框架Storage access framework,可以使app從本地或者dropbox和box這樣的第三方存儲中提取文件,大大擴展了app中使用數據的范圍。但是對于測試而言,也加大了對不同數據源測試的壓力。
三、Android5.0—API等級21
1、全新的UI設計Material Design
全新的Material Design設計語言。新系統的界面變得更加扁平化,最重要的是,這樣的設計語言會在所有的谷歌產品上采用。
Material Design不僅改變了傳統的Android顯示樣式,也改變了很多app用戶交互的方式。
對于這些改動,測試人員需要在Android5.0成為主流系統之前進行,提前進行適配和測試。
2、增強的通知系統
更便捷和清晰的下拉通知欄。通知欄中的提示會以更清晰的頁卡的形式出現。
同時鎖屏狀態下,用戶能像ios一樣看到app的通知,進行快捷操作,如快速回復短信、回撥電話等。
這些改動相對于之前Android版本上使用的通知方式有很大的改變,所以為了讓app適應這些改變,測試人員需要提前做出測試和開發的改變。
3、只保留了ART運行環境
ART作為默認選項。很簡單,ART取代Dalvik成為Android系統主要的應用運行環境,運行速度可比以往快兩倍,且支持64位。
對于還在使用Dalvik的app,測試人員需要對ART運行環境進行適配和測試。另外對于只使用ART的app,也要去適配低版本的Android操作系統。
4、新系統將用更多的操作將用滑動來取代之前的點擊
新系統將用更多的操作將用滑動來取代之前的點擊。那在app應用內部也要支持滑動操作,需要增加此種操作的測試場景。
四、Android6.0—API等級23
1、大量漂亮流暢的動畫
安卓6.0系統增加了大量漂亮的過度動畫,可以從視覺上減少卡頓感,給用戶帶來流暢的體驗。說到過渡動畫,以前可是蘋果手機的拿手好戲,現在安卓大有趕超iOS的趨勢。
2、 指紋識別
說到指紋識別,很多用戶都會覺得現在的中高端安卓手機都支持,但事實上這些都是各個廠商自行開發的并沒有系統底層的支持。Android 6.0則在系統層面加入指紋識別,能提供原生指紋識別API,這不但降低了廠商開發指紋識別模塊的成本,最重要的是原生指紋識別將會大大提升安卓手機的指紋識別支付安全性。
在測試app的指紋識別功能時,需要區分Android6.0以下系統和Android6.0以上系統。
3、App Links
通過App Links功能,Android平臺能夠向網絡服務器提出申請,自主識別鏈接內容。直接跳轉到App客戶端中,改善用戶體驗,有利于讓用戶在體驗更完善的App客戶端完成更多操作。
五、Android7.0—API等級24
1、通知增強功能
在 Android N 中,我們重新設計了通知,使其更易于使用并且速度更快。 部分變更包括:
模板更新:我們正在更新通知模板,新強調了英雄形象和化身。 開發者將能夠充分利用新模板,只需進行少量的代碼調整。
消息樣式自定義:您可以自定義更多與您的使用 MessageStyle 類的通知相關的用戶界面標簽。 您可以配置消息、會話標題和內容視圖。
捆綁通知:系統可以將消息組合在一起(例如,按消息主題)并顯示組。 用戶可以適當地進行 Dismiss 或 Archive 等操作。 如果您已實現 Android Wear 的通知,那么您已經很熟悉此模型。
直接回復:對于實時通信應用,Android 系統支持內聯回復,以便用戶可以直接在通知界面中快速回復短信。
自定義視圖:兩個新的 API 讓您在通知中使用自定義視圖時可以充分利用系統裝飾元素,如通知標題和操作。
對于這些改動,測試人員在測試App的時候,就需要覆蓋到在通知欄進行操作的場景。
2、快速的應用安裝路徑
Android 運行組件的 JIT 編譯器最實際的好處之一是應用安裝和系統更新的速度。即使在Android 6.0 中需要幾分鐘進行優化和安裝的大型應用,現在只需幾秒鐘就可以完成安裝。系統更新也變得更快,因為省去了優化步驟。
3、后臺優化
Project Svelte在持續改善,以最大程度減少生態系統中一系列 Android 設備中系統和應用使用的 RAM。在 Android N 中,Project Svelte 注重優化在后臺中運行應用的方式。
Android N 刪除了三項隱式廣播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO),以幫助優化內存使用和電量消耗。此項變更很有必要,因為隱式廣播會在后臺頻繁啟動已注冊偵聽這些廣播的應用,刪除這些廣播可以顯著提升設備性能和用戶體驗。
總結:測試人員在了解到操作系統的特性,針對新操作系統版本設計和開發新版本的app時,也需要考慮這些特性對于測試app的影響,在新操作系統初期版本上進行適應性測試,并同時對當前的操作系統上對當前版本的APP進行回歸測試。
本篇文章只寫了部分特性,如果想了解每個版本詳細的特性,可以去維基百科查看:https://en.wikipedia.org/wiki/Android_version_history
[參考資料] 《移動APP測試的22條軍規》 黃勇 著