移动App测试的22条军规(3)

军规十二 重点测试高内存占用的功能
移动设备的内存是有限的,而用户以及App希望数据的欲望是无止境的,所以这些有限的内存终究会被App消耗完。虽然随着Android和iOS操作系统的升级和完善,对于App内存的限制也更加清晰和合理了。但是测试人员在设计和测试App的时候还是需要根据这些限制条件来更好地指导测试。
1,iOS操作系统的内存管理机制以及对App使用内存的限制是很不透明的
由于iOS上并没有真正的多任务,也没有swap机制,所以iOS操作系统在内存不足时会先对App进行内存占用预警,如果App持续消耗内存直到iOS操作系统允许的最大值,iOS会直接“杀掉”App进程。
测试人员可以使用App所支持的iOS设备总内存最小的设备,使用Xcode来检查App对内存的使用是否超出了限制,尽量减少App对内存的不必要使用,顺便检查App是否有内存泄漏。
打开Xcode,Xcode中的Open Developer Tool里有Instruments。在Instruments中打开进程监控工具Activity Monitor。


移动App测试的22条军规(3)_第1张图片

选择需要监控的App,从所有进出中筛选出需要显示信息的App进程。此外,还可以通过iOS Simulator的模拟内在报警(“Simulate Memory Warning”)来测试App在设备内存不足时会做出什么样的处理。
在真实设备上安装App,从App的特性出发,进行需要大量使用内存的操作,也可以进行内存使用量的测试。

2,Android操作系统的内存管理机制更加透明,对App使用内存的限制也更加灵活
在不同Android设备上,每个App可以使用的内存量是不同的,测试人员可以通过打开/system/build.prop文件来查看App最大可用Dalvik内存大小是多少。

军规十三 降低流量和电量消耗
流量和电量的使用,不是App直接提供的功能,但是会影响到用户使用App时的体验,所以我们在测试App的过程中也是需要关注的。
1,测试App安装文件的大小和安装过程
App公司在2015年2月12日已经提升App的最大容量至4GB,但是仍然维持通过OTA方式下载App的容量限制为100MB。与iOS操作系统类似,Android操作系统允许App使用的最大存储空间是2*2GB+50MB,即两个2GB的apk扩展文件和apk安装文件本身最大可以使用的50MB。虽然Android操作系统没有限制用户通过数据网络可下载的最大App的大小,但是apk安装文件本身的局限,App不会超过50MB。
如果App的安装文件相对较小,而App所需要的资料文件很多的情况,一般App都会要求用户在第一次打开App时下载资源文件,否则就不能使用App。在App下载资源文件的过程中,测试人员需要考虑测试在下载过程中设备是否会锁屏(自动或手动),解锁后App下载的资源是否会保留,以及重新打开在下载资源文件中被关闭打App是否可以断点续传这些场景。
对于iOS操作系统,由于对App管理机制比较特殊,一般情况下,App在锁屏后10min之内就会被切换到后台,导致下载操作也会停止,这时App下载资源文件就会出现错误。
2,测试App占用的存储空间
通过对占用存储空间进行测试,可以避免App存储过多的资源文件而导致用户设备上存储占用空间过大的问题。可以通过系统自带的App占用数据空间的统计功能可以用来查看App占用的存储大小。
3,测试App的流量消耗
测试人员需要关注App的流量消耗,在这方面iOS和Android操作系统本身提供了不少工具可供使用。
4,测试App对于设备电量的消耗
测试人员可以通过系统自带的工具来查看App的电量消耗。

军规十四 增量升级必不可少
绝大多数的App为了给用户带来新的功能和体验都会选择持续更新App。用户进行App升级通常采用的是增量安装活着覆盖安装的方式,而不会先删除App再进行全新安装。
我们可以针对全新安装的App进行重点测试,而针对App的升级可以进行冒烟测试,或者对改变的功能进行有重点的测试。
需要注意的细节有:
1,在App升级之前登录的用户信息在App升级之后是否显示正常;
2,如果App中有内购的功能,需要保证用户在之前版本App购买的商品在新的App版本中可以同样适用;
3,App升级涉及到的数据库结构变化时,需要确定升级后保存升级之前的数据库中的数据显示正常;
4,保证App升级后功能和显示正常的同时,也需要保证App升级之前版本的功能和显示正常。

