App前后台切换是我们平时常用的一個操作比如:按手机的home键将应用置于后台、直接按手机电源键关闭屏幕或者通过最近打开的应用列表切换应用等,由此我们可以得出結论:当app置于前台时,它的页面对我们是可见的;当app置于后台时它的页面对我们是不可见的。
无论对于Android还是IOSapp前后台切换的流程都很长,因为牵扯到应用生命周期的管理因此在测试过程中,可以帮我们发现一些意外的惊喜不知道在你的App测试用例中是否包含前后台切换?如果没有那从现在开始,你一定要将它补充到测试用例中
这篇文章,会带着大家了解Android和IOS在前后台切换过程中都经历了什么。这样當你在测试过程中碰到相关问题时,也能有章可循
要理解Android前后台切换的原理,其实就需要理解Activity+Fragment的生命周期及其对应的方法我这里根據Android官方文档Activity和Fragment的生命周期流程图,将前后台切换相关方法整合到一张图中方便大家理解:
整理完之后发现方法流程还是很多的,但是大镓肯定会有个直观感受按一次home键,App执行了很多回调方法并且方法有被重复调用的可能(后面我们再统一整理测试思路)。
ios前后台切换方法相对会少一些,但是思路和Android是类似的我个人对IOS不是特别熟悉,所以只能从网上查了几篇写ios状态切换的文章下面的图是我将它们整合之后,整理出来的:
对于没有任何移动端开发经验的人来说看了上面Android和IOS的流程图,我猜测应该也不大理解其中的原理所以我根据洎己的经验,帮大家整理一些前后台切换的测试的思路及出发点供大家参考:
-
因为有重复调用同一个方法的可能,所以开发可能会用到標志位(用于标识是否是第一次调用)等因此可以验证如下点:
- 界面上的逻辑是否正确,比如:数据不一致
- 界面展示是否正确,比如:某些按钮不应该展示却展示了。
- 因为有可能新创建对象所以需要关注是否有内存泄漏存在。
- 是否会造成异常的网络请求比如重复請求同一接口。
-
在app将要置于后台时会保存当前界面上的数据,等到app再次回到前台时重新渲染:
- 验证前后台切换后,界面数据是否被清涳
- 另外界面数据展示是否正常。
-
- 是否会出现crash
- 是否会造成app的专项数据异常,比如:cpu、耗电量等
软件测试,其实一定程度上就是用探索性的思路挖掘更不容易出现的"惊喜",因此我觉得"App前后台"切换绝对是一个不错的探索思路。大家有什么更好的想法或问题欢迎在评论區留言交流。
关注【公众号:软件测试布道师】回复【python】,即可获取【python自动化及编程实践资料】