测试01
主流测试技能
1.功能测试
2.接口测试
3.自动化测试
4.性能测试
测试常用分类
-
按阶段分
- 单元测试:针对程序源代码进行测试(开发)
- 集成测试:又称接口测试,主要针对模块与模块或系统与系统之间的接口进行验证
- 系统测试:针对软件全面进行测试(功能、兼容、文档)
- 验收测试:使用内测、公测来实现
- 内测:公司内部进行测试
- 公测:让玩家来进行测试
-
按代码可见度划分
- 黑盒测试:功能测试(完全看不见程序源代码,只针对功能进行验证)
- 灰度测试:接口测试(看不见部分代码)
- 白盒测试:单元测试(针对程序源代码进行测试)
-
扩展-总结
1.系统测试和黑盒测试的重点是 功能测试 2.集成测试和灰盒测试又称 接口测试 3.单元测试和白盒测试是对代码进行测试 4.自动化测试 归属 功能测试 5.性能测试、安全测试 归属 专项测试
-
扩展-测试策略
冒烟测试:大规模执行测试之前,针对程序主功能进行验证,保证程序具备可测性。
面试题:提测标准是什么?——冒烟测试通过
测试之前要怎么做?——冒烟测试
模型
质量模型
测试 模型
质量模型
重点:功能、兼容、性能、易用、安全
W模型
开发流程:需求分析、概要设计、详细设计、编码
测试流程:单元测试、集成测试、系统测试、验收测试
测试流程
1.需求分析
2.测试计划
3.编写用例
4.执行用例
5.缺陷管理
6.测试报告
-
需求分析
确定各部门对需求理解一致 站在不同角度对需求进行查漏补缺
-
测试计划
核心: 1.测什么:测试目标和范围 2.谁来测:人员进度安排 3.怎么测:测试策略、测试工具
-
测试用例设计
设计执行测试的文档
-
测试用例执行
执行测试的文档
-
缺陷管理
提交——>验证——>关闭
-
测试报告
测试目标、测试过程、缺陷统计、缺陷分析、测试总结
测试用例
- 用例:用户使用的案例
- 测试用例:执行测试的文档
- 考虑点:质量模型(功能、性能、兼容、安全、易用
- 作业:
- 防止漏测
- 实施测试标准
- 格式(八大要素)
- 用例编号:项目+模块+编号
- 用例标题:预期结果+操作步骤
- 模块/项目:所属项目或模块
- 前置条件:要执行此条用例,有哪些前置操作
- 优先级:表示用例的重要程度或者影响力p0-p4(p0最高)
- 测试步骤:描述测试步骤
- 测试数据:操作的结果,没有的话可以为空
- 预期结果:期望达到的结果
测试02
解决穷举问题
方法:等价类可以实现
- 分类:
- 有效等价:所有有效数据集合,取一个即可
- 无效等价:所有无效数据集合,取一个即可
- 步骤
- 明确需求
- 确定有效和无效等价类
- 提取数据编写用例
- 案例:6-10位自然数
- 示例:
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 |
---|---|---|---|---|---|---|---|
qq_001 | 合法(8位自然数) | 打开qq程序 | P0 | 1.输入qq号 2.点击验证 | 12345678 | 合法 | |
qq_002 | 不合法(4位自然数) | 打开qq程序 | P0 | 1.输入qq号 2.点击验证 | 1234 | 不合法 | |
qq_003 | 不合法(8位非自然数) | 打开qq程序 | P0 | 1.输入qq号 2.点击验证 | 1234567a | 不合法 |
-
用例执行
预期结果与实际结果不一致,为缺陷
-
场景
针对:需要有大量数据测试输入,但是没法穷举测试的地方
输入框、下拉列表、单选复选框
典型代表:页面级的输入框类测试
解决边界限制问题
边界值设计法
-
名词:
- 上点:边界上的点 开内闭外 开区间不包括() 闭区间包含[]
- 离点:离边界最近的点
- 内点:范围内的点
-
示例:6<=9<=10 6,10,5,11,
-
使用场景
- 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等
- 典型:有边界范围的输入框类测试
解决多条件依赖
判定表法
定义:是一种以表格形式表达多条件逻辑判断的工具
组成:
- 条件桩:列出问题中的所有条件,次序无关紧要
- 动作桩:列出问题中可能采取的操作,顺序没有约束
- 条件项:列出条件对应的取值,所有情况下的真假值
- 动作项:列出条件项、各种取值情况下应该采取的动作结果
规则:
- 判定表中贯穿条件项和动作项的一列就是一条规则
- 假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则
步骤:
1.明确需求
2.画出判定表
3.根据股则编写测试用例
案例:
条件 | >500 | 是 | 是 | 否 | 否 |
---|---|---|---|---|---|
条件 | 未过期 | 是 | 否 | 是 | 否 |
动作 | 批准单 | √ | × | √ | √ |
动作 | 提货单 | √ | × | √ | √ |
动作 | 通知单 | × | √ | × | √ |
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 |
---|---|---|---|---|---|---|---|
oreder_001 | 发批准单和提货单(>500,未过期) | 订单 | / | P1 | 1.输入金额,2.查看是否过期 | 金额:501未过期 | 发:批准单,提货单。不发:通知单 |
oreder_002 | 发通知单(>500,过期) | 订单 | / | P1 | 1.输入金额,2.查看是否过期 | 501,过期 | 不发:批准单,提货单。发:通知单 |
oreder_003 | 发批准单和提货单(<500,未过期) | 订单 | / | P1 | 1.输入金额,2.查看是否过期 | 400,未过期 | 发:批准单,提货单。不发:通知单 |
oreder_004 | 发批准单、通知单、提货单(<500,过期) | 订单 | / | P1 | 1.输入金额,2.查看是否过期 | 400,过期 | 发:批准单,提货单,通知单 |
应用场景
-
有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
-
判定表一般适用于条件组合数量较少的情况(4个条件以下)
解决业务测试点覆盖问题
方法:使用流程图,测试业务
获得流程图后,按流程图走测试用例
测试03
缺陷介绍
定义:软件使用中任何问题都称为缺陷,简称:bug
衡量是否为缺陷的标准
少功能、功能实现错误、多功能、隐性功能错误、不易使用
缺陷产生的原因
需求描述不易理解,有歧义,错误
设计文档存在错误或者缺陷
编码阶段代码出现错误
运行阶段,软硬件系统本身故障导致软件缺陷
缺陷的生命周期
注入bug->发现bug->修复bug
缺陷的编写
缺陷ID | 缺陷标题 | 缺陷状态 | 严重程度 | 优先级 | 所属模块 | 缺陷描述 | 附件 |
---|---|---|---|---|---|---|---|
bug_001 | 正常下单成功后支付失败 | new | P0 | P0 | Ego核心业务 | 1.打开小程序2.选中商品添加购物车进行下单3.在订单详情页点击去付款。预期结果:唤起微信支付,实际结果:未响应 |
面试题:
发现bug后,首先会怎么办?——确认bug可复现
缺陷管理工具
禅道、jira
项目实战
登录模块
提取测试点
编写测试用例
发布文章
需求分析
1.文章标题不能小于5个字符
2.文章内容不能为空
3.频道不能为空
4.封面:单图、无图、三图、自动
5.选择图片
6.点击发表,提示新增文章成功,跳转到内容列表,文章状态显示待审核
7.点击存入草稿,提示新增文章成功,跳转到内容列表,文章状态显示草稿
测试点提取:
编写用例
测试流程
1、需求分析
2、测试计划
3、设计⽤例
(1、设计测试点 2、编写⽤例覆盖测试点)
4、执⾏⽤例
5、缺陷管理(提交->验证->关闭)
6、测试报告
缺陷管理
管理流程:提交缺陷->开发修复->测试验证->测试管理
⼯具:项⽬来定(禅道、jira、Excel)
缺陷编号、缺陷标题、模块、严重级别、复现步骤、指派⼈、修复时间、缺陷状态、是否上线、缺陷类
型、测试⼈、备注/附件
测试报告
1、项⽬背景
2、测试⽬标
3、提测标准
4、结束标准(上线标准)
5、⻛险控制
6、bug统计
7、bug分析
8、测试总结