首先来看app端和web端的区别,首先是两者的架构不同:
APP端:CS架构,有客户端和服务器,使用需下载安装,运行主要消耗客户端本地硬件资源(如手机内存、CPU、电量等)。
Web端:BS架构,基于浏览器访问,无需下载安装,电脑自带浏览器即可使用。
APP测试分类
APP端测试分为三种:
- 功能测试
- 不管是Web端还是APP端,都要对业务功能、单页面功能或单模块功能进行逐一测试,保证功能性正确使用。
- 性能测试
- APP端是CS架构,安装在客户端本地运行,使用过程中消耗本地客户端资源(如内存、CPU、电量等),需测试APP端消耗资源的使用情况,保证性能过关。
- 专项测试
- 安装卸载升级测试:对APP的安装、卸载、升级过程进行测试。
- Push消息推送测试:验证服务器推送消息到APP端客户端的推送规则。
- 交叉事件测试:测试APP在运行过程中受到其他干扰(如电话、短信、其他APP)时的情况。
- 用户体验测试:关注用户在使用APP过程中的感受和体验。
- 兼容性测试:测试APP在不同设备、操作系统、屏幕分辨率等环境下的兼容性。

APP发布
APP发布是将开发编写好的APP应用程序通过特殊渠道发布给用户,供用户下载安装和使用。根据发布用户对象,分为内部发布渠道(针对内部测试人员)和线上发布渠道(针对正常用户)。
内部发布
采用内测发布平台,如蒲公英、TestLink等。进入公司后,测试人员需与公司确定使用的平台,从该平台获取APP安装包。分为三步:
- 开发将编写好的APP包上传到内测平台软件,平台生成二维码。
- 测试人员扫码并绑定对应ID。
- 测试人员直接下载安装APP,开始相关测试。
线上发布
产品测试完成后,将APP发布到各个平台上,发布步骤也分为三步:
- 开发者账号注册,申请发布平台。
- 在开发包中绑定平台对应的ID。
- 上传发布包到平台,平台进行审核,审核通过后发布成功,用户可在商店下载。例如在应用宝中搜索微信并安装,说明审核通过且已发布到平台。
- 一般线上发布过程由开发人员负责。
- 软件包加入平台ID后上传至发布平台时,需测试人员验证核心业务功能。
发布环境与策略
正常情况下有三套环境:
- 开发环境:开发阶段使用。
- 测试环境:测试人员使用。
- 预发布环境/生产环境:服务器集群,有多台服务器电脑。
发布生产环境时,先在少数服务器(1 - 3台)上发布,运行一段时间稳定后,再将最新服务程序发布到所有服务器。目的是减少损失,避免APP在生产环境下出现异常导致所有服务器出现问题。这种策略也叫做灰度发布。
APP功能测试
功能测试是使用技术手段验证程序交付的功能是否符合应用需求,主要测试对象为程序的核心业务和业务中的单功能或单页面。
功能测试主要流程分为六步:
- 需求分析:明确程序要交付的功能及其规则。
- 编写测试计划:根据组内实际情况,体现测试方法和模块负责人。
- 设计测试用例:提取测试点覆盖需求,将测试点转换成可执行的测试用例文档。
- 执行测试用例:根据编写的测试用例文档开始测试。
- 缺陷管理:若发现需求与实际交付不符,产生缺陷,需进行缺陷管理(提交、验证、关闭)。
- 编写测试报告:总结测试过程、bug分布、用例执行情况及不足,为下次改进提供参考。
在用例设计上,共有四种方法:
- 等价类:解决数据穷举问题,分为有效等价类和无效等价类。
- 边界值:解决边界长度范围问题。
- 判定表:解决多条件之间有约束、依赖和限制的问题。
- 流程图法:针对核心业务流程进行测试覆盖。
功能测试不分Web和APP,主要针对程序功能测试,使用的方法和流程相同。
APP测试环境
APP 测试分功能测试点设计和测试点执行两部分。设计时可依据需求文档和原型图进行,但执行测试点(包括非功能测试如专项、性能测试)必须要有项目运行环境,所以需搭建环境。
环境指 APP 应用程序运行所需的软件和硬件,要保证项目能正常运行。以 TP shop 为例,所需环境包括模拟器和 APP 安装包。
APP专项测试
安装卸载升级
先来看安装:
- 正常场景:
- 在不同的操作系统版本上安装
- 从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)
- 不同的安装路径(安装到手机上、安装到SD卡上)
- 卸载后安装
- 正在运行时覆盖安装
- 异常场景:
- 安装时出现异常(关机、断网),恢复后能否继续安装
- 安装时存储空间不足
- 安装时手动取消后再次安装
- 低版本覆盖安装高版本
然后是卸载:
- 正常卸载(APP手动卸载、工具卸载)
- 运行时卸载
- 取消卸载后再次卸载
- 卸载异常中断后卸载
- 卸载后无数据残留
最后是升级测试关注点:
- 从临近版本升级
- 跨版本升级
- 不同渠道升级(应用商场、手机助手)
- 升级提醒成功(可不提醒、可以提示升级、强制升级)
- 应用内升级时非WIFI提醒
兼容性测试
兼容性测试就是测试APP能否在不同的设备上仍能正常运行,主要的影响因素有:
- 品牌型号
- 网络
- 软件兼容
- 硬件兼容
Push消息推送方式
在使用app应用过程中,我们会接收各种各样的通知,像点赞、评论、关注通知等。在app应用里或手机设置中,还能设置这些通知的权限以及显示位置,这些通通都属于push消息。
Push消息推送的两种方式
- 客户端主动拉取(Pull)
- 客户端在指定时间向服务器询问是否有消息,例如一分钟问一次。
- 这种方式会消耗客户端和服务器的资源。对于客户端,固定时间询问是一种消耗;若在线客户端有上百万甚至上千万台,服务器一分钟要接受上千万的消息询问,资源消耗较大。
- 服务器主动推送(Push)
- 当服务器有更新消息时,直接推送给客户端,客户端无需主动询问。
- 这种方式比较节省资源,对客户端无影响,所以基于手机流量和电量考虑,通常使用push消息推送。
推送流程
- 应用服务器后台有推送消息时,将消息传递给独立的推送服务器。
- 推送服务器按照设置好的推送规则,推送给客户端。
- 客户端根据自己设置的相关规则(如是否显示、显示位置等),最终将消息呈现给用户。
推送服务器类型
- 系统级别消息推送:安卓、IOS或鸿蒙等操作系统有更新提示时会进行推送。
- 自建消息服务器:好处是性能强、安全性高,但成本太高。
- 现有推送平台
- 手机厂商有小米推送、华为推送等。
- 第三方平台有友盟和极光,大多数非手机厂商公司使用较多。
- BAT大厂有自己的推送服务器。
消息推送关注点及测试点提取
- 推送服务器设置相关
- 关注点:推送内容、时间、频率、人群等策略设置。
- 测试点
- 收到消息成功(全部用户)
- 前置操作:app正在前台使用,已设置好push消息显示位置。
- 覆盖内容:推送内容、时机、频率、人群(全部用户)。
- 收到消息成功(部分用户)
- 前置操作:app在后台运行。
- 覆盖内容:针对特定用户群体,检查用户身份是否相符。
- 收到消息成功(离线后上线):离线间隔一段时间(如三个小时)再上线,应能收到对应消息。
- 收到消息失败(离线):离线状态下应无法收到消息。
- 关闭推送权限:在手机设置里关闭推送消息权限,应不显示消息。
- 收到消息成功(全部用户)
- 提醒位置:作为预期检查项,可在任何一个测试点中检查。
交叉测试/用户体验测试
交叉测试又叫冲突或干扰测试,指一个功能正在执行时,另一个事件或操作对该过程的干扰影响。例如,使用app时突然来电话,交叉测试就是测试电话对app应用的干扰。
- 关注点
- 电话对app的干扰
- 短信干扰
- push消息推送干扰
- 蓝牙设备干扰
- 文件弹窗提醒干扰
- 屏幕旋转(横屏、竖屏)干扰
- 网络切换干扰
- 手机自带应用(相机、计算器等)干扰
- 电量警告(一般低于5%、20%会有警告)干扰
- 拔插充电器干扰
用户体验测试指以主观角度感知软件、产品或服务的舒适、易用和友好程度,较难衡量,但可从四个维度关注。
- 关注维度及测试点
- UI界面
- 参照对象:关注产品原型和UI设计的布局、颜色、风格。
- 具体测试点
- 页面布局与原型设计一致。
- 页面字体、图片、颜色与UI设计一致。
- 易用性
- 空数据判断:必填框不允许为空,失去焦点应有提示。
- 菜单层次:一般不超过三级。
- 操作步骤:一般不超过五步。
- 按钮点击范围:适中,方便手指操作。
- 导航明确:任意界面有返回、退出操作指引。
- 横竖屏:分辨率切换成功。
- 其他辅助功能:根据应用面向对象,关注特殊功能设置,如放大字体、语音转换、多点触碰等。
- UI界面