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

【测试】APP测试

长期更新,建议关注、收藏。


目录

  • APP概述
  • 功能测试🌟
  • 兼容性测试🌟
  • 安装、卸载、升级测试🌟
  • 交叉事件测试🌟
  • PUSH测试🌟
  • 性能测试
    • CPU
    • 内存
    • 流量🌟
    • 电量
    • 流畅度
    • 启动速度
  • 用户体验测试🌟
  • 稳定性测试

在这里插入图片描述

  • app 项目环境与web项目环境的异同
    1.后端服务器相同;
    2.部分app用socket交互,多数用http协议交互
    3.app是c/s架构,web是b/s架构
    4.app前后端交互数据格式以JSON为主,web是JSON、HTML均有
  • app软件包类型
    Android-.apk
    IOS-.ipa
  • app内部发布平台
    应用内测分发平台,如蒲公英、Testlink
    将测试包上传到平台,生成对应二维码,应用安装
  • app线上发布平台
    注意标注版本号,(名字和配置文件中都要修改好)
  • 测试过程有什么不一样 与web相比
    先看目录,之后总结。

APP概述

功能测试🌟

兼容性测试🌟

  1. 覆盖主流机型、系统版本、分辨率、屏幕(刘海屏、水滴屏、曲面屏、折叠屏)、尺寸、网络(尤其是网络切换):可以查看百度流量研究院、使用雷电模拟器、云测平台
  2. 应用兼容性(手机硬件、外部硬件、操作系统、其他APP)
    手机硬件:home键、电源键、音量调节等
    外部硬件设备:耳机、蓝牙
    操作系统:WLAN设置(WLAN =Wireless Local Area Network)、系统时间调节、LBS定位(Location-Based Services)
    其他app兼容:后台播放音乐时,点击其他音频播放

安装、卸载、升级测试🌟

  • 安装
  1. 不同操作系统版本
  2. 不同安装渠道(app商城、直接下载.apk&.ipa安装)
  3. 不同安装路径(手机 or SD卡)
  4. 安装时关机/断网,恢复后看是否能继续安装
  5. 存储空间不足
  6. 手动取消安装/暂停安装后再次安装
  7. 正在运行时覆盖安装(后台运行/前台运行)
  8. 低版本安装覆盖高版本
  9. 卸载后安装(卸载后是否会清除数据)
  • 卸载
  1. 正常卸载 通过app或手机卸载
  2. 后台运行时卸载
  3. 取消卸载(第三方软件、二次弹窗确认取消)
  4. 卸载异常中断(突然关机)
  5. 卸载后无数据残留(需要用户提示确认)
  • 升级
  1. 从临近版本升级(上一次发布的版本)
  2. 跨版本升级(当前版本为n 则n+1,n+2,n-1,n-2)
  3. 不同渠道升级
  4. 升级后提醒 以及 升级前是否提醒 (强制升级)
  5. 应用内升级时非Wi-Fi提醒
  6. 升级后观察升级前的数据是否正常
  7. 验证当前版本是否能升级

交叉事件测试🌟

又称干扰测试 冲突测试。
app运行时接打电话、收发信息、查看应用推送、接上蓝牙设备、接受文件弹窗提醒、旋转屏幕、切换网络、使用手机自带应用、电量告警、插拔充电器。

PUSH测试🌟

就是消息推送。
一般都是客户端被动的方式即push,当服务器有更新信息时主动发送到客户端,基于长连接,更节省资源。
服务器有更新信息->推送服务器->客户端app->用户

  • 常见推送服务器分类
    1.操作系统级别的消息推送服务器。
    IOS:APNs(Apple Push Notification service)
    Android:C2DM(Cloud toDevice Messaging)
    2.自己搭建推送服务器,性能强、安全性高、成本高
    3.第三方推送平台:手机厂商类、第三方平台类、BAT大厂平台推送
    手机厂商类:小米推送、华为推送。
    第三方平台类:友盟推送、极光推送、云巴(基于MQTT)
    BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送
  • 设置内容
    app服务器设置:推送内容、推送时机、推送频率、推送人群(全部用户/部分用户)
    手机端测试:是否接收通知,提醒位置
  • 关注点
    • app服务器
      是否按指定业务规则发送
      指定特定用户时检查收到的用户是否身份相符
    • 手机端设置
      设置不接收后能否接收到push消息
      设置显示的位置是否与配置一致
      收到push消息,是否能正常打开跳转
    • 其他
      前台使用时,push消息如何提示
      后台运行时,如何提示
      app离线,能否接收到push消息
    • 接收时设置
      接收消息但不提醒
      接收消息且提醒(静音/震动/响铃)
      接收消息但不显示消息内容

