大家都知道,兼容性问题经常在移动端测试过程中发现,每当IOS和Android操作系统升级新的版本,尤其是大版本的升级时,总会给用户带来很多新的特性,由于有了这些新的特性,现有app的功能、样式,甚至app本身都有可能发生变化。
作为测试人员,显然不能等到新的操作系统发布之后才开始了解这些新引入的特性,最好在新操作系统的测试阶段就了解更多的新的操作系统的特性。
下面先看下Android升级系统从4.1到7.0中比较典型的几个版本,引入的新特性。
一、Android4.1—API等级16
1、增强了通知栏
在Android 4.1中,通知栏框架有了翻天覆地的变化,总体来说就是更大、更丰富、直接操作。
开发者可以在新版系统中使用三种不同的通知样式,最高可以达到256dp,用户可以直接查看图片、信息、邮件、提醒等内容,可以进行一键回拨、一键分享、一键回复等操作。
对于这个改动,测试人员在测试App的时候,就需要覆盖到在通知栏进行操作的场景。
2、桌面小工具Widget可以自动调整大小
如果你测试的app有创建桌面小工具的功能,此处就应该测试不同大小的app Widget。
3、增强的辅助功能
对于这些添加的辅助功能,测试人员需要测试app是否支持这些功能来方便残障人士使用app。
4、扩展了语言和输入法的支持
对于支持多语言和地区的app,比如微信,需要考虑是否要适配更多的用户人群;
对于那些不支持多语言和地区的app,则需要考虑是否限制开始支持多语言和地区了;
而测试人员则根据这些变化来进行相关测试。
5、更好的支持HTML5
Android浏览器和WebViews将提供更好的HTML5视频支持,滚动和缩放性能得到加强,并减少了内存占用,HTML5/CSS3/Canvas动画性能、文本输入、JavaScript引擎(V8)性能都得到了加强。
这从功能到性能都是一大升级。而在测试app时,测试人员也需要对使用WebViews的功能进行重点测试。
二、Android4.4—API等级19
1、新的UI设计
之前蓝绿色的配色设计被更换成了白/灰色,更加简约,另外图标风格也进一步扁平化,还内置了一些新的动画,整体来说界面更漂亮、占用资源更少。另外,还加入了半透明的界面样式,以确保状态栏和导航栏在应用中发挥更好的效果。
对于运行在这个系统上的app,用户自然也其能用和操作系统一致的风格,比如更加扁平化等。
2、App支持全屏模式
可以让用户不受外界干扰,更加关注app,在测试中也需要测试app对于全屏模式的支持。
3、支持Emoji键盘
终于,Android也能够支持丰富有趣的Emoji输入了,可以让你的邮件或是信息更加个性化。测试的时候各种输入框应该增加此类型输入测试。
4、提供储存访问框架Storage access framework
Android4.4提供的储存访问框架Storage access framework,可以使app从本地或者dropbox和box这样的第三方存储中提取文件,大大扩展了app中使用数据的范围。但是对于测试而言,也加大了对不同数据源测试的压力。
三、Android5.0—API等级21
1、全新的UI设计Material Design
全新的Material Design设计语言。新系统的界面变得更加扁平化,最重要的是,这样的设计语言会在所有的谷歌产品上采用。
Material Design不仅改变了传统的Android显示样式,也改变了很多app用户交互的方式。
对于这些改动,测试人员需要在Android5.0成为主流系统之前进行,提前进行适配和测试。
2、增强的通知系统
更便捷和清晰的下拉通知栏。通知栏中的提示会以更清晰的页卡的形式出现。
同时锁屏状态下,用户能像ios一样看到app的通知,进行快捷操作,如快速回复短信、回拨电话等。
这些改动相对于之前Android版本上使用的通知方式有很大的改变,所以为了让app适应这些改变,测试人员需要提前做出测试和开发的改变。
3、只保留了ART运行环境
ART作为默认选项。很简单,ART取代Dalvik成为Android系统主要的应用运行环境,运行速度可比以往快两倍,且支持64位。
对于还在使用Dalvik的app,测试人员需要对ART运行环境进行适配和测试。另外对于只使用ART的app,也要去适配低版本的Android操作系统。
4、新系统将用更多的操作将用滑动来取代之前的点击
新系统将用更多的操作将用滑动来取代之前的点击。那在app应用内部也要支持滑动操作,需要增加此种操作的测试场景。
四、Android6.0—API等级23
1、大量漂亮流畅的动画
安卓6.0系统增加了大量漂亮的过度动画,可以从视觉上减少卡顿感,给用户带来流畅的体验。说到过渡动画,以前可是苹果手机的拿手好戏,现在安卓大有赶超iOS的趋势。
2、 指纹识别
说到指纹识别,很多用户都会觉得现在的中高端安卓手机都支持,但事实上这些都是各个厂商自行开发的并没有系统底层的支持。Android 6.0则在系统层面加入指纹识别,能提供原生指纹识别API,这不但降低了厂商开发指纹识别模块的成本,最重要的是原生指纹识别将会大大提升安卓手机的指纹识别支付安全性。
在测试app的指纹识别功能时,需要区分Android6.0以下系统和Android6.0以上系统。
3、App Links
通过App Links功能,Android平台能够向网络服务器提出申请,自主识别链接内容。直接跳转到App客户端中,改善用户体验,有利于让用户在体验更完善的App客户端完成更多操作。
五、Android7.0—API等级24
1、通知增强功能
在 Android N 中,我们重新设计了通知,使其更易于使用并且速度更快。 部分变更包括:
模板更新:我们正在更新通知模板,新强调了英雄形象和化身。 开发者将能够充分利用新模板,只需进行少量的代码调整。
消息样式自定义:您可以自定义更多与您的使用 MessageStyle 类的通知相关的用户界面标签。 您可以配置消息、会话标题和内容视图。
捆绑通知:系统可以将消息组合在一起(例如,按消息主题)并显示组。 用户可以适当地进行 Dismiss 或 Archive 等操作。 如果您已实现 Android Wear 的通知,那么您已经很熟悉此模型。
直接回复:对于实时通信应用,Android 系统支持内联回复,以便用户可以直接在通知界面中快速回复短信。
自定义视图:两个新的 API 让您在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。
对于这些改动,测试人员在测试App的时候,就需要覆盖到在通知栏进行操作的场景。
2、快速的应用安装路径
Android 运行组件的 JIT 编译器最实际的好处之一是应用安装和系统更新的速度。即使在Android 6.0 中需要几分钟进行优化和安装的大型应用,现在只需几秒钟就可以完成安装。系统更新也变得更快,因为省去了优化步骤。
3、后台优化
Project Svelte在持续改善,以最大程度减少生态系统中一系列 Android 设备中系统和应用使用的 RAM。在 Android N 中,Project Svelte 注重优化在后台中运行应用的方式。
Android N 删除了三项隐式广播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO),以帮助优化内存使用和电量消耗。此项变更很有必要,因为隐式广播会在后台频繁启动已注册侦听这些广播的应用,删除这些广播可以显著提升设备性能和用户体验。
总结:测试人员在了解到操作系统的特性,针对新操作系统版本设计和开发新版本的app时,也需要考虑这些特性对于测试app的影响,在新操作系统初期版本上进行适应性测试,并同时对当前的操作系统上对当前版本的APP进行回归测试。
本篇文章只写了部分特性,如果想了解每个版本详细的特性,可以去维基百科查看:https://en.wikipedia.org/wiki/Android_version_history
[参考资料] 《移动APP测试的22条军规》 黄勇 著