功能测试
测试分类
按测试阶段划分
单元测试
集成测试
- 组装测试,在单元测试的基础上,把多个模块组装到一起进行测试,终点关注模块和模块之间的接口
系统测试
- 把软件项目作为一个整体进行测试,测试的依据是需求说明书
验收测试
是否查看源代码分类
黑盒
白盒
灰盒
按是否运行分类
静态测试
动态测试
是否自动化
手工测试
自动化测试
其他分类
1. 冒烟测试
- 对软件最基本的流程和工作做一个粗略的测试,看最基本的流程是否能流通
- 测试拿到研发的第一个版本,一般先冒烟。
2. 回归测试
- 当修复一个bug后,把之前测试用例在新的代码下再进行测试
3. 随机测试
4. 探索性测试
软件质量模型
1. 功能性
2. 可靠性
3. 易用性
4. 效率
5. 维护性
6. 可移植性
开发模型–瀑布模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NwBKWPDf-1629001033825)(C:\Users\jss\AppData\Roaming\Typora\typora-user-images\image-20210708174401396.png)]
- 需求分析
- 概要设计
- 详细设计
- 详细到可以为编码做支持
- 类和类关系,类的设计
- 函数设计
- 各个接口的细节
- 数据库表的关系,字段关系
- 编码
- 软件测试
- 软件维护
1. 瀑布模型的特点
2. 瀑布模型优缺点
- 优点
- 缺点
- 依赖于需求,不能适应需求的变化
- 风险到项目后期才体现,失去早期纠正机会
3. 快速原型模型(了解)
4. 螺旋模型(了解)
测试过程模型
v模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3rB0BvOJ-1629001033826)(C:\Users\jss\AppData\Roaming\Typora\typora-user-images\image-20210706204838434.png)]
- 优点
- 缺点
- 和研发瀑布模型一样,不能适应需求的改变,灵活性较低
w模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4ZxKb6y-1629001033827)(C:\Users\jss\AppData\Roaming\Typora\typora-user-images\image-20210706205011012.png)]
- 优点
- 测试工作伴随着整个研发周期,测试对象不只是代码,文档也需要测试
- 更早的介入研发工作,可以尽早发现问题,及时处理
- 缺点
测试用例
八大要素
- 用例的编号
- 用例标题
- 测试项目
- 用例级别
- 预置条件
- 测试数据
- 执行步骤
- 预期结果
编写方法
1. 等价类划分法
2. 边界值划分法
- 上点
- 离点
- 内点
- 开区间,闭区间
- [开始值,结束值] —闭区间,包含开始值,包含结束值
- (开始值,结束值)— 开区间,不包含开始值,不包含结束值
[2o,30] 大于等于20,小于等于30 闭区间
20和30是上点
25内点
―19和31是离点,这里的离点是无效数据
(20,30)大于20,小于30 开区间
20,30是上点23内点
21,29是离点,这里的离点是有效数据
(20,30]大于20,小于等于30左开右闭
区间[20,30)大于等于20,小于30,左闭右开区间
对于闭区间上点是有效数据,离点是无效数据 对于开区间,上点是无效数据,离点是有效数据 不管开和闭区间,内点都是有效数据
3. 判定表法
1. 判定表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06Owdfys-1629001033827)(C:\Users\jss\AppData\Roaming\Typora\typora-user-images\image-20210707143136116.png)]
2. 使用判定表步骤
- 先明确需求
- 画判定表
- 先画条件桩
- 然后动作桩
- 罗列条件项的不同组合
- 根据条件项完成动作项
- 编写测试用例
不能直接用判定表去执行测试用例+
通过判定表编写测试用例,用测试用例去执行测试操作
测试用例有很重要的两个原则
4. 因果图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vcNhOCsL-1629001033830)(C:\Users\jss\AppData\Roaming\Typora\typora-user-images\image-20210707143524007.png)]
使用因果图步骤
- 明确需求
- 画因果图
- 根据因果图画判定表
- 根据判定表写测试用例
5. 正交表
-
L
n
(
m
k
)
L_n(m^k)
Ln?(mk)
- n表示行数
- k标识列数
- m表示列的取值个数
L
9
(
3
4
)
L_9(3^4)
L9?(34)
表示:9行4列,每列有3种取值个数 叫4因素,3水平
使用正交表步骤
- 明确需求
- 绘制正交表
- 先确定列数
- 确定正交表每列的取值个数
- 根据因素和水平可以确定行数
- 根据正交表编写测试用例
6. 场景法
- 用流程图描述用户的使用场景
- 用覆盖流程路径来设计测试用例
- 从流程图开始到结束,有几条路就是几条路径
- 一个路径对应一条测试用例
使用步骤
7. 错误推测法(了解)
- 瓶测试工程师的直觉和经验来推测项目中可能出现的bug,进行测试。
- 时间紧张,突发事件
缺陷
缺陷定义
缺陷判定标准
- 软件没有达到需求说明书表明的功能
- 软件出现了需求说明书指明不会出现错误的地方
- 软件超出了需求说明书指明的范围
- 软件出现了需求说明书虽未指明,但应该达到的目标
- 软件难以使用,效率低下
缺陷产生的根源
缺陷信息
- 缺陷编号
- 缺陷的状态
- new-新建
- open-打开
- fixed-修复
- closed-关闭
- rejected-拒绝
- postpone-拖延
- 缺陷标题
- 严重程度
- 5-critical 最高优先级
- 4-veryhigh 非常高优先级
- 3-high 高
- 2-medium 中
- 1-low
- 优先级
- 5-urgent 最高
- 4-veryhigh 非常高
- 3-high 高
- 2-medium 中
- 1-low
- 所属模块
- 缺陷的详细描述
缺陷报告注意事项
- 缺陷报告不能有缺陷
- 表达和描述简洁,准确
- 一个缺陷一个报告
- 缺陷一定是可重现的
- 避免出现模糊的词汇
- 不能有个人感情色彩
- 出现bug过程一定要详细
缺陷跟踪流程
- new新建状态
- open打开状态
- fixed修复状态
- closed关闭状态
- 验证缺陷确实修复成功后,一般由缺陷的发起人设置状态为关闭状态
- reopen重新打开状态
- 一个已经关闭的缺陷在此出现,就要设置为重新打开状态
bug的生命周期
bug的生命周期,就是一个bug被发现到这个bug被关闭的过程
缺陷分析需要注意的点
- 那个模块问题最多
- 哪个测试工程师测试的缺陷最多
- 各类缺陷数量占比
- 开发是否可以及时修复缺陷
- 开发人员一次修复缺陷占比
- 软件是否可以正常发布
项目测试流程
熟悉项目步骤
- 了解项目业务特性
- 了解项目的用户
- 了解项目的模块
- 了解项目技术栈
1. 需求评审
1. 什么是软件需求
2. 需求评审
3. 需求评审目的
- 保证需求的完整和准确
- 保证项目中相关人员对需求的理解达到一致
4. 需求评审的形式
5. 需求评审的参与人员
6. 测试人员在需求评审中的作用
- 确认自己对需求清晰的理解,没有疑惑
- 确认需求文档的完整、准确,可以支持后期的测试工作
- 对需求中不合理的地方提出修改意见
2. 编写测试计划与测试方案
1. 测试计划核心内容
- 明确测试的目标与范围
- 执行计划的角色与职责
- 测试任务的进度和资源分配
- 风险的评估与应急计划
- 测试的准入准出标准
2. 测试方案
3. 测试用例设计与评审
1. 测试用例需求来源
2. 编写测试用例的步骤
- 需求分析
- 编写测试点
- 测试中需要关注的具体功能点
- 拆分需求,作为编写测试用例的辅助
- 编写测试用例
3. 编写测试用例的原则
- 能看懂—确保每个用例通俗易懂
- 能执行—测试用例清晰明确,用例中每个步骤都是可执行的
4. 测试结果的4种状态说明
- pass------通过;
- fail-----失败;
- block------阻塞;
- N/A------忽略;
4. 测试执行与bug跟踪
执行测试用例原则
- 严格按照测试用例书写的步骤执行
- 执行过程中遇到bug一定要及时提交
5. 编写测试报告
状态迁移法
- 找到被测对象的所有状态,和状态的转化过程,以此编写测试用例
- 状态迁移法不关注具体模块的具体功能,关注状态的转化过程流程是否正确
适用场景
- 涉及到了复杂的业务场景,需求说明书往往不能阐述清楚,如果只按照需求说明书测试单个功能点,容易出现疏漏
状态迁移法使用步骤
- 分析需求,找到所有的状态
- 绘制状态迁移图
- 根据图绘制状态迁移树
- 根据树编写测试用例
- 从根节点到一个叶子节点就是—条路径。
- —条路径对应一个测试用例
- 树中有多个叶子节点就对应多少测试用例
会员列表功能测试
- 熟悉会员列表功能需求
- 整理测试点
测试有很多输入项的用例测试数据整理
流程图
关注点
执行流程测试的时机
- 基本功能都完成后,进行业务流程测试
- 软件上线前,再次进行业务流程的回归测试
执行流程测试的步骤
- 分析需求,确定业务的流程
- 绘制流程图
- 根据流程图编写测试用例
执行流程测试用例注意项
功能测试涉及到数据库的四种场景
- 执行用例过程中,有时需要到数据库验证数据的准确性与完整性
select sum(user_money) from tp_users;
- 进行bug定位时,有时需要到数据库查看数据的详细信息
select nickname,mobile,email,sex from tp_users where nickname like 'user3%';
- 构造某种测试场景时,可以在数据库里直接修改数据,要比使用界面更有效率
update tp_cart set goods_num = 2200 where id =21;
select id,user_id,goods_name,goods_num from tp_cart where user_id = 2596;
- 软件升级过程中,有时会涉及到历史数据的处理,这种清空需要执行升级SQL ,并验证结果
alter table tp_users add column credit_score int;update tp_users set credit_score = 100;
select user_id,nickname,credit_score from tp_users order by user_id desc limit 0,10;
√ 非功能测试
兼容性测试
- 不同的操作系统,不同的浏览器,不同分辨率下,软件的行为是否一致
- 具体的兼容性测试环境是公司来指定的
界面测试/ui测试
- 关注的是软件的外观
- 测试依据
- 产品原型图或者是UI设计图
- 如果没有原型图
- 站在用户的角度来观察界面,导航是否合理,风格是否一致,是否有基本的错误
易用性测试
- 站到用户角度使用软件,判断软件是否移动,易学,易用
- 关注点:
性能测试
- 验收软件是否达到预期的性能指标
- 通过测试工程中的数据发现存在的性能瓶颈,以便优化软件
- 稳定性—在一定负荷下测试一定的时间。
安全性测试
- 如果软件涉及到人身安全,财产等保密信息就需要进行安全性测试
测试报告
- 测试报告代表测试工作的一个里程碑
- 主要内容
- 测试工作的经过与结果
- 风险评估
- 缺陷汇总与分析
- 测试工作的总结与改进
HTTP协议
- 协议交流最基本原理
- 客户端client—浏览器
- 服务器server
- client发一个请求,server回一个响应
HTTP请求和相应的格式
fiddle抓包工具
用性测试
兼容性测试
- 不同的操作系统,不同的浏览器,不同分辨率下,软件的行为是否一致
- 具体的兼容性测试环境是公司来指定的
界面测试/ui测试
- 关注的是软件的外观
- 测试依据
- 产品原型图或者是UI设计图
- 如果没有原型图
- 站在用户的角度来观察界面,导航是否合理,风格是否一致,是否有基本的错误
易用性测试
- 站到用户角度使用软件,判断软件是否移动,易学,易用
- 关注点:
性能测试
- 验收软件是否达到预期的性能指标
- 通过测试工程中的数据发现存在的性能瓶颈,以便优化软件
- 稳定性—在一定负荷下测试一定的时间。
安全性测试
- 如果软件涉及到人身安全,财产等保密信息就需要进行安全性测试
测试报告
- 测试报告代表测试工作的一个里程碑
- 主要内容
- 测试工作的经过与结果
- 风险评估
- 缺陷汇总与分析
- 测试工作的总结与改进
HTTP协议
- 协议交流最基本原理
- 客户端client—浏览器
- 服务器server
- client发一个请求,server回一个响应
HTTP请求和相应的格式
fiddle抓包工具
|