软件测试入门
用于复习知识点
软件测试的目的:减少软件bug,保证软件质量
路线:
软件测试定义
使用技术手段验证软件是否满足使用需求。
方向
测试分类
1.按阶段分类:
阶段 | 简介 |
---|---|
单元测试 | 针对程序源代码进行测试 |
集成测试 | 针对程序接口进行测试 |
系统测试 | 针对程序功能、非功能进行测试 |
验收测试 | 使用不同用户(内测、公测)进行测试 |
2.按代码可见度分类
可见度 | 简介 |
---|---|
黑盒测试 | 不关注源码,针对程序UI功能进行测试 |
灰盒测试 | 针对程序部分代码进行测试(测试) |
白盒测试 | 针对程序源代码进行测试 |
测试模型
质量模型
衡量一个优秀软件的维度
质量模型:功能、性能、兼容、易用、安全、可靠性、移植性、维护性。
如何开展软件测试工作
流程 | 做什么 |
---|---|
需求评审 | 确保各部门需求理解一致 |
计划编写 | 测什么、谁来测、怎么测 |
用例设计 | 验证项目是否符合需求的操作文档 |
用例执行 | 项目模块开发完成,开始执行用例文档实施测试 |
缺陷管理 | 对缺陷进行管理 |
测试报告 | 实施测试结果文档 |
测试用例
什么是用例:用户使用的案例
什么是测试用例:为测试项目而实际的执行文档
测试用例的作用:
- 复制漏测
- 实施测试的标准
格式:
用例编号 | 用例标题 | 项目/模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
---|---|---|---|---|---|---|---|
项目_模块_编号 | 预期结果(测试点) | 所属项目或模块 | 表示用例的重要程度或者影响力P0~P4(P4最高) | 要执行此条用例,有哪些前置操作 | 描述操作步骤 | 操作的实际,没有的话可以为空 | 预期达到的结果 |
等价划分
说明:在所测试数据中,对具有某种共同特征的数据集合进行划分。
分类:
- 有效等价类:满足需求的数据集合
- 无效等价类:不满足需求的数据集合
步骤:
- 明确需求
- 确定有效和无效等价类
- 提取数据编写测试用例
应用场景
针对:需要有大量数据测试输入,但是没法穷举测试的地方。
- 输入框
- 下来列表
- 单选复选框
典型代表:页面的输入框类测试。
边界值分析法
完整的用例应该是等价类和边界值一起写
边界值什么:
- 上点:边界上的点
- 离点:(开内必外)离边界最近的点
- 内点:范围内的点
提示:
- 有关范围的限制,最多7条用例(7点可优化为5点)
- 边界值能解决位数限制问题,但是不能解决类型问题
步骤
1.明确需求
2.确定有效和无效等价
3.确定边界范围
4.提取数据编写用例
使用场景:
单个输入框:常用的方式,边界+等价类
关键词:大小,尺寸,重量,最大,最小,至多,至少等修饰词
典型代表:有边界范围的输入框测试类
判定表
判定表法
以表格形式表达多条条件逻辑判断的工具
组成:
信息 | 简述 |
---|---|
条件桩 | 列出问题中所有条件,列出条件的次序无关紧要 |
动作桩 | 列出问题中可能采取的措施,操作的排序顺序没有约束 |
条件项 | 列出条件对应的取值,所有可能情况下的真假值 |
动作项 | 列出条件项的,各种取值情况应该采取的动作和结果 |
判断:
- 判定表中贯穿条件项和动作项的一列就是一条规则
- 假设有n个条件,每个条件的取值有两个,则组合有2的n次方种规则。
判定表设计用例步骤:
- 明确需求
- 画出判定表
1.列出条件桩和动作桩
2.填写条件项,对条件进行全组合
3.根据条件项的组合确定动作项
4.简化,合并相似规则(有相同的动作)- 根据规则编写测试用例
使用背景:解决多条件有依赖关系测试
- 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
- 判定表一般适用于条件组合数量少的情况(比如四条以下,超过四条则考虑正交法)
业务测试覆盖
测试要先测试业务,再测试单功能,单模块,单面等。
业务测试使用流程图梳理业务用例,要先把业务跑通再进行后面的单功能
错误推荐法
应用场景:当项目用例执行完毕,且bug修复完成,离上线还有一段时间,此时可以使用此方法复测主要业务或测试未覆盖的功能。
缺陷(bug)
缺陷定义:软件中存在的各种问题,都为缺陷,简称bug
缺陷标准:
- 缺少功能
- 功能错误
- 多功能
- 缺少隐形功能
- 易用性
缺陷产生的原因:
- 需求文档
- 结构设计
- 编码实现
- 环境(硬件,软件)
缺陷的生命周期:
1.回归测试:常规项目回归,项目新增模块,最基本要测试新增功能模块和新增模块关联的旧模块。
2.回归bug:上一个版本发现的缺陷,开发修复完毕,在下一个版本进行重新验证。
缺陷的核心内容
- 缺陷的标题:描述缺陷的核心问题
- 缺陷的预期结果:希望的结果
- 缺陷的预置条件:缺陷产生的前提
- 缺陷的实际结果:实际得到的结果
- 缺陷的复现步骤:复现缺陷的过程
- 缺陷的必要附件:图片日志等信息(证据)
缺陷提交要素
- 缺陷报告编号:缺陷的唯一标志
- 严重程度:严重(S1),一般(S2),微小(S3),建议(S4)
- 缺陷优先级:P0(24小时内解决),P1(发布前解决),P2(下一个版本再解决)
- bug类型:代码错误,兼容性问题,设计缺陷,性能问题
- 缺陷状态:new(新建),open(打开),closed(关闭),postponed(延期)
软件缺陷的类型
- 功能错误
- 界面(UI)错误
- 兼容性
- 数据
- 易用性
- 改进,建议
- 架构
工作流程
- 设计用例->执行用例(执行测试)->缺陷(提交,验证,关闭)
- 缺陷定义:任何问题(bug)
- 缺陷标准:多功能,少功能,错误,缺少隐性功能,易用性
- 描述缺陷重点:缺陷标题,前置条件,复现步骤,预期结果,附件备注
- 提交缺陷信息:指派人,缺陷等级,修复优先级,类型,状态(统计缺陷)
缺陷编写
流程
提交缺陷的注意事项
笔者水平有限,用来自己复习时参考。