功能测试
一 功能测试理论
1 测试流程
1 需求分析评审
2 编写测试计划和方案
3 编写测试用例并评审
4 执行测试用例并提交缺陷
5 编写测试报告
2 定义
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能
二 测试用例设计
0 使用方法选择
1 等价类划分法
- 引入:避免穷举法
- 概念:在所有测试数据中,具有某种共同特征的数据子集
- 有效等价类:满足需求的数据子集
- 无效等价类:不满足需求的数据子集
- 设计用例步骤:
- 使用场景:数据量大,需要测试数据输入的地方,例如页面级的输入框类测试
2 边界值分析法
- 引入:边界条件设置出错
- 边界范围的确定
-
- 上点:边界上的点(正好等于)
- 离点:距离上点最近的点(刚好大于、刚好小于)
- 内点:范围内的点(区间范围内的数据)
- 设计用例步骤
- 1 明确需求
- 2 确定有效和无效等价类
- 3 确定边界范围值
- 4 提取数据编写测试用例
- 适用场景
- 在等价类基础上针对有边界范围的测试数据输入的地方
- 有边界范围的输入框测试
- 常见词语描述:大小,尺寸,最大,最小。至多,至少
3 判定表法
- 引入:考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系
- 概念:判定表:一种以表格形式表达多条件逻辑判断的工具
- 条件桩:列出问题中的所有条件,次序无关紧要
- 动作桩:列出问题中可能采取的操作,排列顺序没有约束
- 条件项:条件对应的取值,所有可能情况下的真假值
- 动作项:条件项各种取值情况下应该采取的动作结果
- 设计用例步骤:
- 1 明确需求
- 2 画出判定表
- 列出条件桩和动作桩(所有输入条件和输出结果)
- 填写条件项,对条件进行全组合
- 根据条件项的组合确定动作项
- 简化、合并相似规则(有相同的动作)
- 3 根据规则编写测试用例
3.5 因果图(判定表的另一种形式)
4 正交法
5 场景法
6 错误推测法
7 状态迁移法
三 缺陷(BUG)管理
- 定义:软件在使用过程中存在的任何问题(错误 / 异常),测试执行时,实际结果与预期结果不一致,软件缺陷会导致产品在某种程度上不能满足用户的需求
- 判断标准:
- 产生原因:
- 核心内容:
构成缺陷5个基本要素:
1 缺陷编号
缺陷的唯一性标志
2 缺陷状态
缺陷处于哪个阶段
3 缺陷所属模块
缺陷属于哪个被测的模块
4 缺陷严重程度
该缺陷的破坏程度或影响程度
- critical
- major
- medium
- minor
- tiny
5 缺陷优先级
处理该缺陷的优先程度
- urgent priority
- veryhigh priority
- high priority
- medium priority
- low priority
优先级和严重程度的区别
- 软件缺陷类型:
- 功能错误
- 界面UI错误
- 兼容性错误
- 易用性
- 改进建议
- 其他
提交缺陷
- 提交缺陷注意事项
- 可重现:可以复现,别人可以用相同的步骤出现缺陷
- 唯一性:一个缺陷上报一个问题
- 规范性:符合公司或者项目要求
- 准确:描述的信息是正确的
- 具体:有细节且是真实特定的
- 简洁易懂:描述简单容易理解
- 次序清晰:描述缺陷过程有条件,有先后顺序
- 缺陷书写规范:
- 缺陷跟踪流程:
项目管理工具 — 禅道
产品、测试、开发三权分立
四 功能测试与数据库的关系
1 数据库应用场景
网站与数据库的交互:
- 验证数据的准确性与完整性
- 借助数据库进行缺陷定位
- 借助数据库构造测试场景(需要特定的测试数据)
- 借助数据库数据备份更新
2 功能测试与抓包工具Fiddler
- 抓包(package capture):将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全
- 原理:请求先发送给Fiddler,Fiddler接收请求后转发给服务器,服务器处理请求后将响应数据返回给Fiddler,Fiddler再转发给客户端(浏览器)
- 功能测试用到的抓包工具场景:
3 HTML和HTTP协议
(1)URL统一资源定位符:
- 格式:
- 协议:客户端和服务器通讯的标准,http https ssh
- ip或域名:
- 端口号port:协议默认的端口号是可以省略 的
- http: 80 / https:443 / ssh:22
- 资源路径:资源存放的位置,资源可以是各种超文本信息,如音频、视频
- 参数:?与主体部分分开,有多个参数时用&拼接 / 参数名=参数值
(2)HTML 超文本标记语言
- HyperText Markup Language
- 超文本:声音、视频、图片、超链接
- 标记:通过标记符(HTML语言 / <标记符>内容</标记符>)的格式让内容具有不同的表现形式,从而达到超文本的目的
(3)HTTP 超文本传输协议
- HyperText Transfer Protocol