APP测试

APP应用系统架构

  •  相同点
    • APP和web使用的后端服务是相同的
    • 前后端都使用HTTP协议进行交互(也有部分APP用socket交互)
  • 不同点
    • APP是C/S结构,web是B/S结构
    • APP前后端交互的数据格式以json为主,web前后端交互的数据格式以HTML为主

JSON(JavaScript object notation)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。

JSON最常用的格式是对象的键值对,例如:

{"firstName": "Brett", "lastName": "McLaughLin"}

APP项目环境及发布平台

APP项目环境(后端)

一般公司内部开发,测试人员会使用不同的环境,以隔离工作过程中彼此之间的干扰。同时,上线给用户使用的产品也会单独部署环境。

  • 开发环境:指开发人员进行开发时调试运行的环境
  • 测试环境:提供测试人员使用,用于测试人员执行测试,回归缺陷
  • 预发布环境:这个环境中,一般会连接生产环境的数据库,使用生产环境的数据库来进行测试

预发布环境中只针对基本业务进行测试

测试写的业务操作时,只能使用自己构造的数据

升级涉及到表结构变更时,可以将生产环境数据库数据备份到测试库中,升级并测试

  • 生产环境:指正式提供对外服务的环境,产品的实际用户使用的环境

预发布环境后,正式发布生产环境之前,一般会进行灰度发布。

灰度发布:由于一个项目,一般线上部署时有多台机器运行,所以灰度1台至3台,看看新功能是否ok,如果失败则只需要回滚几台,比较方便。

APP应用发布(前端)

APP开发完成后,相应的开发人员会打出应用程序包,由测试人员安装测试

  • 安卓:APK测试包
  • IOS:IPA测试包

应用内测分发平台

在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些免费的应用内测分发平台。将应用测试包上传到这些平台上,可以生产对应的二维码,直接扫码进行应用安装。例:蒲公英。

应用线上发布平台

产品测试完成后要在线上进行发布,让用户进行下载使用。

  • 安卓应用:豌豆荚,应用宝,360手机助手,各类手机品牌商城
  • IOS应用:APP store,itools

线上发布流程:APK/IPA测试完成--提交应用市场审核--添加渠道号--渠道包测试--正式上线

 敏捷开发模式

瀑布模型

 互联网行业

 敏捷开发

概念:

敏捷开发以用户的需求进化为核心,采用迭代,循序渐进的方法进行软件开发。

在敏捷开发中,软件项目在构建初期被分成多个子项目,各个子项目的成果都经过测试,具备可视,可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷框架模型:

 Scrum介绍

 Scrum是一个敏捷开发框架,是一个增量的,迭代的开发过程。在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代周期成为一个Sprint(Sprint:项目开发过程中最小迭代周期),每个Sprint的周期建议为2-4周。在Scrum中,将产品Backlog(产品待办列表)按商业价值排出需求列表。在每个迭代中开发团队从产品Backlog挑选出最有价值的需求进行开发,实现完成后产品推出市场,进入下一个迭代。

Scrum的三种角色

Product Owner(产品负责人)

定义所有的产品功能

决定产品发布的内容及日期

根据市场变化对需要开发的功能排列优先顺序

Scrum Master(项目经理)

领导团队完成Scrum的实践以及体现其价值

确保团队的人胜任其工作,并保持高效的生产率

保护团队不受外界无端影响

Dev Team(开发团队)

规模(经典团队一般5到9人)

成员组成:程序员,测试员,用户体验设计师

主要职责:实现客户需求

 Scrum敏捷开发流程:

  1. 产品负责人收集需求,转化为产品功能列表
  2. 启动迭代的计划会,评审产品功能列表,挑选优先级高的需求作为迭代任务
  3. 项目组成员完成迭代任务的开发,测试工作
  4. 迭代结束后,开评审会,评估当前迭代任务的完成情况
  5. 开反思会,总结迭代过程中的好与不好的地方
  6. 下一迭代,循环2-5步

APP应用测试流程(一次迭代)

 学车不APP项目说明

项目概述

学车不APP是一款手机学车软件,可以帮助广大用户在线学车,通过手机预约教练,在线进行模拟考试,利用自己的零碎时间进行驾考学习。

项目功能

学车不APP功能包括报名,学车,陪练,驾考圈,我的等功能模块。

 

 APP测试要点

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

业务功能测试

显性需求

根据软件说明,设计文档或用户需求验证APP的各个功能的实现

隐性需求

相关业务:功能影响到的相关业务

其他角度:分支流程,逆向操作,异常操作

补充精简:测试策略,业务知识,测试经验

兼容性测试

APP在不同的机型上由于软件,硬件等不同可能出现各种各样的问题,因此需要做兼容性测试。

兼容性测试关注点

  1. 手机型号
    1. 覆盖市场主流机型(Android:三星,小米,oppo,华为)
    2. 考虑APP线上用户机型排名
  2. 系统版本
    1. 安卓(4.4,5.1,6.0,7.0)
    2. IOS(9.x,10.x,11.x,12.x)
  3. 屏幕尺寸,分辨率
    1. 分辨率(1080*1920,720*1280)
    2. 屏幕尺寸(5.5,4.7)
  4. 网络(2G,3G,4G,5G,WIFI)
  5. 应用兼容性
    1. 与手机硬件兼容(home键,电源键,音量调节等)
    2. 与外部硬件兼容(耳机,蓝牙等)
    3. 与操作系统软件兼容(wlan设置,系统时间调节,lbs定位等)
    4. 与其他APP兼容(后台在播放音乐,进入动态页面点击动态视频的播放,系统如何处理)

流量研究院https://tongji.baidu.com/researchhttps://tongji.baidu.com/research

