黑马软件测试笔记

测试

分类

按软件生成过程划分

分类测试内容测试人举例(电商)
单元测试源程序代码开发用户名验证
集成测试模块之间的功能交互测试用户登录
系统测试整个系统测试
验收测试项目是否符合预期需求用户

 按程序源代码可见程度划分

分类测试重点代码可见度UI可见度使用场景对标
黑盒测试数据输入、结果输出不可见可见web系统测试
灰盒测试数据访问通道部分可见不可见postman集成测试
白盒测试代码语法和逻辑可见不可见idea单元测试

其他测试

冒烟测试

测试内容:对核心功能(用户经常使用的功能)进行测试

作用:保证提测内容具备可测性。而不会造成主要功能没完成就开始测试,导致浪费人力

冒烟测试流程

回归测试

测试内容:对(已修复的bug / 更新后对已测试的内容)重新测试

作用: 保证(bug修复,确保bug修复 / 版本更新)不会影响其他正常功能

bug回归测试流程
更新回归测试流程

质量模型

质量性能内容
功能性功能数量与文档一致,且功能能够正常实现
性能多用户同时使用是否满足(时间、资源)
兼容性在不同的(平台 \ 设备)上使用
易用性从流畅、简洁、美观三个方面衡量易学、易用、用户粘性
安全性数据传输和存储的安全
可靠性长时间运行稳定,不出现异常(死机、卡顿、无响应)
可移植性应用升级时数据迁移方便
可维护性运行过程出现问题维护操作是否简便

功能测试

测量功能性


非功能测试

质量模型中除了功能性都是非功能测试

兼容性
软件测试内容
Web不同浏览器(谷歌、Edge等)
App不同操作系统(android、ios)

测试过程(Web)

1.需求分析与评审

2.制定测试计与方案(用思维导图提取测试点)

业务
业务测试

定义:为满足用户的一系列功能,由多个或单个单功能组成

使用场景:测试软件单功能之间关联性数据处理逻辑是否正确

优先级:在项目测试中优先级最高,先测主业务,再测单模块

方法:流程图法

步骤

1.确认流程图

2.从开始到结束每条路径确定一条测试点
3.将测试点转为测试用例

测试数据:反向测试用例错误数据原因不唯一(重点在于验证功能之间的联系)

举例(发布文章)

1.确认流程图

2.从开始到结束每条路径确定一条测试点:
   发布文章失败(提交失败)、发布文章失败(审核失败)、发布文章成功
3.将测试点转为测试用例



单功能
等价类划分法

作用:用少数数据获得较好的测试效果(类似排列组合)

适用场景:表单类元素(输入框、下拉框、单选框、复选框)

步骤

1.划分有效等价类:满足需求的数据集合
2.划分无效等价类:不满足需求的数据集合
3.每类中选取代表数据组合测试数据:多个有效数据组合,单个无效数据与其他有效数据组合

举例(登录)

1.有效用户名user123,有效密码password123
2.无效用户名error1,无效密码error2
3.排列组合:user123-password123,user123-error2,error1-error2,error1-password123


边界值分析法

使用场景:数据有边界范围限制

步骤

1.边界值分析法选取长度
        a).选取上点(边界值)
        b).选择两个离点(距离上点最近的点):包含上点选择范围外的点;不包含上点选择范围内的点
        c).选择内点(范围内的点):最好是中间范围
2.等价类划分法
3.提取数据排列组合

举例(密码长度限制8-13位)

1.选取上点:8,13
2.选取离点:7,14(8-13是包含在有效数据的)
3.选取内点:11


判定表

使用场景:多条件之间有约束规则 

步骤

1.列出问题的所有条件(条件桩)
2.列出问题的所有可能采取的动作(动作桩)
3.列出条件对应的取值,值为是或否(条件项)
4.根据条件项推导出可能采取的动作,值为√或×(动作项)
5.根据规则(一列的动作项和条件项)提取测试点

举例(指定时间内消费满1000元,打9折)

1.列出条件桩:指定时间、>= 1000元
2.列出动作桩:打9折、不打折
3.列出条件对应的取值
4.推导动作项
5.根据规则提取测试点:不打折(在指定时间内 + 消费不满1000元)


3.设计测试用例(Excel)

 步骤

1.提取测试点
2.根据测试点编写测试用例

标题内容举例
用例编号项目_模块_数字shop_login_001
用例标题预期执行结果(测试点)登录失败(密码为空)
所属模块模块名登录
优先级用例的重要程度(高P0-低P3)

