一个小需求更新引起的 50% 崩溃:跟开发沟通过的一个测试小事故,显然是测试精度不够的结果

故事背景

产品经理找开发在版本之外加一个额外的“小”需求。

需求内容:长按图片「保存」至本地。

知道这个需求后,觉得比较简单,以至于测试用例都没。感觉可能会牵涉到存储权限外,并叮嘱开发注意权限问题。

测试期间主要关注下图片是否保存到本地就OK 了。然而大错特错,一点都不 OK,上线后就没多久就被喷了,因为老大经常会链接 VPN 查看国外的消息,所以网速不是很好,导致保存图片时崩溃率 1/2 。

吓得我手机都想扔了,升级推送的包赶快让同事帮忙撤掉。幸亏没有发布到应用商店,不然损失惨重。

故事原因

后来发现,弱网环境下清晰图片没有加载出来之前点击保存才会闪退,并且这种情况下是必现的。

这里就要提到图片加载策略:

默认图->模糊图->高清图,首页动态列表加载的过程中,会先加载模糊图,点击图片查看的时候,先显示之前加载好的模糊图,高清图加载好后再显示高清图。

由于高清图没有加载出来,所以没有保存的对象,故应用崩溃。后来开发做了优化,高清图没有加载出来前,长按图片下方不弹出保存图片入口。

故事分析

先看看,安卓系统文件读写权限。Android 6.0 之前只要申明了上述两个权限就可以放心大胆的在sdcard上进行读写了。

可惜Android 6.0之后就需要动态申请读写权限了,所以我们该如何适配Android 6.0来进行文件存储。

首先我们在使用文件存储的时候尽量做到以下几点:

•不要随意占用用户的内置存储

•不要随意在SD卡上新建目录,应该放置自•己应用包名对应的扩展存储目录下,卸载App时可以被自动清除。

•对占用的磁盘空间有上限,并按照一定的策略进行清除,比如DiskLru算法等。

所以啊,之前考虑的太过简单了,文件存储考虑的不到位。Android6.0 之后的系统,保存文件至手机内存中是不需要申请读写权限,保存至SD卡则需要动态申请。

但是图片保存前是否有对象,前置条件忽略掉了(测试一大禁忌),而图片的加载跟网络环境和网速有关,比如wifi,4G,3G,WiFi->3G,3G->WIFI,需要验证这些情况下图片是否加载正常。

在严格的标准下,又发现了一个小问题,3G->WIFI情况下,高清图加载出来了,但是长按始终无法出现保存图片的入口,后来了解到是,长按出现 [保存图片] 入口和图片加载是两个异步事件,所以网速差的时候,这种情况就比较明显了。

猜你喜欢

转载自blog.csdn.net/zhusongziye/article/details/83903189
今日推荐