APP测试总结2
一、App测试流程与web项目流程区别
1.对UI要求比较高,需要更加注重用户体验。对于一个小小的屏幕,如何让用户使用更加轻便、简介、易用。
2.App是调用服务端接口展示数据。我们测试需要可以判断问题是客户端还是服务端接口返回数据错误。
3.App网络测试。手机对网络要求比较特别,网络分2G,3G,wifi。有条件的话,可以分别测试下。
4.App需要版本升级功能。(非常重要) 5.Push推送测试(现在客户基本都挺重视此功能)
二、服务端测试
服务端一般会提供JSON格式的数据给客户端,所以我们在服务端需要进行接口测试,确保服务端提供的接口并转换的JSON内容正确,对分支、异常流有相应的放置。 我们可以用RESTClient进行接口测试(接口需要开发提供文档,如何调用接口)
三、客户端测试
1. 网络
1) 无网络,执行需要网络的操作,要有友好的提示,确保程序不出现crash。由于 网络出现crash都属于bug。
2) 内网测试时,要注意选择到外网操作时的异常处理。
3) 网络信号不好时,检查功能状态是否正常,确保不因提交数据失败而造成crash
4) 网络信号不好时,检查数据是否会一直处于提交中的状态,有无超时限制。如 遇数据交换失败时要给予提示
5) 网络信号不好时,执行操作后,在回调没有完成的情况下,退出本页面或者执 行其他操作的情况,有无异常情况。此问题也会经常出现程序crash
2. 应用的前后台切换
1) app切换到后台,再回到app,检查是否停留在上一次操作界面
2) app切换到后台,再回到app,检查功能及应用状态是否正常
3) app切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常,尤 其是对于从后台切换前台数据有自动更新的时候。
4) 手机锁屏解屏后进入app注意是否会崩溃,功能状态是否正常,尤其是对于从 后台切换前台数据有自动更新的时候。
5) 当app使用过程中有电话进来中断后再切换到app,功能状态是否正常
6) 当杀掉app进程后,再开启app,app能否正常启动
7) 出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在 (譬如强制更新提示框)。有时候会出现应用自动跳过提示框的缺陷
8) 对于有数据交换的页面,每个页面都必须要进行后台切换、锁屏测试。这种页 面最容易出现崩溃
3. 数据更新
根据应用的业务规则,以及数据更新量的情况,来确定最优的数据更新方案。
1) 需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要 手动+自动刷新
2) 确定哪些地方从后台切换回前台时需要进行数据更新
3) 根据业务、速度及流量的合理分配,确定哪些内容需要实时更新,哪些需要定 时更新
4) 确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这 样才能有针对性的进行相应测试
5) 检查有数据交换的地方,均有相应的异常处理
4. Push(消息推送)测试
1) 检查push消息是否按照指定的业务规则发送
2) 检查不接受推送消息时,检查用户不会再接收到push
3) 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到push。 再非免打扰时间段,用户能正常收到push
4) 需要注意的是,Ios如果是开发刷上来的app,是没有推送的。需要自己网页上 下载或者拿到ipa安装包自己使用手机助手安装的才有推送
5. 客户端更新
客户端更新一般是通过与服务器返回的当前版本号比较来判断是否有更新。我们测试模拟更新时,首先要了解到服务端当前版本号(1.0),然后让客户端打高版本的安装包(2.0),通知服务端改服务端版本号也改成2.0,把2.0安装包放服务端后。即可开始升级测试。
1) 当客户端有新版本时,有更新提示
2) 当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下 次启动app时,仍能出现更新提示。如果是正式app已经上线,那么升级时一定要考虑老版本是否能正常使用。
3) 当版本为强制升级版时,当给出强制更新后用户没有做更新时,退出客户端或 者切换到后台,下次启动app时,仍出现强制升级提示
4) 可以不删除客户端,覆盖安装。覆盖安装后,登录信息都应该保存的。
5) 更新成功后,检查是否是新版本。并且不能再提示升级
6. 免登录
很多应用提供免登录功能,当应用开启时自动以上一次登录的用户身份来使用app
1) 考虑无网络情况时能否正常进入免登录状态
2) 切换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户 退出
3) App切换到后台再切换到前台的校验
4) 密码更换后,检查有数据交换时是否进行了有效身份的校验
5) 检查用户主动退出登录后,下次启动app,应停留在登录页面
7. 离线浏览 很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。
1) 在无网络情况可以本地浏览本地数据
2) 退出app再开启app时能正常浏览
3) 切换到后台再切回前台可以正常浏览
4) 锁屏后再解屏回到应用前台可以正常浏览
5) 在对服务端的数据有更新时会给予离线的相应提示
8. 时间测试
客户端可以自行设置手机的时区、时间因此需要校验该设置对app的影响。 时间一般需要根据服务器时间再转换成客户端对应的时区来展示,这样的用户体验比较好。譬如发表一篇微博在服务端记录是10:00,此时,华盛顿时间为22:00,客户端去浏览时,如果设置的是华盛顿时间,则显示发表时间为22:00.
四、零散通用内容测试
1. 对模拟键盘的处理,例如键盘展开后,点击其他位置是否正常首期,键盘使用完成 后,能否正常收起
2. 同事或者快速点击不同的两个按键,检查程序是否正常,此问题经常会crash,或 者出现两个功能界面并存的情况
3. 较快速点击同一按钮多次,检查程序是否正常,一般情况下需要对按钮做置灰处理, 在响应成功之前,只允许操作一次,否则可能会产生重复数据
4. 文字特殊符号的展示显示能正常输入,不转义显示,如<>不会显示成;
5.考虑界面的完整性,在界面数据显示宽度上,我们要考虑是自适应,还是自动换行,当自适应的时候,程序会在显示不全的时候自动显示…,此时,就要考虑哪些内容是可以…,哪些内容是必须要完整显示的
6. 字体,颜色,视觉搭配的感观测试也是很重要的一点,如果你感觉看上去很模糊, 或者看着很累,说明设计上肯定是存在一定问题
五、问题排查
我们在客户端测试时,经常会碰到程序crash,有的是可以重现的。有的是莫名其妙的闪退,可以找开发debug,譬如ios。连上xcode运行,debug。Ios的话,你的应用的历史crash都是可以在苹果mac机器上看到crash的日志的