p1

前置条件执行操作不在的前置条件1.账号已注册 2.打开登录页面
测试步骤测试点执行的关键步骤1.输账号 2.输密码 3.点击按钮
测试数据输入数据1.账号:注册手机号 2.密码:空
预期结果预期执行结果及隐性结果登录失败,提示信息
实际结果用例的实际执行结果通过 / 不通过

举例

4.执行测试用例

前提条件:

        1.测试内容已经开发交付

        2.测试环境已经准备好

关注点:

        1.实际执行结果是否与预期结果一致,一致通过,不一致则为bug

        2.预期隐性结果应与执行隐性结果相似

        3.实际结果与预期结果有争议的地方,多从用户角度衡量

5.缺陷跟踪管理

定义:任何问题都是缺陷

常用工具:禅道、jira

衡量标准

缺陷内容举例
少功能软件为实现说明书中明确要求的功能学生端无提交作业
多功能软件实现说明书未要求的功能学生端出现批改作业
功能错误软件出现了说明书中指明不应该有的错误金额结算错误
隐性功能缺失/错误软件未实现说明书中未明确但应该实现的要求删除没有二次确认
不易使用软件难以理解,不易使用,运行缓慢,用户体验不好提示系统繁忙

缺陷主要内容

缺陷内容举例
当前指派将bug提交给谁开发人员A
Bug类型代码错误、设计缺陷...设计缺陷
Bug标题描述Bug问题(测试点描述及预期结果(实际结果))

账号为空+密码不为空,

提示登录失败,账号不为空(实际结果:...)

严重程度Bug严重程度
优先级

Bug的修复紧急程度

业务:正向P0,逆向P1

功能:正向P2,逆向P3

兼容性为P2或P3

P3
重现步骤复现步骤

1.输入账号:空

2.输入密码:123

3.点击登录按钮

附件执行实际结果截图或日志文件

缺陷跟踪流程

流程解释负责人
提交缺陷提交发现的缺陷测试
分派缺陷将缺陷分派给其他开发开发
是否重复查看缺陷是否已经提交过开发
是否Bug检查缺陷是Bug还是设计如此开发
推迟处理安排处理缺陷是现在还是后续版本开发
处理缺陷修复Bug开发
回归测试修复Bug后让测试重新测试测试
验证通过判断Bug是否真正被修复测试
关闭缺陷缺陷已解决或缺陷已经提交过测试
重新打开缺陷并未修复测试

6.编写测试报告

App

测试范围

功能测试

业务测试
功能模块测试


性能测试

目的:测试App使用期间占用硬件资源(CPU、内存、流量、电量)使用情况

常用工具:

        Android:SoloPi、GT、命令(adb)

        ios:xcode

SoloPi

功能: 

        录制回放(自动化)
        性能测试(监控资源)
        一机多控(兼容性)

使用:打开要测App之后再开始录制

测试分类
资源占用
内存

监控指标

1.私有内存(Private dirty):进程独占内存,销毁时可回收的内存容量
2.实际使用内存(PSS):私有内存 + 共享内存,按比例计算PSS可准确表示进程占用的实际物理内存

内存问题现象(PSS持续增长)

1.内存泄露:无法释放程序申请的内存空间,最终会导致内存溢出
2.内存溢出:程序在申请内存时,没有足够的内存空间使用


CPU

CPU利用率

用户态:CPU处于应用程序执行的时间
系统态:系统内核执行的时间
空闲态:空闲系统进程执行的时间

监控指标

1.全局占用CPU:当前手机的CPU整体使用频率 = CPU执行非系统空闲进程时间 / CPU总的执行时间  
2.应用进程CPU:当前应用的CPU整体使用频率

CPU问题现象(CPU长时间处于90%以上)

1.手机发热
2.耗电量增加
3.响应变慢
4.引起ANR(应用无响应)


流量

定义:App与服务器交换数据的大小

分类:

        上行消息:App发送给服务器的数据

        下行消息:服务器发给App的数据 

监控指标

模拟器无法统计电脑流量使用情况(全局上行下行流量),看进程使用流量

1.网络

流量优化策略

1.数据的压缩
2.不同数据格式的采用
3.控制访问的频次
4.只获取必要的数据
5.缓存机制
6.针对不同的网络类型设置不同的访问策略


电量

监控方法