性能测试

运用SoloPi,无线化、非侵入式的安卓自动化工具。
支持录制回放、性能测试、一机多控。

  • 一机多控:操作一台主机设备控制多台从机设备,提升兼容性测试的效率。
  • 性能测试:还可以实现性能加压。

安装:.apk版本 拖入模拟器即可安装

  • 使用说明
    选择测试应用,勾选监控指标,手机屏幕上出现悬浮窗
    终端输入adb tcpip 5555即可连接上
  • 重点关注
    CPU、内存占用情况
    流畅度
    电量、流量消耗情况
    启动时间是否过长
    是否能长时间稳定运行

CPU

  • 多个程序都在抢占cpu,那怎么运行?
    通过时间片分配
  • cpu图像
    异常情况:长期在80%以上徘徊,导致手机发烫、卡顿、电量消耗大
    在这里插入图片描述
    清空后台进程即可恢复
    正常情况:
    在这里插入图片描述
  • 这个基线要看具体的基线要求是多少,如果没有基线,默认90%

内存

程序运行时数据和代码都放入内存中,当内存不足时程序无法正常运行。

  • SoloPi工具提供的监控指标
    • 私有内存Private dirty
      进程独占内存,进程销毁时可以回收这些量
    • 实际使用内存PSS
      加入跨进程共享页,按比例计算PSS,准确得到进程占用的实际物理内存。
      在这里插入图片描述

跨进程共享页(shared memory page)是操作系统中一种允许不同进程之间共享内存区域的技术。通过跨进程共享内存,进程能够直接访问彼此的内存数据,而无需经过操作系统的常规通信机制(如管道、消息队列、套接字等)。这种共享机制通常用于高效的数据传递或通信,尤其是在需要频繁交换数据的多进程环境中。

  • 常见问题
    • 内存泄漏
      memory leak 申请内存后无法释放已申请的内存空间,导致最终用尽内存。
    • 内存溢出
      out of memory申请内存时发现没有足够内存可用
      两者之间的联系:memory leak最终会导致out of memory
  • 表现
    PSS持续增长,有可能就是内存泄漏。
    在这里插入图片描述
    程序出现崩溃crash,可能是内存溢出。内存持续增加突然降为0,可能是应用停止运行。
    在这里插入图片描述
    正常的曲线应该是一个波浪但平稳的。

流量🌟

电量

流畅度

启动速度

用户体验测试🌟

UI界面测试(原型和UI图设计)
易用性测试(空数据提示/层次是否过深/操作步骤是否过多/按钮位置)
横竖屏测试(内容显示是否异常,特别是有表格的情况)
其他辅助功能(盲人模式/放大模式)
tips:真人体验 目标群体,新人群体

稳定性测试


http://www.mrgr.cn/news/81019.html

相关文章:

  • 抓包 127.0.0.1 (loopback) 使用 tcpdump+wireshark
  • QT打包【非单个exe】
  • JS信息收集(小迪网络安全笔记~
  • 2024年12月16日Github流行趋势
  • 测试工程师八股文05|功能测试、业务测试
  • 【Linux系列】使用 watch 命令实时查看容器状态
  • Go by Example学习
  • LeetCode 刷题笔记
  • qemu源码解析【06】qemu启动初始化流程
  • Ubuntu 22.04,Rime / luna_pinyin.schema 输入法:外挂词库,自定义词库 (****) OK
  • Docker 入门:如何使用 Docker 容器化 AI 项目(一)
  • ubuntu 安装更新 ollama新版本
  • CAD xy坐标标注(跟随鼠标位置实时移动)——C#插件实现
  • 备忘一个FDBatchMove数据转存的问题
  • 分析excel硕士序列数据提示词——包含对特征的筛选,非0值的过滤
  • Halcon单相机+机器人=眼在手上#标定心得
  • SQL进阶技巧:如何计算商品需求与到货队列表进出计划?
  • Linux Shell 脚本编程基础知识篇(一)
  • Restaurants WebAPI(三)——Serilog/FluenValidation
  • Jenkins
  • lc148链表排序——链表版归并排序
  • AI的进阶之路:从机器学习到深度学习的演变(二)
  • 【老白学 Java】泛型应用 - 卡拉 OK(四)
  • git merge 冲突 解决 show case
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发二十一.2,RTP协议-RTP协议概述,协议详情
  • JS数组方法汇总