安装卸载升级测试

APP是客户端程序,客户端程序就需要提前进行安装才能使用,因此需要测试安装,卸载,升级操作。

安装测试关注点

正常场景:

  • 在不同的操作系统版本上安装
  • 从不同的安装渠道安装(APP商城,手机助手,直接下载apk或ipa文件安装)
  • 不同的安装路径(安装到手机上,安装到sd卡上)

异常场景:

  • 安装时出现异常(关机,断网),恢复后能否继续安装
  • 安装时存储空间不足
  • 安装时手动取消后再次安装
  • 正在运行时覆盖安装
  • 低版本覆盖安装高版本
  • 卸载后安装

卸载测试关注点

  • 正常卸载(APP手动卸载,工具卸载)
  • 运行时卸载
  • 取消卸载
  • 卸载异常中断
  • 卸载后无数据残留

升级测试关注点

  • 从临近版本升级
  • 跨版本升级
  • 不同渠道升级(应用商城,手机助手)
  • 升级提醒成功(可不提醒,可以提示升级,强制升级)
  • 应用内升级时非wifi提醒

升级后要观察升级前的数据正常(当数据结构改变而开发没有处理好时很容易出现升级前的数据混乱)

交叉事件测试

交叉测试又叫冲突测试或干扰测试

指一个功能正在执行的过程中,另外一个事件或操作对该过程进行干扰的测试。例:APP前台/后台运行同时接听来电或者下载文件等待。

交叉事件测试关注点

如何测试:模拟用户场景(所有可能会影响APP正常运行的场景)

  • APP运行时接打电话
  • APP运行时收发信息
  • APP运行时查看应用推送
  • APP运行时接上蓝牙设备
  • APP运行时接收文件弹窗提醒
  • APP运行时旋转屏幕
  • APP运行时切换网络(4G,WiFi)
  • APP运行时使用相机,计算器等手机自带应用
  • APP运行时点量告警,插播充电器

push消息测试

APP使用push消息的原因:

消息推送场景:

产品角度:功能需要,如:资讯类产品的新闻推送,工具类产品的公告推送等等

运营角度:活动运营需要,如:电商类产品的促销活动,召回用户/提高活跃度等等

消息推送原理:

 push消息推送实质:

实际上,是服务器有新消息需推送给用户时,先发送给应用APP,应用APP再发送给用户。

 push消息推送方式:

  • 操作系统级别的消息推送服务

IOS

Android:C2DM(Cloud to Device Messaging)

  •  调用第三方推送平台

手机厂商类:小米推送,华为推送

第三方平台类:友盟推送,极光推送,云巴(基于MQTT)

BAT大厂的平台推送:阿里云移动推送,腾讯信鸽推送,百度云推送

  • 自己搭建推送服务器

好处:功能好,性能强,安全性高

坏处:成本高

push推送设置:

APP服务器设置:

push消息针对不同的用户群体:全体用户,部分用户,特定用户

手机端设置:

push消息推送是否接受通知,提醒位置等

push消息测试关注点:

  • push消息是否按指定业务规则发送
  • 当push消息时针对特定用户时,检查收到的push与用户身份是否相符
  • 设置不接收推送消息时,用户是否会收到push消息
  • 设置push消息显示的位置,是否与配置一致
  • 收到push消息,是否能正常打开
  • APP在前台使用时,收到push消息如何提示
  • APP在后台运行时,收到push消息如何提示
  • APP离线,是否能收到push消息

性能测试

性能是衡量APP质量的一个重要指标

APP性能测试常见指标:

内存,CPU,流量,电量,启动速度,流畅度等

 性能测试关注点

APP使用时对CPU,内存的占用情况

APP使用时是否流程

APP使用时电量流量的消耗情况

APP的启动时间是否过长

性能测试工具---GT

GT简介:

GT(随身调)Android版是腾讯MIG专项测试组自行研发的APP随身调测平台,它是直接运行在手机上的“集成调测环境”(ITE,integrated test environment)。

之所以叫“集成调测环境”,是因为仅用GT即可独立完成如下针对AUT的测试工作:

  • 基础性能测试:手机整机或者手机上安装的任何一个APP的CPU,内存,网络流量,流畅度/帧率,电量等基础性能指标的实时展示,历史数据采集及excel格式存储,曲线绘制等
  • 日志查看:APP的Logcat日志查看,便于直接用手机现场定位APP功能异常,crash
  • 网络数据包抓包:直接用手机抓包保存成pcap文件,下载到PC后用wireshark查看

GT安装:

  • 可独立安装的GT(apk,IOS无该版本),像普通APP一样安装
  • GT SDK:将GT的SDK嵌入到被调测的应用工程例里

GT基本使用:

  • 安装:手机用root权限
  • 进入AUT界面,配置要监控的指标
  • 进入参数页面,选择要统计的参数,选择需要实时监控的数据
  • 配置日志开头为logcat为on
  • 进入APP进行测试
  • 回到GT界面,在参数界面查看监控指标的数据统计
  • 进入日志,查看响应的日志记录

CPU

GT工具提供了两个CPU的监控指标:CPU和jiffies

CPU:

整机的CPU使用水平,即当前手机的CPU整体使用率

计算公式:

在Linux系统下,CPU利用率分为用户态,系统态和空闲态

用户态:表示CPU处于应用程序执行的时间

系统态:表示系统内核执行的时间

空闲态:表示空闲系统进程执行的时间

CPU使用率=CPU执行非系统空闲进程时间/CPU总的执行时间

jiffies:

表示自开机以来,应用程序消耗的CPU时间片的总数

CPU问题产生的影响

CPU使用长时间处于90%以上

手机发热,耗电量增加

反应变慢,引起ANR(application not responding)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值