我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了性能测试之后,测试工作看似比较完整了。但是当我们的App在大量的用户那里被安装和使用的时候,还是会有很多我们之前没有预料的问题被反馈回来,比如:

  · Crash的问题

  · 设备兼容性的问题

  · 流量使用过多的问题

手机电量消耗过快的问题

  · 在不同的网络情况下不稳定,比如卡死和白屏的问题

安全测试和环境相关测试。

  第一:兼容性测试

  针对App通常会考虑这些方面:

操作系统版本

  包括Andoird版本,iOS版本

  2)屏幕分辨率

  3)不同厂家的ROM

  4) 网络类型

  比如Wifi、3G、4G下的功能情况

  第二:流量测试

移动产品的测试中,很有必要对App使用的流量进行度量,大致来说,流量可以从用户使用的的相关性角度分为:一类是用户的操作直接导致的流量消耗;另一类是后台,即在用户没有直接使用情况下的流量消耗。

  第三:电量测试

技术没有取得巨大突破前提下,这方面始终会存在一些瓶颈,如果一些App架构设计的不好,或者代码偶缺陷,就可能导致电量消耗比较高,所以电量测试也是很重要的。

  第四:弱网络测试

移动互联网产品相比PC互联网产品,有一个特点是前者使用的网络比较多样,除了Wif之外,很多时候是在移动网络下使用的,移动网络遇到的情况又比较复杂,比如地铁、隧道、体育场等。所以网络不稳定的情况是比较容易发生的,很多情况下App的一些问题是在复杂的网络情况下才会暴露,与其让用户发现和投诉这些问题,不如我们在测试阶段尽量模拟这样的网络情况,及早发现和修复这些问题。

  第五:稳定性测试

  在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。

  第六:安全测试

SQL注入测试、XSS跨站脚本攻击等。

  第七:环境相关的测试

  在实际项目中,有一些缺陷我发现是和App所处的运行环境相关的,所以设计测试的时候,要多考虑这些场景,比如:

  1)干扰测试

电话、收到短信、收到通知栏消息、无电提示框弹出、第三方安全软件告警弹出。

  2)权限测试

  一些用户在实际使用App的时候回有意识阻止某些功能。例如有的用户感觉让某个App访问电话本或者相册可能泄漏隐私,就在手机中设置了禁止了该App访问相册的权限。

  3)边界测试

  手机环境本身也有其边界情况需要在测试中覆盖。常见的场景有:

  可用存储空间过少、没有SD卡/双SD卡、飞行模式、系统时间有误(晚于和早于标准时间)、第三方依赖(比如我们的App依赖第三方App,但是现在第三方App没有安装或者版本过低的测试情况)。