之前我们也学习过一些普通用例的设计, 如功能, 性能, 安全性, 兼容性, 易用性, 界面的测试用例设计, 之前我们讲的基本都是对于Web应用而言的, 这里我们来讲一下移动端的App测试用例设计.
功能方面
安装&卸载测试
这是只属于App的一类测试, 再平常我们使用移动设备(手机/平板)是会经常接触到这个. 主流的就有安卓的Apk安装包, 还有IOS的ipa包.
我们将测试点主要设置在这四个方面: 安装前, 安装中, 安装后, 以及特殊的重复下载.
对于安装前, 比如说我们空间不足了, 是否能给出相关提示.
对于安装中, 安装过程是否是可以取消的? 再次安装是否成功? 安装后是否可以正常运行?
安装后, 主要就是运行了~, 同时还需要面对一些环境测试.
是否可以卸载应用: (1)通过桌面卸载, (2)通过软件界面卸载 (3)通过资源管理器卸载.
然后就是要看看卸载之后的情况: 卸载后图标是否还在? 卸载的干净吗?
最后我们会再次重新安装这个软件, 尝试运行, 如果与运行不成功, 很可能是之前没有卸干净!
对于重复安装的话, 那主要就是看需求了, 一个是允许覆盖性的安装, 不影响使用, 一个是直接提示版本存在. 当然还有一些要看是需求规格说明是怎么说的.
App升级测试
升级测试当然是App的一个特殊点, 在平常的浏览器中, 上面的应用程序都是直接更新的, 而对于App来说, 这就比较复杂了.
我们分位升级前后, 升级的强制性来讲.
升级前: 当有新版本发布时, 在客户端是否有更新提示.
升级后: 我们当然要保旧更新, 首先就是要检测更新后的数据是否有丢失, 这个就主要是升级前后的一个兼容性. 然后的就是新功能是否使用正常.
非强制升级: 用户可以随时取消更新, 同时支持老版本的一个正常使用. 然后根据功能需求, 看看是否有下次上线提示App更新的功能, 对其进行测试.
强制升级: 顾名思义, 就是你不升级我不让你用, 如果用户不升级的话, 就会强制其退出, 当用户下次使用时, 仍有这个强制升级的提示.(当然要有提示, 不能不经过用户同意, 不经人同意的软件真的很讨厌).
App登陆测试(安全)
我们在App上面的登录形式很多样, 特殊的就有: 指纹, 二维码, 收拾, 语音, 头像识别, 一键登录.
然后上面讲的是对登录方式的一个扩充, 但重要的是对于权限的一个控制, 很简单: 登录前你能干什么, 登录后你又能干什么?
对于登录的权限, 我们有两种限制: 压根不让进(游戏等), 让进但有功能限制.
对于完全不让进的, 我们就要想办法测试一些越权的行为, 这里我提供一种, 比如登录后注销, 查看页面是否会跳到登录页面.
而对于让进的, 这也是一种主流, 先对用户介绍一下成熟的产品, 吸引读者的兴趣. 但是当用户对于页面的操作, 要进行控制, 当点击某资源/跳转某界面, 就要要求登录. 如抖音评论功能要登录.
而登录方面还有一个重要的测试就是多开情况.
一种就是允许多开, 这一种的重中之重就是确保两个端的更新能做到及时的同步, 在这一点上也会有一些意想不到的bug, 比如我之前写的博客系统, 嗯用两个浏览器登同一个账号, 点开同一篇自己的文章, 一边删除这个文章后另一边点击更新, 这时页面就有bug.
一种就是不允许多开, 常见于游戏. 即不让两个地方登录. 处理策略也有两种: 一是提示后登录的客户端无法登录, 二是后登录的能进去, 但是前登录的被挤掉了.
最后也有一种是长时间未登录, 过期了(还是看需求哈).
消息推送测试
在平常使用手机的时候, 当个人专注度不强时就可能被某App的消息吸引过去了, 一吸引少则几十秒, 多则几十分钟, 更多则一天, 比如是QQ, 你以为是女神给你发消息了, 结果一进去是想让你充QQ VIP.
导致你非常的嗯 ? 沮丧? 当然, 开个玩笑, 消息推送作为移动端App的一个重要部分, 我们也要做好测试.
首先是消息推送功能设置, 我们是让它推送还是不让推送? 这个可以在系统上进行设置, 同时App也要设置这个, 推送功能开启/关闭功能.
然后就是对于用户情况进行一个分配(假设开启了推送功能.)
手机客户端未锁屏时: 当App在后台运行/前台使用, 是否可以推送, 且可点击传送到对应App的对应界面, 注: 能否跳转到对应界面也是个重点, 如果进错了用户就会出现: 我是谁, 我在哪, 我要干什么的疑问.
然后手机客户端为锁屏时, 是否可以正常推送.
然后还要根据登录状态进行测试: 退登后, 是否还会收到消息推送, 再次登录后, 是否能够显示多条推送的信息(我平板上有个原神, 基本不登, 更新时会上去领300原石)
当切换用户时, 推送的消息是否相符.
兼容性方面
这里有些部分是和Web端测试一致的, 当然也有一些是App所独有的(主要是解决适配的问题).
应用是否可在不同操作系统上使用(Andriod/IOS), 一般它们是两个不同的App, 但是功能相似. 然后就是它们是有不同版本的, 要对这个做回归测试. 我这里说一个栗子(不是尬黑).
环境: IPad AIR5, IOS17, QQ 9.0.65
问题: 分屏情况下的QQ空间显示异常行为.
步骤: 打开QQ, 分到左/右屏(占1/3), 将ipad横屏, 发现空间访客消息不存在, 再将ipad竖屏, 发现信息展示异常(说说内容占据比例过大.)
该问题到现在也未解决, 但之前是没有这个问题的(希望鹅能够解决这个问题哈哈哈).
然后就是屏幕尺寸的适应性测试, 手机品牌测试. 分辨率适配性等问题, 这里我就不展开讲了, 但肯定有这种问题.
App中断测试
想像一下这个场景, 打王者正打团呢, 突然, 很快啊, pia, 告诉你电量剩不到10%了, 游戏也给你停住了, 然后你让对面秒了, 这就很难受, 有时几秒就能决定战斗的胜负, 当然对于中断, 用户是不可忍受的, 因此这里要引入App独有的中断测试.
即App被手机行为打扰, App能否正常处理, 保证数据的正确性 -- 运行, 数据
主要核心功能在于实时的数据交换的页面做中断测试. 考察标准就是是否能够正常处理中断情况, 中断后是否能够恢复正常两个方面. (可以类比之前讲过的上下文).
常见的中断包括但不限于: 手机来电, 来短信, 闹铃, 耳机插拔, 断网, 断电, 低电量, 数据线插拔, 蓝牙连接, 前后台切换, 系统状态栏, App切换等.
这里就不展开说了, 提一下几个经典的场景:
爱奇艺播放过程中, 微信电话/电话中断:
正常: app暂停状态, 接听完电话后, 恢复正常(手动/自动)
异常: app卡死, 音视频不同步.
微信视频聊天, 低电量/电话:
正常: 聊天不中断, 关掉提示信息后, 正常通讯
异常: app卡死, 视频断开.
网络测试
不详细说明了, 直接引入分类.
测试 3G/4G/5G/wifi/热点, 网络的切换 -- 用户场景.
例如从wifi切换到4G是否有提示, 生活上的例子就比如当忙碌了一周后, 躺床上疯狂刷抖音, 把抖音都快刷爆了, 然后一开状态栏, 显示你使用了105.68G流量, 这对于一个忙碌的打工人绝对是沉重的打击, 当然有些软件就非常友好, 会提示当前用的是流量, 就非常舒服.
然后是测试有网/无网状态下是否能正常运行.
就比如从有网->无网的情况下是否能够给出提示, 缓存功能是否正常, 无网->有网的情况下, 数据是否正常恢复, 正常加载(重连).
弱网
关注弱网场景下是否有合理提示, 且是否有重发机制. 提交数据是否一直处理提交中, 是否有延迟, 数据交换的提醒, 数据多次提交(支付场景, 学校洗澡的那个某某校园app没有处理这个bug, 导致我洗澡充了两次钱, 望周知), 最大尝试次数.
安全性测试
之前在Web端测试时我们着重 讲了SQL注入, XSS注入, 数据传输安全等方面, 接下来介绍App中的特殊的安全性测试 --权限测试.
扣费风险: 就是在一些场景下会提示用户扣费.
隐私泄漏: 指需要用户权限才能访问用户一些私人信息(现在个人隐私泄漏真的很严重!)
开启相册/照相权限, 定位权限, 录音权限等.
注: 这些权限默认情况都是开放的, 需要用户选择.