一、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的日志的
- app测试总结
1.安全测试(权限) 1)软件权限:其中包括发送信息,拨打电话,链接网络,访问手机信息,联系人信息等等 2)数据在本地的存储.传输等 3)执行某些操作时导致的输入有效性验证.授权.数据加密等方面 4) ...
- APP测试总结1
1.安装.卸载测试 安装.卸载测试主要针对编译后源程序生成的APK安装文件 主要测试点: 1).生成的APK文件在真机上可以安装及下载 2).Android手机端的通用安装工具,如:豌豆荚及91助手等 ...
- 移动端APP测试总结
移动APP测试,除了基础功能测试测试方法外,需要额外关注以下方面: 兼容性测试 流量测试 电量测试 弱网络测试 稳定性测试 安全测试 环境相关测试 apk性能测试 兼容性测试 针对App通常会考虑这些 ...
- 转:APP测试总结
- APP测试报告
招标手机APP测试总结报告 作 者: 日 期: 2016-03-10 文档编号: 002 版 本: Ver 1.0 目 录 1.测试概述 1 1.1. 编写目的 1 1. ...
- 互联网App应用程序测试流程及测试总结
互联网App应用程序测试流程及测试总结 1. APP测试基本流程 1.1流程图 仍然为测试环境 Pass 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日 ...
- 聊天类APP功能测试总结
做聊天类的APP 测试已经有一段时间了,也许哪天就不做了,趁今天轻松点,记录下来. 聊天类的APP都差不多,不管是微信,还是米聊,还是QQ,如果抓住了共性,测试的点都差不太多. 我用编程的术语来比方功 ...
- 4.App非功能测试总结
移动app测试的另一重要方面是移动app的非功能需求.移动app在推出市场或进行进一步开发前,移动测试员有许多需要测试的问题. 早期开发阶段要进行的第一个测试应该是实用性测试.通常是由alpha用户或 ...
- APP安全性测试总结--网上转载
移动APP安全测试 老鹰a0人评论7103人阅读2018-08-06 16:22:07 1 移动APP安全风险分析 1.1 安全威胁分析 安全威胁从三个不同环节进行划分, ...
随机推荐
- 简单好用的General开发框架
1.开篇概述 从2004年学习编程,2007年学习C#以来,做的多半都是跟数据库打交道的工作,所以也积累了很多数据库方面的知识,用过一些ORM框架,从了解掌握到自己实现,慢慢积累了很多代码,直到201 ...
- 前端学习笔记2017.6.21-html是个什么东西
html有两种意思,html语言和html格式 html语言是一种面向人类的计算机语言,这是啥意思?人类用html这种语言描述出一个网页的样子,浏览器解析这个语言并展示出来. html格式是一种文件格 ...
- NSWindow上添加NSView
DBSCustomView *view = [[DBSCustomView alloc] initWithFrame:NSMakeRect(100, 100, 100, 100)]; [self.wi ...
- p3163 [CQOI2014]危桥
传送门 分析 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string ...
- ZROI2018普转提day7t1
传送门 分析 一道有意思的小题... 我们发现如果$(1,1)$为白色,则将其变为白色需要偶数次操作,而如果为黑色则需要奇数次操作 我们知道要让A赢需要奇数次操作,所以我们只需要判断$(1,1)$的颜 ...
- java 中一个char包含几个字节
背景 char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char char在设计之初的时候被用来存储字符,可是世界上有那 ...
- (数组)字符串的回文构词法( anagrams)
题目:https://www.nowcoder.com/practice/e84e273b31e74427b2a977cbfe60eaf4?tpId=46&tqId=29130&tPa ...
- HDU 5038 Grade (水题,坑题)
题意:给 n 个数,输出众数,但是如果所有的频率都相同但数不同输出 Bad Mushroom. 析:直接记录个数直接暴力就,就是要注意只有一种频率的时候. 代码如下: #pragma comment( ...
- 《Maven实战》笔记-4-生命周期和插件
除了坐标.依赖以及仓库外,Maven另外两个核心概念是生命周期和插件. 一.生命周期 Maven的生命周期是抽象的,其本身不做任务实际的工作,实际的任务(如编译源代码)都交由插件来完成. 三套生命周期 ...
- 多线程学习-基础( 十)一个synchronized(){/*代码块*/}简单案例分析
一.提出疑惑 上一篇文章中,分析了synchronized关键字的用法.但是好像遗漏了一种情况. 那就是: synchronized(obj){/*同步块代码*/} 一般有以下几种情况: (1)syn ...