当前位置: 首页 > news >正文

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的日志的

转载于:https://www.cnblogs.com/yinrw/p/5837872.html

相关文章:

  • iOS视频压缩存储至本地并上传至服务器-b
  • js实现水平伸缩菜单
  • knockout中computed和pureComputed的区别
  • java Nio零散知识点整理
  • Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式
  • 直播相关知识收集
  • 每日一题_Python.利用yield生成器实现协程下的tps透明传输CS测试
  • Tomcat 容器 POI 生成 Excel 文件 可能会使用到 temp 临时文件夹
  • Windows10 查看 自己笔记本的电池状况
  • 二维码生成工厂
  • 解决Idea创建maven-archetype-webapp项目无java目录的问题
  • 项目笔记之订单号生成规则以及方法,第一篇!
  • 用好阿里云分析型数据库大存储实例,大幅降低大数据应用成本
  • python 测试驱动开发的简单例子
  • win10 + uefi
  • 0x05 Python数据分析,Anaconda八斩刀
  • Android框架之Volley
  • C++11: atomic 头文件
  • CODING 缺陷管理功能正式开始公测
  • js写一个简单的选项卡
  • k个最大的数及变种小结
  • NSTimer学习笔记
  • Web标准制定过程
  • windows-nginx-https-本地配置
  • 分布式任务队列Celery
  • 基于axios的vue插件,让http请求更简单
  • 警报:线上事故之CountDownLatch的威力
  • 排序(1):冒泡排序
  • 使用 QuickBI 搭建酷炫可视化分析
  • 写给高年级小学生看的《Bash 指南》
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​2020 年大前端技术趋势解读
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # .NET Framework中使用命名管道进行进程间通信
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (k8s中)docker netty OOM问题记录
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (推荐)叮当——中文语音对话机器人
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)http协议
  • ***检测工具之RKHunter AIDE
  • .Net core 6.0 升8.0
  • .NET 设计模式初探
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题