方法优点缺点
系统自带接口方便无法查看固定某一段时间的电池精确消耗
硬件检测精确获得对应应用的电量消耗需要拆机,成本过高
软件工具检测精确度取决于第三方软件的准确性

常见耗电量大的场景

1.定位
2.网络传输
3.屏幕亮度
4.锁屏-解锁


流畅度

监控指标

帧率FPS:GPU一秒内绘制的帧数(一秒内呈现给用户的图片数)

流畅度问题现象

1.10-12帧:让大脑觉得动作是连续的
2.>24帧:流畅效果
3.60帧:最佳效果


启动时间

定义:从启动App到主页面加载完成的速度

分类:

        冷启动:启动App进程(从无到有)

        热启动:App从后台置于前台

监控指标

1.启动耗时计算


稳定性

测试内容:在App中随意操作,挖掘可能出现的异常(卡顿 / 闪退 / 奔溃 / 无响应)

工具:Monkey

sdk环境

作用:android应用稳定性测试、调试工具、日志记录等

安装

1.解压到指定目录
2.将安装目录添加到path中
        a).新建环境变量:ANDROID HOME=D:\Android\sdk
        b).添加path路径:%ANDROID HOME%\tools 、%ANDROID HOME%\platform-tools
3.在cmd输入adb version验证

Mokey

作用:模拟用户随机(触摸屏幕/滑动/按键)等操作对程序进行稳定性测试

位置:/system/framework/monkey.jar(android)

测试步骤

1.获取包名(测试软件名)

adb shell dumpsys window windows | grep usedApp

2.执行命令,并将执行结果写入日志

adb shell monkey -p 包名 基础参数 (事件类型) (调试选项) 次数 > 存放文件

eg:
1.adb shell monkey -p com.tpshop.malls -v 2000 > tpshop.1og
2.adb shell monkey -p your.package.name --pct-touch 50 -v 1000
3.adb shell monkey -p your.package.name --throttle 500 -v 1000
4.adb shell monkey -p your.package.name -s 12345 -v 1000
5.adb shell monkey -p your.package.name -s 12345 --throttle 500 -v -v 1000
6.adb shell monkey -p your.package.name -s 12345 --throttle 500 -v -v --pct-touch 50 --pct-motion 30 --ignore-crashes --ignore-timeouts 1000 > /path/to/your/logfile.log
7adb shell monkey -p your.package.name -v -v --pct-touch 50 --pct-motion 30 --ignore-crashes --ignore-timeouts 1000 > /path/to/your/logfile.log.
分类参数解释例子
基础参数-v日志的详细程度,一共三个级别,-v -v -v最高-v
-S随机动作的序列-S 123
--throttle随机事件之间的延迟--throttle 500
事件类型--pct-touch触摸事件(点击 / 长按)的百分比--pct-touch 20
--pct-motion动作事件(滑动 / 拖动)的百分比--pct-motion 50
--pct-trackball轨迹事件(轨迹球)的百分比——
--pct-syskeys-系统按键(音量 / 关机)的百分比——
--pct-anyevent其他事件的百分比——
调试选项--ignore--crashes忽略应用程序崩溃--ignore--crashes
--ignore-timeouts忽略无响应ANR——
--ignore-security-exceptions忽略许可证书崩溃——
--kill-process-after-error发生错误停止运行并保持当前状态,防止错误扩散——
--monitor-native-crashes监视并报告Androids系统本地代码的崩溃事件——

         3.打开日志,搜索异常关键字检查异常

异常关键字
无响应ANR、timeout
崩溃NullPointerException、Exception
闪退memory out、memory Leak
错误error
关注测试点

1.APP使用时对CPU、内存的占用情况
2.APP使用时是否流畅等
3.APP使用时电量流量的消耗情况
4.APP的启动时间是否过长
5.APP是否能长时间稳定运行



专项测试

目的:

        1.保障主流移动设备能正常使用App

        2.不同网络环境App能正常使用

        3.不同App版本正常使用

环境搭配

定义:App应用运行所依赖的软硬件

常用工具:模拟器(移动设备) + App安装包(apk)

安装方法:将apk拖入模拟器

安装卸载升级
安装场景
正常场景

1.在不同的操作系统版本上安装
2.从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)
3.不同的安装路径(安装到手机上、安装到SD卡上)
4.卸载后安装
5.正在运行时覆盖安装


异常场景

1.安装时出现异常(关机、断网),恢复后能否继续安装
2.安装时存储空间不足
3.安装时手动取消后再次安装
4.低版本覆盖安装高版本


