51Testing软件测试论坛

标题: 浅析iOS兼容测试实践 [打印本页]

作者: 飞儿乐队    时间: 2018-5-18 16:54
标题: 浅析iOS兼容测试实践
背景:

关于iOS兼容测试往往存在一些理解偏差,多数人认为苹果公司机型比较少,系统发布也不频繁,应该不会有太
多涉及适配的问题,而实际情况并非如此,每一个系统发布都会伴随大量的技术革新和硬件变革,用户感知机
型与系统带来的全新体验时,背后需要开发人员做调试适配,测试人员做测试,接下来我总结过往兼容性的测
试实践经验对iPhone上的APP兼容性问题进行总结。

按照如下几点进行阐述

一:系统兼容

二:机型兼容

三:测试原则

----------------------------------------------分割线------------------------------------------------

系统兼容

因为iOS系统一年发布一大的版本,按照一年中不同的时间段,大约会有如下三个测试阶段:

日常兼容

发布新系统

启用新sdk

1、日常兼容:暂无新系统发布,兼容新旧版本系统

一款APP在编码阶段就要考虑不同系统的差异性,在修改代码的阶段要格外关注系统的高低版本之间API调用
时实现的差异。

下面来看在非新系统发布时期的普通适配测试发现的问题

典型适配测试问题

序号

问题描述

iOS系统

原因

bug1

iOS 6系统上XXX银行APP行个人中心-设置-各个默认开关无法改变状态iOS 6

重构函数时,关于cell的设置有问题

bug2

iOS 8系统上XXX银行APP启动页导航滑动会出现卡住的现象iOS 8

当有手势滑动操作时,不同系统响应不同;iOS7以下的系统优先外层响应,里层不响应,iOS 8系统会询问哪
一层响应手势操作

两个bug都是某个系统下的APP不响应用户手指操作。点击开关,不响应开关指令,滑动屏幕,不响应滚动指
令。其本质是因为开发在重构或者实现函数功能时,忽略了高低版本系统上的系统API调用的差异系。

这种情况往往出现在重构阶段,测试人员对每次重构测试尽量需要系统覆盖。

2.发布新系统:发布新的大版本系统需要做适配测试。

每年进行新系统发布前,苹果公司陆续发布Beta版本供开发者适配,此时测试人员也要跟进,对APP在新系统
上运行进行一次check,在启动测试工作前,测试人员最好也要了解新系统的特性和变化。

新版本发布适配性问题

序号

问题描述

iOS系统

原因

bug1

XXX银行启动出现异常,启动后先返回桌面,再进入APPiOS 11

iOS 11

Beta版本自身问题,系统自身某函数未调用。

bug2

XXX银行在iOS11上操作跨行转账,选择银行时APP闪退iOS 11

原因待跟踪

上述两个bug主要是在新版适配前的Beta版本测试过程中发现的,这个阶段测试需要随开发一起了解新系统
的特性,阅读相关文档,联系产品各项功能检查。

3.启用新SDK:新系统正式发布后,采用全新的SDK编译产品。

在新系统发布一段时间后,开发人员会采用高版本的SDK编译,比较显式的是用高版本的Xcode来编译版本,
这里有个问题,如果使用高版本独有的API,编译器不会标识出来,而低版本系统没有这种API,因此在低版
本上就会出现问题。

机型兼容

机型新增特性

机型的问题跟硬件设备有关,随便一代代的iPhone发布,屏幕越来越大,分辨率越来越高,处理器等更新,
手机新特性应用也是兼容测试的重点。

系统更新会带来新功能,机型的升级也会带来新功能,例如从iPhone 5s开始有了指纹识别,从iPhone6开
始有了3D Touch等,如果机型上的新功能不涉及被测产品就可以忽略,如果涉及就要进行适配。

我们需要对机型设备有两点测试保证:

保证有该特性的机型能够正常使用。

保证低端机型不会误触发这个逻辑。

过往的缺陷中,机型上的新增功能有关的case也不少,例如:iPhone6s(plus)开始引入3D Touch特性,
在iPhone6s(plus)上验证该功能,就曾发生重按不显示首页banner图的现象。对这种与机型强相关的测
试,最好能单独列出一个list记录,避免在测试过程中,几个版本迭代后,对机型敏感度下降后误触发的问
题。

屏幕变化

