特定平台上的注意事项
对于任何项目团队成员来说,了解相关平台的业务、技术和设计上的限制,都是至关重要的。
那么,移动端App的测试人员应该找出哪些平台相关的问题呢?
· 是否遵照了这个特定平台的设计规范?
· 与竞争对手以及行业内的设计相比如何?
· 是否适应外围设备?
· 触摸屏支持手势吗,如:轻拍、双击、长按、拖动、摇动、夹捏、轻拂、滑动?
· 这个App可以被理解吗?
· 当转动设备的方向时,有什么变化?
· 可以使用地图和GPS吗?
· 有用户指南吗?
· 电子邮件的工作流程友好吗?
· 通过网络分享时,它运行得流畅吗?是否整合了其他社交应用或网站?
· 当用户正在进行多任务工作,并在不同App间切换的时候,它还运行正常吗?
· 当用户更新它时,它是否会显示时间进度?
· 默认设置如何?有经过调整吗?
· 使用音效会有不同吗?
案例:ChimpStats
ChimpStats是iPad上一个查看邮件广告详情的应用。我第一次使用这个应用是处于横屏模式。当我需要输入API密码的时候,我被困住了。我根本不能在水平模式中输入API密码,直到切换成竖屏模式,才输入成功。
连接和中断的问题当连接断断续续或是意外中断时,很多有趣的事情就可能发生了。
你是否尝试过在以下场景中使用App:
· 走动环境下?
· Wi-Fi连接下?
· 没有Wi-Fi的情况下?
· 3G模式下?
· 间歇性地连接?
· 设置为飞行模式?
· 一个电话打进来时?
· 接收到一条信息时?
· 接收到一个提醒通知时?
· 在电量很低甚至自动关机时?
· 被强制更新时?
· 收到一条语音留言时?
这类测试最容易发现错误和Bug。我强烈建议你在这些情况下进行测试(不仅仅只是开机、确认它可以正常工作,还要尝试用户使用的整个流程,并在特定的时间间歇内强制连接和中断)。
· 这个App提供了足够多的反馈吗?
· 数据传输为用户所知吗?
· 它会慢慢停止,然后崩溃吗?
· 开启时会发生什么?
· 任务完成中会发生什么?
· 是否可能丢失未保存的操作?
· 你可以忽视通知提醒吗?忽视后会发生什么?
· 你可以对通知提醒做出响应吗?响应后会发生什么?
· 对某些问题,使用错误信息是否恰当?
· 当登录过期或超时会发生什么?
App的维护
想要加快整个测试的过程很简单,只需测试一次就一劳永逸了,对吗?请三思。
此刻我遇到的一个问题是: iPad上的一些App在更新后,再也不能下载了。对于一个用户来说,这是非常令人沮丧的。
可能,这也是开发者控制不了的。谁知道呢?我只知道它对于用户来讲是不能用的。我也尝试卸载App,然后重装,但这个问题始终未能解决。我在网上大量的搜索,除了找到一些关于更新操作系统的建议外,没有任何其他解决方式。可能,下次有空时候,我还会再试试看。
关键问题在于:如果一个应用只被测试过一次,且只有一次(或仅在很短的一段时间内测试过),很多问题你都发现不了。一个App自身可能不会发现变化,但外界条件却可以让这些问题发生。
当外界环境持续变化时,App又会受到哪些影响呢?让我们问问自己:
· 我可以下载这个App吗?
· 我可以下载并安装更新吗?
· 更新之后还能使用吗?
· 当很多App处于等待更新状态时,我能更新它吗?
· 系统更新后,它会发生什么?
· 系统未更新,它又会发生什么?
· 它会通过iTunes自动同步下载到其他设备吗?
· 它自动执行任务或测试有意义吗?
· 它会连接到网络服务吗?这会带来什么不同?
移动端的App每一个版本发布后,最好都去测试一下。每次发布新版本时,先定义最高优先级测试,确保其能在各种条件下进行(主要是在主流的平台上)。随着时间的推移,测试可以变得自动化。但请记住,自动化不是灵丹妙药,发现问题,只能通过人的眼睛。
案例:iPhone上的Analytics应用
我使用这个App已经两年了,之前它一直没有什么问题。但是现在,它却显示出我某些网站数据为零(但实际上,不止一个人一个月内访问过我的网站!)。从App Store的评论来看,我不是唯一一个遇到这个问题的人。
另外一个案例是iPhone上的Twitter。更新并启动这个App后,我瞬间看到了如下这个提示语:“你的时间线数据显示为空,你至今没有关注任何人” (但我是拥有5年经验的活跃用户)。我担心了一会儿,庆幸的是,这个消息很快就消失,然后加载出历史数据。
测试不是对错判断
我们讨论了移动测试的一些方面,但这些前提是:带着问题,才能发现问题。
通常,测试被认为是完全合乎逻辑的、可计划的和可预测的,过程包括:测试脚本和测试计划、通过和失败、正确和错误的反馈。走完这些测试流程就离真相不远了。
当然,如果必要,我们可以用上述方法进行测试,但这并不是测试的目的。我们不仅是为了创建测试用例、发现Bug,更重要的是找到关键的问题,为项目组决定什么时候发布App提供有价值的信息。而找到那些关键问题的最好方法就是:提问!
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/