功能测试
- Day01 web项目环境与测试流程、业务流程测试
- 一、【了解】web项目环境说明
- 1.1 环境的定义:项目运行所需要的所有的软件和硬件组合
- 1.2 环境(服务器)的组成:操作系统+数据库+web应用程序+项目代码
- 1.3 面试题:你们公司有几套环境?
- 二、【了解】熟悉商城项目
- 2.1 商城项目的核心业务:
- 2.2 商城项目的核心功能模块:
- 三、【重点】测试流程的应用
- 3.1 需求评审
- 3.2 计划编写
- 3.3 设计用例
- 3.4 用例执行
- 3.5 缺陷管理
- 3.6 测试报告
- 四、【掌握】商城项目测试(业务流程)
- 4.1 发货业务(参考课堂用例)
- 4.2 评论业务(参考课堂用例)
- tpshop商城
- 总结
- Day02 web项目业务测试、轮播图、注册、登录模块测试
- 一、商城项目测试(业务流程)
- 二、商城项目单模块测试
- 2.1 轮播图
- Day03 抢购业务测试
- 测试用例书写样例:模块-模块-正向 & 反向
- 注册和注册用例是不一样的测试用例方向
- Day04-web项目购物车模块测试
- Day05-web项目抓包操作与测试报告
- 一 网络相关知识介绍
- 二 抓包工具的应用
- 弱网测试
- 总结
- Day06 手工课程第六天(APP)
- 一、熟悉APP项目
- 二、app测试和web测试的区别
- 注册方面:数据同步问题(app注册 web能否登录)
- 登录方面:多点登录数据同步问题
- Day07 手工课程第七天(app)
- 1 APP专项测试 ★
- 一、兼容性
- 手机型号不同品牌商,不同机型(华为P30)
- 操作系统版本:
- 分辨率
- 屏幕
- 类型: 刘海屏 水滴屏 曲面屏 折叠屏
- 网络: 移动数据 和 WiFi
- 应用兼容性
- 手机硬件: 手机上的物理按键(音量键 home键 电源键)
- 外部硬件: 蓝牙设备 有线设备
- 操作系统设置: wlan 时间 定位
- 其他APP: 具有后台播放功能的APP,例如音乐
- 二、安装
- 正常场景
- 从不同渠道安装
- 不同操作系统安装
- 不同的路径安装(手机\SD卡)
- 异常场景
- 中断安装(关机 断网),中断之后能否恢复安装
- 存储空间不足安装
- 安装时手动取消或暂停.恢复之后是否能正常安装
- 正在运行时能否覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
- 低版本覆盖高版本
- 卸载后再安装(卸载后是否会清除数据)
- 三、卸载
- 四、升级
- 五、干扰测试(交叉事件测试)
- 六、Push推送
- 七、用户体验
- 八、性能测试工具 SoloPi
- 常见的性能指标有:内存,CPU,流量,电量,启动速度,流畅度、稳定性等
- 常用的APP命令介绍
- 1.显示系统中全部设备
- 2.开启或关闭ADB服务:
- 3.连接设备:
- 4.安装、卸载软件包
- 5.获取软件包名
- 6.清除应用数据与缓存
- 7.启动、停止应用
- Charles 手机抓包
Day01 web项目环境与测试流程、业务流程测试
课程目标
能独立编写电商项目7个核心业务模块的用例
根据测试流程的6个步骤能独立对所有项目实施功能测试
今日目标
能说出web项目环境的组成
能说出tpshop商城项目业务的操作步骤(下单业务、发货业务、退换货业务、订单查询业务、会员管理业
务、商品管理业务)
能说出测试流程的6个步骤和作用
能根据测试流程6个步骤独立完成测试(下单业务、发货业务、评论业务)
一、【了解】web项目环境说明
1.1 环境的定义:项目运行所需要的所有的软件和硬件组合
1.2 环境(服务器)的组成:操作系统+数据库+web应用程序+项目代码
1.3 面试题:你们公司有几套环境?
测试环境:专门提供给测试人员使用
开发环境:开发人员使用
生产环境:提供给用户
预生产环境:设置和数据是一样.
注意:
情况一:2种环境, 测试环境+生产环境; 如何解决开发和测试进度冲突问题
答:区分开发周和测试周;开发工作时(开发新功能)不测试,测试工作时开发不进新代码.
情况二:3种环境,开发环境+测试环境+生产环境
二、【了解】熟悉商城项目
信息来源:
新项目:需求文档+产品经理
已经存在的项目: 文档(需求文档\使用说明书\测试用例) 人(测试老员工\产品经理\开发) 项目软件
熟悉的思路:用户 + 用户如何使用
熟悉标准:核心业务 + 核心功能模块
用户是谁?
用户怎么用?
哪个功能缺失会导致用户无法正常使用?
2.1 商城项目的核心业务:
下单业务(登录–搜索-----加入购物车-----下单-----支付)
发货业务(登录----确认订单----填单号)
售后业务(用户登录----发起申请—商家登录----商家确认申请----用户退货----商家确认收货—商家打款)
查询订单(用户登录----我的页面----我的订单)
2.2 商城项目的核心功能模块:
注册
登录
购物车
搜索
轮播图
评论
抢购
三、【重点】测试流程的应用
流程的作用:让测试工作有条不紊的开展
3.1 需求评审
前提:提前阅读需求文档,记录疑惑点
目的:知道有什么功能,规则是什么,最终各部门理解一致.
3.2 计划编写
测什么
怎么测
谁来测
重点关注
准入标准:研发提测标准,什么时候可以开始测试
业务能跑通:P0
准出标准:什么时候结束测试
数据化:用例(100%) \缺陷(解决率:S0 100%,S1:100% S2\S3 :95%)
3.3 设计用例
先设计业务用例,后设计功能模块用例
3.4 用例执行
按优先级(推荐)
前提:写用例的时候标注清楚优先级并且明确优先级的定义
P0:最高级别.
按顺序执行
3.5 缺陷管理
提交时间:用例执行失败的第一时间
注意事项:
唯一性
可复现(明确复现步骤\问题发生时间\日志截图)
注明版本号
3.6 测试报告
四、【掌握】商城项目测试(业务流程)
方法:流程图法
如何编写用例:找路径;从开始到结束共有多少条路就有多少条用例.
4.1 发货业务(参考课堂用例)
4.2 评论业务(参考课堂用例)
用例模板
Bug模板
tpshop商城
总结
Day02 web项目业务测试、轮播图、注册、登录模块测试
能独立完成订单业务测试(退货业务、换货业务、订单查询业务、会员管理业务、商品管理业务)
能独立完成单模块测试(轮播图、注册、登录)
一、商城项目测试(业务流程)
二、商城项目单模块测试
如何编写用例
先测后台 后测前台
2.1 轮播图
-
需求分析
位置:后台–页面–广告管理—广告列表(搜索index页面增加广告位2)
操作完成后需要点击admin—更新缓存,前台页面刷新生效
-
拆解测试点
Day03 抢购业务测试
测试用例书写样例:模块-模块-正向 & 反向
注册和注册用例是不一样的测试用例方向
Day04-web项目购物车模块测试
Day05-web项目抓包操作与测试报告
能操作抓包工具抓取http请求和响应的数据包 能操作抓包工具进行弱网测试 能使用抓包工具绕过页面限制进行测试
能根据测试报告模板编写tpshop测试报告
一 网络相关知识介绍
1.1 请求
二 抓包工具的应用
弱网测试
总结
Day06 手工课程第六天(APP)
一、熟悉APP项目
信息来源:
新项目: 需求文档 也可以问产品经理
已存在的项目: 文档(用例\需求文档\用户说明书) 人(测试老员工\ 产品经理\开发) 项目软件
思路:
用户是谁,用户怎么用?
标准
核心业务: 用户使用的过程
核心功能: 功能缺失会导致用户无法使用(用户)
- 核心业务
订单查询
售后流程
下单流程
会员管理
商品管理
评价流程 - 核心功能
登录
注册
购物车
支付
评论
抢购
添加商品
轮播图
搜索
二、app测试和web测试的区别
注册方面:数据同步问题(app注册 web能否登录)
登录方面:多点登录数据同步问题
Day07 手工课程第七天(app)
能够实现APP的专项测试(兼容性、安装卸载升级、干扰测试(交叉)、Push推送、用户体验)
能使用solopi完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性) 能独立说出常用的
APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志) 能使用命令测试APP客户端的稳定性
(monkey)
1 APP专项测试 ★
一、兼容性
手机型号不同品牌商,不同机型(华为P30)
操作系统版本:
安卓:根据在线统计平台数据获取
iOS
分辨率
屏幕
尺寸:5.1. 5.5 4.7
类型: 刘海屏 水滴屏 曲面屏 折叠屏
网络: 移动数据 和 WiFi
应用兼容性
手机硬件: 手机上的物理按键(音量键 home键 电源键)
外部硬件: 蓝牙设备 有线设备
操作系统设置: wlan 时间 定位
其他APP: 具有后台播放功能的APP,例如音乐
二、安装
正常场景
从不同渠道安装
不同操作系统安装
不同的路径安装(手机\SD卡)
异常场景
中断安装(关机 断网),中断之后能否恢复安装
存储空间不足安装
安装时手动取消或暂停.恢复之后是否能正常安装
正在运行时能否覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
低版本覆盖高版本
卸载后再安装(卸载后是否会清除数据)
三、卸载
正常卸载(手机卸载\使用第三方软件卸载)
运行时卸载(后台运行)
取消卸载(第三方软件\二次弹窗确认时取消)
中断卸载(关机)
卸载后数据残留(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(如果不
做任何确认提示,默认需要清空残留数据)
四、升级
从临近版本升级(上一次发布的版本)
跨版本升级(历史发布过的版本)
当前版本是n: n-2 升级n
从不同渠道升级
升级成功提醒(红点提示\消息提示)
升级前是否提醒(消息推送提示升级\强制升级不提醒)
自己自研升级系统(日常升级\强制升级)
使用第三方(日常升级\强制升级)
当前版本是否具有升级能力(n升级n+1,升级规则)
五、干扰测试(交叉事件测试)
接打电话
收发短信
音视频电话
查看应用推送(其他软件的推送\当前软件的推送)
连接蓝牙设备
接收文件弹窗提醒(确认接收\拒绝接收)
旋转屏幕
切换网络(移动数据和WiFi自动切换)
手机自带应用(打开相机\手电筒\计算器)
低电提醒
插拔充电器(充电动画)
六、Push推送
七、用户体验
UI界面测试(原型图设计是否合理)
横竖屏测试(内容展示是否异常)
易用性测试(空数据提示\菜单层次是否过深\业务操作步骤是否过多\按钮位置是否适中)
手机上的辅助功能(色盲模式\盲人模式)
八、性能测试工具 SoloPi
SoloPi:是一个无线化、非侵入式的 Android 自动化工具,具备录制回放、性能测试等功能。
作用如下:
基础性能测试:能够记录待测应用的各项指标,可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,还支持性能加压,能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
录制回放:通过SoloPi执行用例步骤,能够将用户的操作记录下来,支持在各个设备上进行回放,这一切都能够在手机上独立完成。
一机多控:支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
常见的性能指标有:内存,CPU,流量,电量,启动速度,流畅度、稳定性等
(1)应用GT工具进行APP客户端的CPU、内存、流畅度、流量
、电量、启动速度测试(了解)
• CPU: CPU 使用率 • 内存:实际使用内存PSS
• 流畅度:界面滑动时FPS
• 流量:网络上行/下行报文数量
• 电量:程序运行时的平均电流
(2)应用ADB命令进行APP客户端的启动速度和稳定性测试(
了解)
• 启动速度:冷启动速度、热启动速度
• 稳定性:Monkey模拟用户长时间运行
常用的APP命令介绍
能独立说出常用的APP命令格式(启动时间、内存、CPU、安装、卸载、流量、抓取日志)
能使用命令测试APP客户端的稳定性(monkey)
1.显示系统中全部设备
adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
2.开启或关闭ADB服务:
adb start-server adb kill-server
3.连接设备:
adb connect IP
如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接。上
面192.168.1.61替换成想要连接设备的IP即可。
4.安装、卸载软件包
安装软件:adb install -r (APK路径)
-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。apk路径则可以直接将apk文件拖进cmd窗口,记得加空
格。
卸载软件:adb uninstall (apk包名)
如果卸载 app 但需要保留数据和缓存文件:adb uninstall -k (apk包名)
5.获取软件包名
列出手机装的所有app的包名:
adb shell pm list packages
列出系统应用的所有包名:
adb shell pm list packages -s
列出除了系统应用的第三方应用包名:
adb shell pm list packages -3
显示当前打开的软件包名(如右图):
Windows:adb shell dumpsys window | findstr mCurrentFocus(需要打开目标软件)
Mac/Linux:adb shell dumpsys window |
6.清除应用数据与缓存
7.启动、停止应用
- 启动时间:adb shell am start -W 包名/activity名
- 内存:adb shell dumpsys meminfo <包名>
- CPU:adb shell top -m 10 -s cpu
- 安装:adb install -r 软件包路径
- 卸载:adb uninstall 包名
- 抓取日志:adb logcat >指定路径
- Monkey:adb shell monkey -p 包名 -v(日志) 次数 >c:\日志.txt
- 流量:
上行:adb shell cat proc/uid_stat/userId/tcp_snd
下行:adb shell cat proc/uid_stat/userId/tcp_rcv