不仅App的升级需要进行测试,对于App的删除也同样需要测试。例如,如果用户在删除App并再次安装时发现App能够自动登录,会感觉到App的安全性不足。因此,需要测试App的删除,保证用户信息,缓存文件不会泄漏。
测试人员还需要测试App数据的删除,如用户清楚App的缓存,用户清楚App的数据等。

军规十五 确保成功集成和调用第三方App
如果App不具备分享功能,没有外部链接,没有集成广告,不可能使用社交媒体账号登录,没有使用推送服务,不需要关联其他文件,App几乎就没有和别的App交互的可能。测试人员需要注意的是:
1,App对第三方App的直接集成,如微信“我的钱包”里的滴滴打车、京东等;
2,测试App的分享功能,确保App的内容可以被正确地分享到别的App中;
3,测试App显示外部链接的功能;
4,测试免费App中集成广告的功能;
5,测试App使用社交媒体等账号登录的功能;
6,测试App的推送服务;
7,测试App关联其他文件的功能;
8,测试App和输入法等App交互功能。

军规十六 尽量不使用非标准空间
如果想App支持某种特性,可是操作系统并没有提供这种特性,开发人员可能自己设计控件,或者使用第三方库来实现这个功能。当iOS操作系统更新时,操作系统只会保证更新的代码对原生代码的兼容性,而不会保证对第三方的代码实现和类库的兼容性。因此,在使用第三方的类库时,需要注意以下几个问题:
1,第三方类库的兼容性问题;
2,第三方类库的性能问题;
3,第三方类库的维护问题;
最好的方式就是在一开始就尽量少地使用自定义控件和第三方控件以及类库,尽量使用操作系统原生的控件和代码来实现App的功能。当然也不可能完全不使用自定义的控件和第三方控件或类库,因此测试人员要注意新的操作系统版本对这些特性的支持,可以采用自动化测试来保证相应的功能,更麻烦的是手动执行回归测试。

军规十七 提前关注操作系统的升级
每当iOS和Android操作系统升级新的版本,尤其是大版本的升级时,总是会带给用户很多新的功能。因此,测试人员要对新的操作系统的新特性进行了解,并在测试过程中注意系统升级对App的影响。

军规十八 尽量减少依赖
如果App的依赖越多,出现问题和错误的可能性也就越大,要解决问题付出的成本越多。因此,要进来减少App的依赖。减少依赖可以从App的系统架构入手。
1,既有Web版本又有App版本的App
很多App开发时都已经先有了Web的版本,如果只是把Web的内容展示在移动设备上,就会让App很多功能依赖于Web事先实现的方式。但是App屏幕大小,设备性能,网络环境等都与桌面环境有很大的差异,如果单纯在App上使用Web的service,很有可能造成App性能和样式出现问题。
测试人员首要分析已有Web的service使用在App上,哪些场景会正常使用,哪些场景会有性能和样式的问题;其次,选择在App上直接食用可能会出现问题的那些Web service来实现独立的service。
系统架构的设计并不是测试人员负责,但是测试人员有必要对App使用场景和需要用到的具体service足够熟悉。

2,没有Web版本的App也需要注意依赖问题
App基本是用来展示数据的,真实的操作时后台的服务器和数据库来实现,前台App和后台服务器是通过service的形式交换数据的。App是没有办法避免对后台服务器的依赖,因此需要对service进行API和集成测试,以确保这些service的可用性和准确性,尤其是前端和后台的开发团队不同时。测试人员在此需要对service测试隔离后台服务器的变化对App产生的影响,这也极大的简化了测试的复杂性。

你可能感兴趣的:(移动App测试的22条军规(3))