1. 程式人生 > >詳解iOS和Android在測試上的不同

詳解iOS和Android在測試上的不同

只有瞭解iOS和Android作業系統的不同設計理念,才能更好地設計測試用例,更全面地測試App。

Android的App測試裝置的碎片化

對於iOS作業系統,App只需要支援有限的裝置和解析度,不需要像Android測試App時操心裝置的碎片化對App的影響。Google公司採用的是開放的策略,所以很多廠商都會對Android進行訂製,使得采用Android作業系統的裝置鋪天蓋地,Android的碎片化也很嚴重。

Android App更容易受到惡意軟體的攻擊

開放策略下導致App的apk安裝檔案被破解的機率比iOS要高一些,所以更需要確保App的安全。

iOS和Android對於App間通訊的處理方式不一樣

iOS作業系統對於App的執行機制做出了限制,絕大多數情況下App進入後臺後會馬上進入suspend或terminate狀態,也就是說不能執行程式碼;iOS中也沒有類似Android中Service的概念,但存在某些例外。

某些重要的任務,例如儲存使用者資料、網路下載等,可以申請一小段限定時間的後臺執行時間,長度大概在600s左右,所以在短時間段內能進行的操作非常有限。

某些特點型別的App可以獲得沒有時間限制的後臺執行,包括音樂播放類,音訊錄製類,定位/導航類,VoIP類,下載類,定期更新類。

Apple公司提供了iOS內的App呼叫協議URLSchema來處理。

Android和iOS就是否支援擴充套件儲存有所不同

iOS和Android對Widget的實現和使用不同

測試Android App對於Dalvik和ART執行環境(RunTime)的相容性

測試iOS App在特定設定下的行為

對於iOS App而言,在iOS 8出現之前Apple公司對於產品的升級,都會考慮到不同裝置上解析度的不一致,但是隨著iOS 8和iPhone 6以及6Plus的推出,iPhone 6以及6Plus上具備的放大顯示的功能會讓App在標準顯示和放大顯示的模式下,顯示效果有所不同,所以測試人員需要對這兩種模式下的顯示效果進行測試。

iOS作業系統的記憶體管理機制以及對App使用記憶體的限制是很不透明的

由於iOS上並沒有真正的多工,也沒有swap機制,所以iOS作業系統在記憶體不足時會先對App進行記憶體佔用預警,如果App持續消耗記憶體直到iOS作業系統允許的最大值,iOS會直接“殺掉”App程序。

測試人員可以使用App所支援的iOS裝置總記憶體最小的裝置,使用Xcode來檢查App對記憶體的使用是否超出了限制,儘量減少App對記憶體的不必要使用,順便檢查App是否有記憶體洩漏。

Android作業系統的記憶體管理機制更加透明,對App使用記憶體的限制也更加靈活

在不同Android裝置上,每個App可以使用的記憶體量是不同的,測試人員可以通過開啟/system/build.prop檔案來檢視App最大可用Dalvik記憶體大小是多少。