iPhone自发布以来,屏幕尺寸和分辨率越来越大,下面是不同机型的屏幕尺寸和设备分辨率,测试需要关
注不同的资源配置是否全覆盖。

iPhone屏幕尺寸和分辨率列表

发布机型

屏幕尺寸

设备分辨率

iPhone 4/4s

3.3-inch

640*960

iPhone5/5s/5c/SE

4-inch

640*1136

iPhone 6/6s/7

4.7-inch

标准模式750*1334

放大模式640*1136

iPhone6 plus/6s plus/7plus

5.3-inch

标准模式1242*2208

放大模式1125*2001

对于屏幕尺寸大小的不同,出现的兼容性问题也多。经常出现的问题是运营活动弹框显示问题,例如在威
海银行1.6.0版本,砸金蛋运营活动,在iPhone5s上出现右上角关闭按钮完全遮挡,底部也被遮挡很大一部
分。

测试原则

一般来说,进入测试窗口期的系统不会超过四个大系统,即最新的四个系统。例如当前是iOS10系统最新,那
么就覆盖iOS 10、iOS 9、iOS 8、iOS 7。当然,这跟被测APP可安装的系统有关,当前标板仍支持iOS 7,未来
当发现iOS 7用户量占比很少的情况下,就会考虑放弃支持这个系统,那么对应的iPhone4就会退出测试的覆
盖范围。

系统机型分布表

系统

机型

iOS 10

iPhone 7(plus)、iPhone 6s plus、iPhone 6plus、iPhone5

iOS 9

iPhone6s plus、iPhone6 plus、iPhone

5、iPhone 4s

iOS 8

iPhone6s plus、iPhone 5、iPhone 4s

iOS 7

iPhone 4s、iPhone4

iOS 6

iPhone 4s、iPhone4

由于实际人力受限,不能每个机型的系统都进行覆盖,因此主要策略如下:

以操作系统覆盖齐全为主,最高系统保持最新和次新,机型尽量照顾高低两端机型。

迭代增量测试阶段,对于新增功能一般采用四个系统都覆盖,机型选择尽量不重复,如果人力不够,还需
要格外留心低端机型的高端系统。如:iPhone5搭载iOS 10系统,另外,也需要关注对最高版本的系统尽
量覆盖两个以上子系统,例如:10.2是最新版本,则10.1次新,这两个系统都尽量覆盖。

集成测试阶段,由于需要执行大量用例,所以一般每个模块的测试都无法保证全系统覆盖,只有入口级别
用例才在所有系统上运行。如下总结集成测试阶段需要全覆盖的checklist。

集成测试全系统覆盖checklist

功能点

备注

第三方调用打开

重点考察启动逻辑是否通畅,页面显示是否正常,包括横屏、背景颜色、放大模式等因素下的消息通知栏等

通知栏push

点击push消息进入APP,(包括冷启动和热启动)页面显示是否异常包括通知栏,菜单栏等

widget

正确显示通知消息、公告等,点击启动APP,页面显示正常(覆盖iOS 8、9、10)

卡片式加载

首次安装,首页卡片加载正常,是否可以左右拉起,置顶等操作

快链

登录和未登录状态下添加删除移动快链,登录后数据同步

个人中心

能正常登录、切换账号、手势重置、登录方式切换、查看积分等

特殊操作

长按消息通知、观察页面显示是否正常

运营活动

跳过、加载、关闭、分享、滑动等

二维码扫描

正常弹出扫描框,扫描二维码后正常跳转

开户

身份信息扫描、设置交易密码等

理财认购

密码键盘弹框、支付方式选择、完成认购后跳转

转账汇款

选择收款人、收款银行跳转

小结

本次浅析主要就iOS平台上的兼容性问题进行总结介绍,苹果公司每次发布新系统,相比Android平台来说,
iOS的渗透率是比较高的,短时间内就会大量升级到最新版本。而机型的更新速度比较慢,iPhone手机一般
从iPhone4到iPhone7的用户分布比较均衡。因此兼容性测试覆盖最重要的用户群体就是最新系统,其次就
是低端机型用户。


最近几年的情况看,每次测试都至少是四个机型(四个不同的系统)同时进行,如果条件允许,最新的系
统最好能覆盖两个子系统,即五个手机同时进行测试最佳。至于哪些测试需要每条用例都全系统和全机型
测试,根据测试原则进行即可。








欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2