【移動測試】你的測試用例中,是否包含App前後臺切換

App前後臺切換是我們平時常用的一個操作,比如:按手機的home鍵將應用置於後臺、直接按手機電源鍵關閉屏幕或者通過最近打開的應用列表切換應用等,由此,我們可以得出結論:當app置於前臺時,它的頁面對我們是可見的;當app置於後臺時,它的頁面對我們是不可見的。

無論對於Android還是IOS,app前後臺切換的流程都很長,因爲牽扯到應用生命週期的管理,因此在測試過程中,可以幫我們發現一些意外的驚喜。不知道在你的App測試用例中是否包含前後臺切換?如果沒有,那從現在開始,你一定要將它補充到測試用例中。

這篇文章,會帶着大家瞭解Android和IOS在前後臺切換過程中,都經歷了什麼。這樣當你在測試過程中,碰到相關問題時,也能有章可循。

Android前後臺切換原理

早期的Android只有Activity用來展示頁面元素,直到2011年Android3.0推出了Fragment的概念,不過Fragment並沒有立即被用起來,大部分的開發者還是用Activity寫Android頁面,個人感覺是到Android4.x之後,Fragment才更多的運用到工作中。不過Fragment並不能單獨的存在,其必須依賴在某一個Activity上,所以到後來GitHub上出現了好多Activity Fragment的基礎框架,其核心思想是:一個BaseActivity 多個Fragment。BaseActivity主要用於管理Fragment的生命週期,而Fragment用於實現不同的頁面。

要理解Android前後臺切換的原理,其實就需要理解Activity Fragment的生命週期及其對應的方法,我這裏根據Android官方文檔Activity和Fragment的生命週期流程圖,將前後臺切換相關方法整合到一張圖中,方便大家理解:

WX20200114-130009@2x.png

整理完之後發現方法流程還是很多的,但是大家肯定會有個直觀感受,按一次home鍵,App執行了很多回調方法,並且方法有被重複調用的可能(後面我們再統一整理測試思路)。

IOS前後臺切換原理

ios前後臺切換,方法相對會少一些,但是思路和Android是類似的。我個人對IOS不是特別熟悉,所以只能從網上查了幾篇寫ios狀態切換的文章,下面的圖是我將它們整合之後,整理出來的:

WX20200114-132020@2x.png

前後臺切換思路整理

對於沒有任何移動端開發經驗的人來說,看了上面Android和IOS的流程圖,我猜測應該也不大理解其中的原理。所以我根據自己的經驗,幫大家整理一些前後臺切換的測試的思路及出發點,供大家參考:

  • 因爲有重複調用同一個方法的可能,所以開發可能會用到標誌位(用於標識是否是第一次調用)等,因此可以驗證如下點:
    • 界面上的邏輯是否正確,比如:數據不一致。
    • 界面展示是否正確,比如:某些按鈕不應該展示,卻展示了。
    • 因爲有可能新創建對象,所以需要關注是否有內存泄漏存在。
    • 是否會造成異常的網絡請求,比如重複請求同一接口。
  • 在app將要置於後臺時,會保存當前界面上的數據,等到app再次回到前臺時,重新渲染:
    • 驗證前後臺切換後,界面數據是否被清空。
    • 另外界面數據展示是否正常。
  • 其他
    • 是否會出現crash。
    • 是否會造成app的專項數據異常,比如:cpu、耗電量等。

總結

軟件測試,其實一定程度上就是用探索性的思路,挖掘更不容易出現的"驚喜",因此,我覺得"App前後臺"切換絕對是一個不錯的探索思路。大家有什麼更好的想法或問題,歡迎在評論區留言交流。

關注【公衆號:軟件測試佈道師】,回覆【python】,即可獲取【python自動化及編程實踐資料】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章