功能测试
- [Day01 web项目环境与测试流程、业务流程测试](#Day01 web项目环境与测试流程、业务流程测试)
-
- 一、【了解】web项目环境说明
-
- [1.1 环境的定义:项目运行所需要的所有的软件和硬件组合](#1.1 环境的定义:项目运行所需要的所有的软件和硬件组合)
- [1.2 环境(服务器)的组成:操作系统+数据库+web应用程序+项目代码](#1.2 环境(服务器)的组成:操作系统+数据库+web应用程序+项目代码)
- [1.3 面试题:你们公司有几套环境?](#1.3 面试题:你们公司有几套环境?)
- 二、【了解】熟悉商城项目
-
- [2.1 商城项目的核心业务:](#2.1 商城项目的核心业务:)
- [2.2 商城项目的核心功能模块:](#2.2 商城项目的核心功能模块:)
- 三、【重点】测试流程的应用
-
- [3.1 需求评审](#3.1 需求评审)
- [3.2 计划编写](#3.2 计划编写)
- [3.3 设计用例](#3.3 设计用例)
- [3.4 用例执行](#3.4 用例执行)
- [3.5 缺陷管理](#3.5 缺陷管理)
- [3.6 测试报告](#3.6 测试报告)
- 四、【掌握】商城项目测试(业务流程)
-
- [4.1 发货业务(参考课堂用例)](#4.1 发货业务(参考课堂用例))
- [4.2 评论业务(参考课堂用例)](#4.2 评论业务(参考课堂用例))
- tpshop商城
- 总结
- [Day02 web项目业务测试、轮播图、注册、登录模块测试](#Day02 web项目业务测试、轮播图、注册、登录模块测试)
-
- 一、商城项目测试(业务流程)
- 二、商城项目单模块测试
-
- [2.1 轮播图](#2.1 轮播图)
- [Day03 抢购业务测试](#Day03 抢购业务测试)
-
- [测试用例书写样例:模块-模块-正向 & 反向](#测试用例书写样例:模块-模块-正向 & 反向)
- Day04-web项目购物车模块测试
- Day05-web项目抓包操作与测试报告
- [Day06 手工课程第六天(APP)](#Day06 手工课程第六天(APP))
-
- 一、熟悉APP项目
- 二、app测试和web测试的区别
-
-
- [注册方面:数据同步问题(app注册 web能否登录)](#注册方面:数据同步问题(app注册 web能否登录))
- 登录方面:多点登录数据同步问题
-
- [Day07 手工课程第七天(app)](#Day07 手工课程第七天(app))
-
- [1 APP专项测试 ★](#1 APP专项测试 ★)
-
- 一、兼容性
-
- 手机型号不同品牌商,不同机型(华为P30)
- 操作系统版本:
- 分辨率
- 屏幕
- [类型: 刘海屏 水滴屏 曲面屏 折叠屏](#类型: 刘海屏 水滴屏 曲面屏 折叠屏)
- [网络: 移动数据 和 WiFi](#网络: 移动数据 和 WiFi)
- 应用兼容性
- [手机硬件: 手机上的物理按键(音量键 home键 电源键)](#手机硬件: 手机上的物理按键(音量键 home键 电源键))
- [外部硬件: 蓝牙设备 有线设备](#外部硬件: 蓝牙设备 有线设备)
- [操作系统设置: wlan 时间 定位](#操作系统设置: wlan 时间 定位)
- [其他APP: 具有后台播放功能的APP,例如音乐](#其他APP: 具有后台播放功能的APP,例如音乐)
- 二、安装
-
- 正常场景
- 异常场景
-
- [中断安装(关机 断网),中断之后能否恢复安装](#中断安装(关机 断网),中断之后能否恢复安装)
- 存储空间不足安装
- 安装时手动取消或暂停.恢复之后是否能正常安装
- 正在运行时能否覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
- 低版本覆盖高版本
- 卸载后再安装(卸载后是否会清除数据)
- 三、卸载
- 四、升级
- 五、干扰测试(交叉事件测试)
- 六、Push推送
- 七、用户体验
- [八、性能测试工具 SoloPi](#八、性能测试工具 SoloPi)
- 常用的APP命令介绍
- [Charles 手机抓包](#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完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性)
- 能独立说出常用的APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志)
- 能使用命令测试APP客户端的稳定性(monkey)
SoloPi:是一个无线化、非侵入式的 Android 自动化工具,具备录制回放、性能测试等功能。
作用如下:
基础性能测试:能够记录待测应用的各项指标,可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,还支持性能加压,能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
录制回放:通过SoloPi执行用例步骤,能够将用户的操作记录下来,支持在各个设备上进行回放,这一切都能够在手机上独立完成。
一机多控:支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
Solopi的使用
点击开始监控,随后打开被测APP应用,开始测试
查看数据采集结果
性能:是衡量APP质量的一个重要指标
l 常见的性能指标有:内存,CPU,流量,电量,启动速度,流畅度、稳定性等
性能测试关注点:
Ø APP使用时对CPU、内存的占用情况;
Ø APP使用时是否流畅等
Ø APP使用时,电量流量的消耗情况;
Ø APP的启动时间是否过长;
Ø APP是否能长时间稳定运行
内存
1.1-性能内存基础知识 ------ 内存监控指标
每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。
SoloPi工具提供了两个内存的监控指标:PSS和Private dirty
Private dirty(私有内存):
l 进程独占内存,也就是进程销毁时可以回收的内存容量。
PSS(实际使用内存):
l 将跨进程共享页也加入进来, 进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存
内存问题的现象
常见的内存问题:
内存泄漏:
内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
l 内存溢出:
Ø 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory
Ø memory leak会最终会导致out of memory!
性能内存测试
需求:打开TP商城单商户,进入首页-我要拼团,上下滑动动态2分钟,内存指标正常。
测试方法:
(1)打开SoloPi工具,配置内存监控
(2)进入TP商城单商户APP,操作上述业务,观察运行时的内存指标
(3)查看内存运行结果
l 检查程序实际使用的内存PSS是否持续增长
l 检查程序是否出现crash
常用的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