目录
项目介绍
1.项目是什么?
2.项目有什么?
3.项目测什么?
项目测试流程
个人实施测试流程
测试实施
下单业务
1.设计下单(购物车)业务测试用例01
2.设计下单购物下单业务测试用例02
3.设计下单(购物车)业务测试用例03
业务测试用例执行
缺陷管理
单模块测试
功能模块
熟悉需求
案例
测试点(部分)
1.登录
2.购物车(在文件中)
编辑3.支付(在文件中)
Web项目非功能测试
APP测试
内部发布
线上发布
发布策略
功能测试
登录案例
APP专项测试
搭建app项目测试环境
安装测试
卸载,升级测试
兼容性测试
应用兼容性测试关注点
兼容性测试
push推送
push推送方式
Push消息推送流程
Push消息测试关注点
交叉测试
用户体验测试
APP性能测试
SoloPi使用
APP性能测试
1.内存
内存问题的现象
编辑总结:
案例
编辑
2.CPU监控指标
CPU消耗引起的现象
3.流量介绍
案例
4.电量
案例
5.流畅度
案例
6.启动速度
案例
Android-sdk环境搭建
稳定性测试
编辑monkey命令
检查日志
项目介绍
1.项目是什么?
Tpshop商城,类似于淘宝、京东类的(B2C)电子商务平台,主要为线上用户提供优质便捷的购物服务。
前台地址: https://hmshop-test.itheima.net/
后台地址: https://hmshop-test.itheima.net/admin
参考内容: 黑马教育测试项目
2.项目有什么?
3.项目测什么?
1.先测核心业务
买家:下单业务、优惠券业务、秒杀业务、售后业务、订单查询业务...
卖家:商品上架业务、发货业务、入库业务、核算业务、…
2.再测核心业务中单功能/页面
1. 买家:登录、搜索、购物车、下单、支付、订单状态、评论、…
2. 卖家:供货商管理、商品基本信息、出库、入库、促销活动、…
4.所做内容:
1. 核心业务:下单业务
2. 核心模块:注册登录、搜索、购物车、下单、支付
项目测试流程
个人实施测试流程
测试实施
下单业务
1.设计下单(购物车)业务测试用例01
步骤:
1、熟悉需求
2、确认下单流程
购车下单流程:选择商品->加入购物车->登录成功->提交订单成功->支付成功
3、确认流程图
工具: https://www.processon.com/
4、编写测试用例
2.设计下单购物下单业务测试用例02
流程:选择商品->立即购买->登录成功->提交订单成功->支付成功
要求:
1、将文字流程转流程图
2、编写下单业务(立即购买)测试用例
3.设计下单(购物车)业务测试用例03
购物车下单流程:选择商品->加入购物车->登录成功->提交订单成功->支付成功
步骤:
软件测试
1、确认流程图(缺失)
2、梳理测试点
3、测试点转用例文档
业务测试用例执行
执行准备
①开发提测冒烟测试通过
②测试用例设计完成
执行方式
顺序执行
执行结果
① 通过:pass
② 失败:fail > 提bug
缺陷管理
缺陷跟踪流程
测试:提交bug >验证bug >关闭bug/打开bug
开发:确认bug >修复bug
回归测试
验证当前bug是否已经修复验证是否引发新的bug
注意:回归测试前先确认修复的软件版本更新测试环境版本后再验证
通过禅道模拟演示缺陷跟踪流程
1.通过测试账号登录提交bug,验证bug
2.通过开发账号登录修复bug
链接地址: https://zentao.demo.qucheng.cc/
单模块测试
功能模块
1.下单业务线中核心单功能
登录
购物车功能
下单功能
支付功能
2.单功能测试步骤:
熟悉需求
提取测试点覆盖需求
测试点转执行测试用例
缺陷管理
熟悉需求
1.需求从哪来?
需求文档
产品原型图
已存在的软件界面(不一定有)
2. 怎么熟悉需求?
阅读并理解文档描述
操作或梳理业务规则及流程
案例
测试点(部分)
1.登录
2.购物车(在文件中)
3.支付(在文件中)
Web项目非功能测试
质量模型:功能性、兼容性、易用性、性能、安全、迁移性、维护性、可靠性
重点测试:功能性、兼容性、易用性、性能、安全
测试
●独立测试:安全、性能
●测试目标:
兼容性:谷歌、火狐、Edge、苹果
易用性:主要参考依据产品原型设计或优秀竞品设计
APP测试
APP与Web的区别
系统架构:APP是C/S结构,web是B/S结构
C/S(Client/Server):即客户端/服务器,需要下载安装客户端,
B/S(Browser/Server):即浏览器/服务器,基于浏览器访问。
APP发布
将开发完成的移动应用程序通过特定的渠道和流程,向公众发布,使得用户可以下载、安装并使用应用程序。
分类:
·内部发布渠道
·线上发布渠道
内部发布
在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些应用内测分发平台。
如:蒲公英、Testlink等
步骤:
1.开发将应用测试包上传到这些平台上
2.平台可以生成对应的二维码
3.测试直接扫码进行应用安装
线上发布
产品测试完成后,将APP发布到应用各种平台上。
安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等;0S应用:主要有 App store、iTools
步骤:
1.开发者账号注册,申请在发布平台(各种应用商店)上架上传到发布平台
2.针对不同的发布平台,在软件包中加入对应的平台ID(渠道ID)
3.平台审核通过后,用户即可在应用商店中下载
注意事项
一般线上发布过程,由开发人员负责。
在软件包加入平台ID后,上传到发布平台时,需要测试人员验证核心的业务功能
发布策略
项目发布时采用的一种策略,先发布少数(1-3)服务器,待运行稳定后再发布到所有服务器。
功能测试
使用技术手段,验证程序功能符合应用需求。
1.对象:核心业务、单功能
2.流程
1.需求分析
2.测试计划
3.测试用例设计
4.测试用例执行
5.缺陷管理
6.测试报告
方法
1.等价类:穷举数据选取
2.边界值:长度范围覆盖
3.判定表:多条件之间约束限制
4.流程图:业务流程
登录案例
APP专项测试
说明:在不同的移动设备上能持久、稳定的运行App程序。
专项测试的目的:
保障主流移动设备能正常使用App应用
不同的网络环境APP应用正常使用
不同APP版本正常使用
搭建app项目测试环境
环境
App应用运行所依赖的软硬件
依赖
1.mumu模拟器(移动设备)
2.App安装包
mumu模拟器(移动设备)
说明:由网易编写一款安卓模拟器(window/mac)
安装:双击下一步安装完成即可
安装测试
1.正常场景:
在不同的操作系统版本上安装
从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)不同的安装路径(安装到手机上、安装到SD卡上)
卸载后安装
正在运行时覆盖安装
2.异常场景:
安装时出现异常(关机、断网),恢复后能否继续安装
安装时存储空间不足
安装时手动取消后再次安装
低版本覆盖安装高版本
卸载,升级测试
1.卸载关注点:
正常卸载(APP手动卸载、工具卸载)
运行时卸载
取消卸载
卸载异常中断后卸载
卸载后无数据残留
2.升级测试关注点:
从临近版本升级
跨版本升级
不同渠道升级(应用商场、手机助手)
升级提醒成功(可不提醒、可以提示升级、强制升级
应用内升级时非WIFI提醒
注意事项
升级后要观察升级前的数据是否正常(当数据结构改变而开发没有处理好时很容易出现升级前的数据混乱
兼容性测试
兼容性:程序能在不同的设备上运行正常。
品牌型号(品牌、系统版本、分辨率)
网络
软件兼容
硬件兼容
应用兼容性测试关注点
兼容性测试
测试方式:
方式1:使用公司已有的真机进行兼容性测试。
方式2:使用第三方的兼容性平台进行测试。
如:线上云测平台testin(https://www.testin.cn/)
push推送
Push消息介绍
Push消息是APP推送的各种通知。
如:点赞、评论、关注
push推送方式
Pull(拉)客户端主动获取:客户端固定时间主动向服务器获取消息
Push(推)客户端被动接受:当服务器有更新消息时,主动发送到客户端。
Pul方式消耗客户端和服务器资源
Push方式节省客户端和服务器资源
提示
在APP项目中,基于手机电量与流量的考虑,使用的都是push方式进行消息推送,因此又叫Push消息
Push消息推送流程
Push消息测试关注点
Push消息推送的设置:
1.APP服务器设置:
推送内容推送时机推送频率
推送人群(全部用户/部分用户)
2.手机端设置:
是否接收通知
提醒位置等
push消息测试关注点:
1.APP服务器设置测试点
Push消息是否按指定业务规则发送当Push消息是针对特定用户时,检查收到的Push与用户身份是否相符等
2.手机端设置测试点:
设置不接收推送消息时,用户是否会收到Push消息设置push消息显示的位置,是否与配置一致收到push消息,是否能正常打开跳转等
3.其他测试:
APP在前台使用时,收到push消息如何提示APP在后台运行时,收到push消息如何提示APP离线,是否能收到PUSH消息。
交叉测试
又叫(冲突、干扰)测试,是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。
如:在App前台/后台运行同时接听来电或者下载文件等。
交叉事件测试关注点:
APP运行时接打电话,
APP运行时收发信息;
APP运行时查看应用推送
APP运行接上蓝牙设备
APP运行时接收文件弹窗提醒
APP运行时旋转屏幕
APP运行时切换网络(4G、Wi-Fi)
App运行时使用相机、计算器等手机自带应用
App运行时电量告警、插拔充电器
用户体验测试
APP性能测试
测试app使用期间占用硬件资源(cpu、内存、流量、电量)使用情况。
分类
1. App程序运行时占用手机硬件资源情况
2.App稳定性
如何测试APP(资源)性能?
说明:使用工具或命令进行测试
工具
SoloPi是一个无线的 Android 自动化工具,具备录制回放、性能测试等功能。
功能
性能测试:能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现
录制回放:能够将用户的操作记录下来,支持在各个设备上进行回放。
一机多控:操作一台主机设备来控制多台从机设备,进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
下载:https://www.pgyer.com/solopi
SoloPi使用
APP性能测试
APP性能测试关注点
APP使用时对CPU、内存的占用情况:
APP使用时是否流畅等,
APP使用时电量流量的消耗情况,
APP的启动时间是否过长;
APP是否能长时间稳定运行
1.内存
内存监控指标
每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。
提示:SoloPi工具提供了两个内存的监控指标:Private dirty和 PSS。
Private dirty(私有内存):
进程独占内存,也就是进程销毁时可以回收的内存容量。
PSS(实际使用内存):
将跨进程共享页也加入进来,进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。
内存问题的现象
总结:
1.性能:
内存+cpu+流量+电量
启动速度+流畅度+稳定性
2.内存关注:
实际使用内存(PSS )
私有内存
3.内存常见问题
内存泄漏:申请内存无释放内存。
内存溢出:日申请内存时,无内存可用。
案例
2.CPU监控指标
SoloPi工具提供了两个CPU的监控指标:全局占用CPU和应用进程CPU。
全局占用CPU:整机的CPU使用水平,即当前手机的CPU整体使用率
在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态
用户态:表示 CPU 处于应用程序执行的时间
系统态:表示系统内核执行的时间
空闲态:表示空闲系统进程执行的时间。
CPU 使用率=CPU 执行非系统空闲进程时间/CPU总的执行时间
应用进程CPU:表示自开机以来,应用程序消耗的CPU时间的总数。
案例
CPU消耗引起的现象
CPU使用长时间处于90%以上
手机发热、耗电量增加
响应变慢、引起ANR(Application Not Responding)
3.流量介绍
案例
流量优化策略:
数据的压缩
不同数据格式的采用
控制访问的频次
只获取必要的数据
缓存机制
针对不同的网络类型设置不同的访问策略
4.电量
电量
APP应用使用时对电池电量的平均消耗
常见的耗电量大的场景:
定位
网络传输
屏幕亮度
wake locker(锁屏-解锁)
案例
1.耗电量大场景:
定位
网络传输
屏幕亮度
wake locker(锁屏-解锁)
2.分析结果:
与基准数据对比(基准数据来自于产品经理,或者以往数据积累)
横向对比(竞品)
5.流畅度
流畅度的监控指标
SoloPi工具提供了流畅度的监控指标:帧率FPS
即Frames per second:GPU在一秒内绘制的帧数。(简单理解为一秒内呈现给用户的图片数)
FPS值越高画面越流畅
流畅度问题产生的影响:
想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度
想达到流畅的效果,至少需要每秒24帧
60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒
注意事项
当页面多为静态时,FPS值很小是正常的
页面数据多为动态加载时,FPS值比较大(建议在24帧以上)
案例
流畅度:动画播放或图片切换的流畅性
达到流畅效果24/S
最佳流畅效果60/S
6.启动速度
APP启动速度:从启动app到主页面加载完成的速度。
APP启动分类:冷启动、热启动
冷启动:启动app进程,这种启动方式叫做冷启动。
热启动:将app从后台置于前台。
Solopi指标:启动耗时计算
案例
启动分类:热启动+冷启动
冷启动:启动app进程,这种启动方式叫做冷启动,
热启动:从后台切换到前台
Android-sdk环境搭建
稳定性测试
什么是稳定性?
Monkey介绍
稳定性测试步骤
monkey命令
检查日志
1.常见app不稳定的现象
崩溃、闪退、无响应、卡顿
2.稳定性测试
在app应用中随意操作,挖掘有可能出现的异常。
3.稳定性怎么测?
① Android系统使用自带monkey工具
② 测试次数【工作中50W-80W次】
4. Monkey工具应用
1.执行Monkey命令:adb shell monkey -p 包名 -v 次数>日志.log
2.检查日志是否有异常,有异常将日志发给开发ANR,timeout,Exception,out,leak,error