移动端测试详解
一、移动端测试概述
1. 网络种类多
- 移动端有多种网络:无线网络、2G、3G、4G等,断网、网速较差及网络之间的切换时页面的显示等,这些对于移动端来说很重要。此外,在非wifi下,还需要注意网络使用量问题。
2. 间断问题
- 移动端有一个很重要的问题,一般情况下在使用软件的过程并不是长久的,这中间可能发生很多中断,如电话、短信、通知、断电等等,软件需要特殊处理这些特殊情况。
- 打开一个页面,或在操作的过程中(点击一个按钮后),将手机屏幕锁住,再打开时,应用能否正常处理。
3. 屏幕的限制
- 图片及文字的显示;上传不同的图片尺寸显示是否正常;图片和文字一起显示时,效果如何。
- 操作区域;web端的应用,一般不会受到屏幕的限制,而且通过鼠标操作更加准确。但是移动端由于屏幕较小,页面及按钮会受到屏幕大小的限制,再加上用户都是通过手指进行操作,一些按钮、选择框 等是否容易点击,多个可点区域位置较近时,点击部位稍微偏移,也许就会造成不同的结果,这种情况下是否可以达到预先的效果。
4. 软件启动运行
- 移动端启动、卸载、升级几个特性,这是比较常见、也很重要的,比如升级时用户的数据怎么办,卸载后用户的数据怎么处理,卸载再安装用户登录数据的显示等。
5. 手势
- 移动端还有一大特性,就是移动端有自己比较简单的手势,用户可以通过手势进行一个操作,比如左滑删除、右滑返回上一个页面、左右滑动图片等,软件需要对这个手势进行适配。
6. 分享
- 移动端一般会装有很多软件,用户下单或者产品有活动时,用户都会进行分享,但是分享时的权限、软件是否存在等问题,需要特殊处理测试。一般的软件或应用,都会开放一部分页面,允许用户不登录时即可访问,而有些页面是必须要求用户登录的,主要针对这两种权限不同的页面做分享,然后通过分享进入本页面,查看权 限的控制是否正常。
7. web和移动端的同步
- 用户在web端的操作,在移动端是否可以正常的进行同步、显示;在移动端的操作,用户登录web账号,信息是否同步等。
二、移动端的认识
1. 移动端操作系统
- IOS
- Android
- Windows Phone
- Symbian/meego
- Windows Mobile
- Blackberry
2. 什么是移动端应用
- 狭义:原生APP
- 广义:Web APP(H5)、混合app、小程序(微信、支付宝、百度……)
- 原生APP偏向于交互,注重用户体验;WebApp偏向与浏览器简单的交互,用于信息展示。一些功能需要访问硬件,则使用原生APP。
- 现在流行的方法是将原生APP与WebApp进行融合,核心功能使用原生APP,内容展示等辅助简单功能使用WebApp。这样便于更新、保证核心功能的交互体验
3. 移动端测试的复杂性
- 网络多样化:2G网络、3G网络、4G网络、WIFI
- 支持系统多样化:手机操作系统:Android、iOS、windows Phone等
- 硬件配置多样化:内存大小种类多、核心数量多
- 分辨率类型多样化:7201280、10801920等
三、移动端测试流程
四、移动端测试要点
1. 安装和卸载
1.1 安装测试
- 从不同的渠道获取安装程序是否正常安装。
andorid的app:开发提供app,在安卓手机、安卓模拟器安装即可(版本一致性) ios的app: 1、如果你们有企业证书,直接分发 2、你的app还没有苹果的企业证书,把你的手机UDID发给开发人员,让开发udid打包到app里面即可 3、app里面绑定udid是有限制的,如果超标就使用testflight分发,需要提供测试人员的appleid(你的邮箱账号),从testflight中下载安装包及邀请码即可安装测试 - 软件在不同操作系统版本下安装是否正常。
- 软件安装后的是否能够正常运行,安装后的文件夹及文件是否写到了指定的目录里。
- 软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电)
- 安装空间不足时是否有相应提示
- 安装后没有生成多余的目录结构和文件
- 对于需要通过网络验证之类的安装,在断网情况下尝试一下
- 还需要对安装手册进行测试,依照安装手册是否能顺利安装
1.2 卸载测试
- 直接删除安装文件夹卸载是否有提示信息。
- 直接卸载程序是否有提示信息。
- 卸载后是否全部删除所有的安装文件夹。
- 卸载过程中出现的意外情况的测试(如死机、断电、重启)。
- 系统直接卸载UI测试,是否有卸载状态进度条提示。
2. UI测试
- 按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航
- 是否易于导航,导航是否直观
- 是否需要搜索引擎
- 导航帮助是否准确直观导航与页面结构、菜单、连接页面的风格是否一致
- 横向比较,各控件操作方式统一
- 自适应界面设计,内容根据窗口大小自适应
- 页面标签风格是否统一
- 页面的图片应有其实际意义而要求整体有序美观
- 图片质量要高且图片尺寸在设计符合要求的情况下应尽量小
- 界面整体使用的颜色不宜过多
- 输入框说明文字的内容与系统功能是否一致
- 文字长度是否加以限制
- 文字内容是否表意不明
- 是否有错别字
- 信息是否为中文显示
- 是否有敏感性词汇、关键词
- 是否有敏感性图片,如:涉及版权、专利、隐私等图片
3. 功能测试
- 注册:关注长度限制、类型限制、重复注册、短信接入、前后台数据一致性
- 登录:正误情况、多设备登录、禁用账户登录、登录超时、登录中断网/网络切换、登录后界面
- 注销:注销后再登录、取消注销
- 应用前后台切换:前后台切换、锁屏解屏、电话/短信中断后回到app、必须处理的提示框处理后回到app、杀掉进程后重新启动app
- 免登录:登录后杀掉进程重新启动app、无网络、切换用户登录、密码更换、退出登录下次启动app、卸载重装
-数据更新:手动或自动刷新、从后台切换到前台时数据更新、实时更新、定时更新、数据展示的处理逻辑(服务器获取、本地缓存)、更新异常处理(弱网、断网、服务器响应异常、数据为空) - 定位、相机、语音、蓝牙等系统服务:已开启、未开启根据提示开启、未开启并拒绝开启
- 时间测试:修改时区
- 推送测试:推送消息内容、链接跳转、免打扰或拒接收
4. 性能测试
- Monkey结合性能测试工具监控cpu、内存、流量、耗电量,性能测试工具如anothermoniter、腾讯的GT
- 收集同类产品性能数据(基线测试)
- 根据系统以往运营数据确定部分性能指标
- 评估典型用户应用场景下,服务器系统资源的使用情况
- 不同网络响应速度、服务器接口压力测试
5. 交叉事件测试
- 多个App同时运行是否影响正常功能
-App运行时前/后台切换是否影响正常功能 - App运行时拨打/接听电话
- App运行时发送/接收信息
- App运行时发送/收取邮件
- App运行时切换网络(2G、3G、4G、WIFI)
- App运行时浏览网络
- App运行时使用蓝牙传送/接收数据
- App运行时使用相机、计算器等手机自带设备
6. 兼容测试
- 必须是真机上进行
- 自己买设备(当前主流的50款手机),时效性
- android设备兼容性:
不同手机品牌兼容(华为、小米、魅族、oppo、vivo、oneplus、三星、google Nexus)
同一品牌下,还要选择不同的系列(mate、p、荣耀、低端、小米、红米、note、max)
同一个品牌、同一个系列(处理器不同、内存、屏幕不同、Android版本、GSM、CDMA、3G、4G)
android版本兼容,9.0版本,至少往前兼容两个版本8.0、7.0、6.0,碎片化问题(系统一周不更新)、老年使用的 - IOS设备兼容性:
IOS系统闭源,没有碎片话问题
苹果设备单元:iphone4~iphone10,p系列等,ipad、ipod。
网络制式
- android设备兼容性:
7. 升级、更新测试
- 测试升级后的功能是否与需求说明一样
- 测试与升级模块相关的模块的功能是否与需求一致
- 升级安装意外情况的测试(升级安装意外情况的测试(如死机、断电、重启))
- 升级界面的UI测试
- 不同操作系统间的升级测试
8. 用户体验测试
- 是否有空数据界面设计,引导用户去执行操作。
- 是否滥用用户引导。
- 是否有不可点击的效果。
- 菜单层次是否太深
- 交互流程分支是否太多
- 相关的选项是否离得很远
- 一次是否载入太多的数据
- 界面中按钮可点击范围是否适中
- 标签页是否跟内容没有从属关系,当切换标签的时候,内容跟着切换
- 操作应该有主次从属关系
- 是否定义Back的逻辑。涉及软硬件交互时,Back键应具体定义
- 是否有横屏模式的设计,应用一般需要支持横屏模式,即自适应设计
9. 硬件环境测试
- 手势操作测试
- 手机开锁屏对运行中的App的影响
- 切换网络对运行中的App的影响
- 运行中的App前后台切换的影响
- 多个运行中的App的切换
- App运行时关机
- App运行时重启系统
- App运行时充电
- App运行时kill掉进程再打开
- 网络环境测试
- 无网络时,执行需要网络的操作,给予友好提示,确保程序不出现崩溃。
- 内网测试时,要注意选择到外网操作时的异常情况处理。
- 在网络信号不好时,检查功能状态是否正常,确保不因提交数据失败而造成崩溃。
- 在网络信号不好时,检查数据是否会一直处于提交中的状态,有无超时限制。如遇数据交换失败时要给予提示。
- 在网络信号不好时,执行操作后,在回调没有完成的情况下,退出本页面或者执行其他操作的情况,有无异常情况。
- 后台服务牵涉到DNS、空间服务商的情况下会影响其稳定性
10. 客户端数据库测试
- 一般的增、删、改、查测试
- 当表不存在时是否能自动创建,当数据库表被删除后能否再自建,数据是否还能自动从服务端中获取回来并保存。
- 在业务需要从服务端取回数据保存到客户端的时候,客户端能否将数据保存到本地
- 当业务需要从客户端取数据时,检查客户端数据存在时,app数据是否能自动从客户端数据中取出,还是仍然会从服务器端获取?检查客户端数据不存在时,app数据能否自动从服务器端获取到并保存到客户端
- 当业务对数据进行了修改、删除后,客户端和服务端是否会有相应的更新。
11. 安全测试
-
软件权限安全性
扣费风险:包括发送短信、拨打电话、连接网络等
隐私泄露风险:包括访问手机信息、访问联系人信息等
对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测
限制/允许使用手机功能接入互联网
允许使用手机发送接受信息功能
限制/允许应用程序来注册自动启动应用程序
限制或使用本地连接
限制/允许使用手机拍照或录音
限制/允许使用手机读取用户数据
限制/允许使用手机写人用户数据
检测App的用户授权级别、数据泄漏、非法授权访问等 -
人机接口安全性
返回菜单总保持可用
声音的设置不影响应用程序的功能
应用程序必需能够处理不可预知的用户操作,例如错误的操作和同时按下多个键 -
通讯安全性
在运行其软件过程中, 如果有来电、SMS、EMS、MMS、蓝牙、红外等通讯或充电时,是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能
当创立连接时,应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况
应能处理通讯延时或中断
应用程序将保持工作到通讯超时,进而发送给用户一个错误信息指示有连接错误 -
数据安全性
当将密码或其他的敏感数据输入到应用程序时其不会被储存在设备中,同时密码也不会被解码
输人的密码将不以明文形式进行显示
密码、信用卡明细、或其他的敏感数据将不被储存在它们预输入的位置上
不同的应用程序的个人身份证或密码长度必需至少在4-8个数字长度之间
当应用程序处理敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数据信息。
备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验
应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全警告
在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作, “取消”命令操作能够按照设计要求实现其功能
应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况
在没有用户明确许可的前提下不损坏、删除个人信息管理应用程序中的任何内容
如果数据库中重要的数据正要被重写, 应及时告知用户 -
安装与卸载安全性
应用程序应能正确安装到设备驱动程序上
能够在安装设备驱动程序上找到应用程序的相应图标
是否包含数字签名信息
JAD文件和JAR包中包含的所有托管属性及其值必需是正确的
JAD文件显示的资料内容与应用程序显示的资料内容应一致
安装路径应能指定
没有用户的允许, 应用程序不能预先设定自动启动
卸载是否安全, 其安装进去的文件是否全部卸载
卸载用户使用过程中产生的文件是否有提示
其修改的配置信息是否复原
卸载是否影响其他软件的功能
卸载应该移除所有的文件