卸载关注点

1.正常卸载(APP手动卸载、工具卸载)
2.运行时卸载
3.取消卸载
4.卸载异常中断后卸载
5.卸载后无数据残留


升级关注点

1.从临近版本升级
2.跨版本升级
3.不同渠道升级(应用商场、手机助手)
4.升级提醒成功(可不提醒、可以提示升级、强制升级)
5.应用内升级时非WIFI提醒



服务器push消息推送

定义:App推送的各种通知

推送方式
方式内容优缺点
Pull(拉)客户端主动获取客户端固定时间主动向服务器获取消息消耗两端资源
Push(推)客户端被动获取当服务器有更新消息时,主动发送到客户端节省两端资源
Push消息推送流程

1.服务器有更新信息
2.服务器将消息推送到推送服务器中(专门用来推送的服务器)
3.推送服务器将信息推送到App中

推送服务器种类

种类平台
操作系统级别

ios:APNs

Android:C2DM

自己搭建推送服务器
第三方推送平台

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

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

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

Push消息关注测试点

关注点

App服务器设置:

        1.推送内容

        2.推送时机

        3.推送频率

        4.推送人群(全部用户/部分用户)

手机端设置:

        1.是否接受通知

        2.提醒位置

测试点

APP服务器设置测试点:
        1.Push消息是否按指定业务规则发送
        2.当Push消息是针对特定用户时,检查收到的Push与用户身份是否相符等
手机端设置测试点:
        1.设置不接收推送消息时,用户是否会收到Push消息

        2.设置push消息显示的位置,是否与配置一致

        3.收到push消息,是否能正常打开跳转等
其他测试:
        1.APP在前台使用时,收到push消息如何提示

        2.APP在后台运行时,收到push消息如何提示

        3.APP离线,是否能收到PUSH消息。 



交叉事件测试

定义:一个功能在执行过程中,另外一个事件或者操作对该过程进行干扰

关注测试点

1.APP运行时接打电话
2.APP运行时收发信息
3.APP运行时查看应用推送
4.APP运行接上蓝牙设备
5.APP运行时接收文件弹窗提醒
6.APP运行时旋转屏幕
7.APP运行时切换网络(4G、Wi-Fi)
8.App运行时使用相机、计算器等手机自带应用
9.App运行时电量告警、插拔充电器 



用户体验测试

关注测试点

易用性测试:
        1.是否有空数据界面设计,引导用户去执行操作
        2.菜单层次是否太深
        3.完成业务操作的步骤是否过多

        4.界面中按钮可点击范围是否适中

关注手机应用上的其他辅助功能:

        1.放大字体

        2.反色

        3.语音转换

        4.多点触碰等功

UI界面测试:对照UI交互设计文档,检查每个界面设计菜单、对话框、窗口、风格、布局等

横竖屏测试:横竖屏的切换是否正常(表格因为横竖屏的显示宽度不一样)



兼容性测试
测试范围内容
品牌型号(品牌、系统版本、分辨率)品牌(Android、ios)

android系统:5.1、6.0、7.0、8.0

ios系统:11.x、12.x、13.x

分辨率:1080*1920、720*1280

屏幕尺寸:5.5、4.7

网络2G / 3G / 4G / 5G / wifi
软件兼容

系统软件:wlan设置、系统时间调节、LBS定位

其他app:后台播放音乐、进入动态页面点击动态视频

硬件兼容

手机硬件:home键、电源键、音量调节

外部硬件:耳机、蓝牙、数据线

测试方式

1.使用公司已有的真机进行兼容性测试
2.使用第三方兼容性平台进行测试(线上云测平台testin) 

App发布

发布方式

内部发布

作用:为了方便测试程序包的安装和管理

常用工具:蒲公英、Testlink

步骤

1.开发将应用测试包上传到平台
2.平台生成对应的二维码
3.测试直接扫码进行应用安装


线上发布

Android常用工具:豌豆荚、应用宝、360手机助手、各类手机品牌商城

ios常用工具:App store、iTools 

步骤

1.开发者注册账号
2.开发者申请在发布平台上架
3.针对不同平台,在软件包中加入对应的平台ID,上传到平台
4.平台审核通过后,即可在平台下载

发布策略

阶段环境
开发阶段开发环境
测试阶段测试环境(预发布环境)
灰度发布先发布少数服务器(少数客户可见,有异常回滚)
生产环境服务器集群(多台电脑)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值