软件测试的基本理论-黑盒测试-1
黑盒测试方法
- 一.黑盒测试方法
- 1,等价类划分法
- a:等价类划分概述
- 等价类划分
- b:设计测试用例
- 等价类划分demo
- 2.边界值分析法
- 边界值分析法概述
- 边界值分析法demo
- 3.因果图方法
- 因果图设计方法
- 因果图设计demo
- 4.决策表方法(判定表)
- 决策表概述
- 决策表demo
- 5.正交试验设计法
- 正交试验设计概述
- 正交法demo
- 6. 错误推测法
- 7、 场景法
一.黑盒测试方法
1,等价类划分法
主张:最常用的黑盒测试方法,主张以尽可能少的用例测试用例覆盖尽可能多的数据;
等价类:将这些输入数据按照需求进行分类,划分成若干个子集,这些子集就是等价类
正确划分等价类能极大程度较少测试用例的数量;测试会更准确有效;
a:等价类划分概述
等价类划分
1)有效等价类:有效值的集合,符合程序要求、合理且有意义的输入数据
2)无效等价类:无效值的集合
b:设计测试用例
确定等价类后,需要建立等价类表列出所有的划分出等价类,用以设计测试用例;
基于等价类划分测试用例的设计步骤:
1)确定测试对象,保证非测试对象的正确性
2)为每个等价类规定一个唯一的编号
3)设计有效等价类的测试用例,尽可能多的覆盖尚未被覆盖的有效等价类,直到测试用例覆盖所有的有效等价类
4)设计无效等价类,使其覆盖所有的无效等价类
等价类划分demo
某余额提现等价类划分
分析:
快速提款:限额10000元,普通到账:最大余额
1)选择快速提现
有效等价类:0<提取金额《=余额
第n次提取:0<提取金额+前几次《=余额
无效等价类:余额 <= 0或 大于余额
2)普通提现
有效等价类:0<提取金额《=余额
无效等价类:余额 <= 0或 大于余额
余额提现功能等价类表
功能 | 有效等价类 | 编号 | 无效等价类 | 编号 |
---|---|---|---|---|
选择快速提现 | 0<提取金额《=余额 | 1 | 余额 <= 0 | 2 |
>余额 | 3 | |||
选择快速提现 | 0<提取金额+前几次《=余额 | 4 | 余额 <= 0 | 5 |
大于余额 | 6 | |||
选择普通提现 | 0<提取金额《=余额 | 7 | 余额 <= 0 | 8 |
大于余额 | 9 |
根据等价类表设计测试用例-余额5000元
test case
用例序号 | 功能 | 金额 | 覆盖有效等价类编号 |
---|---|---|---|
001 | 快速到账1次 | 1000元 | 1 |
002 | 快速到账3次 | 1000元 | 4 |
003 | 快速到账 | -1000元 | 2 |
004 | 快速到账1次 | 6000元 | 3 |
005 | 快速到账3次 | -4000元 | 5 |
006 | 快速到账3次 | 4000元 | 6 |
007 | 选择普通提现 | 4000元 | 7 |
008 | 选择普通提现 | -4000元 | 8 |
009 | 选择普通提现 | 6000元 | 9 |
2.边界值分析法
由于程序开发多处于边界处理容易出错,所以边界值分析法能够有效找出缺陷
边界值分析法概述
边界值分析法是对软件的输入输出进行测试的一种方法,它通常作为等价类划分的一种补充测试。
边界值分析法demo
某余额提现边界值分析
分析:
1)快速提取:
第一次提取:提取金额边界值为-1、0、1、9999、10000、10001、5000
第N次取:已经提取2000,边界值为-1、0、1、7999、8000、8001、5000
2)普通提取
第一次提取:提取边界值-1、0、1、49999、50000、50001、20000
余额宝提现边界值分析测试用例
测试用例 | 功能 | 金额 | 被测边界 | 预期输出 |
---|---|---|---|---|
001 | 快速到账 | -1 | 0 | 无法提现 |
002 | 快速到账 | 0 | 0 | 无法提现 |
003 | 快速到账 | 1 | 0 | 提现1元 |
004 | 快速到账 | 9999 | 10000 | 提现9999元 |
005 | 快速到账 | 10000 | 10000 | 提现10000元 |
006 | 快速到账 | 10001 | 10000 | 无法提现 |
007 | 快速到账 | 5000 | 无 | 提现5000元 |
008 | 快速到账N | -1 | 0 | 无法提现 |
009 | 快速到账N | 0 | 0 | 无法提现 |
010 | 快速到账N | 1 | 0 | 提现1元 |
011 | 快速到账N | 7999 | 8000 | 提现7999元 |
012 | 快速到账N | 8000 | 8000 | 提现8000元 |
013 | 快速到账N | 8001 | 8000 | 无法提现 |
014 | 快速到账 | 5000 | 无 | 提现5000元 |
015 | 普通到账 | -1 | 0 | 无法提现 |
016 | 普通到账 | 0 | 0 | 无法提现 |
017 | 普通到账 | 1 | 0 | 提现1元 |
018 | 普通到账 | 49999 | 50000 | 提现49999元 |
019 | 普通到账 | 50000 | 50000 | 提现50000元 |
020 | 普通到账 | 50001 | 50000 | 无法提现 |
021 | 普通到账 | 20000 | 无 | 提现20000元 |
3.因果图方法
等价类与边界值主要侧重于输入条件,却没有考虑这些之间的关系,如,组合、约束
因果图描述多个输入之间制约关系,因果图(Cuase-effect Graph)是一种描述输入条件的组合及每种组合对应的输出的图形化工具。在因果图的基础上可以设计测试用例。
因果图设计方法
a)恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。
(b)非。若原因出现,则结果不出现;若原因不出现,则结果出现。
©或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。
(d)与。若几个原因都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。
为了表示因果图中的约束条件,可用一些符号在因果图中加以标识。
从原因方面考虑主要有4种约束条件:
(a)E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。
(b)I(包含、或)。a、b、c三个原因至少有一个出现。
©O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。
(d)R(需求)。a出现时b必定出现。
从结果方面考虑主要有1种约束条件:
(a)M(屏蔽)。a出现时,b必定不出现;a不出现时,b则不确定。
利用因果图设计测试用例应遵循的步骤:
1)分析程序的规格说明书中哪些事原因,哪些是结果。所谓原因,是指输入条件或输入条件的等价类,而结果是指输出条件。
给每一个原因和结果赋一个标识符。
2)分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。
3)由于语法环境的限制,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。
4)将因果图转化为判定表。
5)根据判定表的每一列设计测试用例。
因果图设计demo
4.决策表方法(判定表)
实际测试中如果输入条件过多,在加上输入输出之间作用关系,因果图比较负责,往往使用决策表代替因果图法;利用决策表可以设计出完整的测试用例集合;
决策表概述
我们通过简单例子来分析下决策表
分析:
1)图书阅读提示:是否疲惫、是否对内容感兴趣、对书中内容是否感到迷惑
2)阅读指南建议:回到第一章阅读、继续读下去、跳到下一章、停止阅读并休息
类别 | 内容 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
问题 | 是否疲惫 | Y | Y | Y | Y | N | N | N | N |
问题 | 是否对内容感兴趣 | Y | Y | N | N | N | Y | Y | N |
问题 | 对书中内容是否感到迷惑 | Y | N | N | Y | Y | Y | N | N |
建议 | 回到第一章阅读 | v | |||||||
建议 | 继续读下去 | v | |||||||
建议 | 跳到下一章 | v | v | ||||||
建议 | 停止阅读并休息 | v | v | v | v |
决策表通常有4部分组成:
1)条件桩:列出问题的所有条件,除了某些问题对条件的先后次序有要求之外,通常决策表中所列条件先后次序都无关紧要。
2)条件项:条件桩所有可能取值
3)动作桩:动作桩就是问题可能采取的操作,这些操作一般没有先后次序之分,
4)动作项:指出条件项的各组取值情况下应采取值情况。
上述:疲惫内容是动作桩,y等是条件项,动作桩:跳到下一章等,动作项:具体操作,v
上述1、2两个,分别是YYY\YYN但结果都是一致的,说明对书中内容是否感兴趣对结果判断不影响,因此称为此项为无关条件项;
简化后的图书指南决策表-5个用例
类别 | 内容 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
问题 | 年薪、月薪 | Y | Y | Y | Y | N | N | N | N |
问题 | 普通错误 | Y | Y | N | N | N | Y | Y | N |
问题 | 严重错误 | Y | N | N | Y | Y | Y | N | N |
建议 | 回到第一章阅读 | v | |||||||
建议 | 继续读下去 | v | |||||||
建议 | 跳到下一章 | v | v | ||||||
建议 | 停止阅读并休息 | v | v | v | v |
决策表demo
工资发放决策表
酬薪制度如下:年薪与月薪
员工定位:错误定位与严重错误
年薪制员工,普通错误2%,严重错误扣款4%,
月薪制员工,普通错误4%,严重错误扣款8%,
分析:
条件桩:月薪-年薪、普通错误-严重错误
条件项:M-Y、N-S
动作桩:口框比例
动作项:2%、4%、6%、8%、12%
类别 | 内容 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
reason | 年薪、月薪 | Y | Y | Y | Y | M | M | M | M |
reason | 普通错误 | N | Y | N | Y | N | Y | N | Y |
reason | 严重错误 | N | N | Y | Y | N | N | Y | Y |
result | 未扣款 | V | V | ||||||
result | 2% | V | |||||||
result | 4% | V | V | ||||||
result | 6% | V | |||||||
result | 4% | ||||||||
result | 8% | V | V |
无需要合并的地方,即整理成用例为
员工工资测试用例
测试用例 | 薪资制度 | 薪资 | 错误程度 | 扣款 |
---|---|---|---|---|
001 | 年薪 | 20000 | 无 | |
002 | 年薪 | 25000 | 普通 | |
003 | 年薪 | 30000 | 严重 | |
004 | 年薪 | 35000 | 普通+严重 | |
005 | 月薪 | 8000 | 无 | |
006 | 月薪 | 10000 | 普通 | |
007 | 月薪 | 15000 | 严重 | |
008 | 月薪 | 20000 | 普通+严重 |
5.正交试验设计法
在软件测试中,软件往往很复杂。很难从软件的规格说明中得出一一对应的输入与输出关系,基本无法划分出等价类,使用因果图也比较庞大复杂。
正交试验设计概述
正交表是一种特制的表格,一般用Ln(mk)表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数,且有n=k*(m-1)+1。
正交试验法就是安排多因素试验、寻求最优水平组合的一种高效率的试验设计方法。
1)关键因素
指标:判断实验结果优略的标准。
因子:因子也称为因素,是指影响所有实验指标的条件;
因子状态:也叫因子水平,他是指因子变量的取值。
2)正交试验设计法设计用例时,按照以下步骤
a:分析软件规格说明书等到影响软件功能的因子,确定因子可以有哪些取值,即确定因子状态。
例如:影响软件运行的因素有DB与操作系统,DB分为Mysql、MongoDB、Oracle,操作系统有windows、Linux、MAC,即因子状态分别为3个;
因子-状态表
因子 | 因 | 子 | 状态 |
---|---|---|---|
操作系统 | window | linux | mac |
数据库 | mysql | MongoDB | Oracle |
b:加权筛选,简化因子-状态表
实际软件测试中软件的因子或者因子状态会有很多,每个因子对其的状态作用也不大,因此需要根据因子-状态的的重要程度进行加权筛选,选出重要的因子-状态,简化表格。
c:构建正交表,设计测试用例
正交表表示形式:
L:表示正交表
n:正交表的行数,正交表每行可以设计一个测试用例,因此n也代表测试用例个数
c:表示正交实验的因子数目,即正交表的列数,因此正交表是一个n行c列的表格;
t:为水平数,表示每个因子能够取得的最大值,即因子有多少个状态;
例如:L4(2 – 3)正交表
行、列 | 1 | 2 | 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 0 | 0 |
3 | 0 | 1 | 0 |
4 | 0 | 0 | 1 |
以上因子为:用户名、密码、验证嘛,状态分别为0、1 与实际2**3 = 8少了4个用例。
正交表
取码:j6r5
正交法demo
社交软件WEB页面运行环境正交试验设计
分析:
服务器:IIS、apache、jetty
操作系统:window7\window10\linux
插件:无、小程序、app插件
浏览器:IE11、chrome、FiresFox
分析因子c=4,水平数t=3 即为下图正交表
即将因子状态带入表格如下图:
app页面运行环境测试用例
行、列 | 服务器 | 操作系统 | 插件 | 浏览器 |
---|---|---|---|---|
1 | IIS | window7 | IE11 | IE11 |
2 | IIS | window10 | chrome | chrome |
3 | IIS | linux | app插件 | FiresFox |
4 | apache | window7 | chrome | FiresFox |
5 | apache | window10 | app插件 | IE11 |
6 | apache | linux | IE11 | chrome |
7 | jetty | window7 | app插件 | chrome |
8 | jetty | window10 | IE11 | FiresFox |
9 | jetty | linux | chrome | IE11 |
加粗样式 |
6. 错误推测法
错误推测法凭借的是测试人员的 直觉和经验 来推测系统中可能出现的各种缺陷。
常常是列举出系统中所有【可能的缺陷和容易发生缺陷的特殊情况】,并根据它们来设计测试用例。
例如:查询功能
A、无条件查询
B、是否支持模糊查询
C、查询的关键字之间是否可用连接符
D、输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
E、若查询结果为空,是否给与相应提示
7、 场景法
软件的工作流程往往对应着现实生活的场景。应该从更高些的视角来 把握系统的业务流程,了解功能模块
在熟悉流程的基础上才能讨论局部细节的测试设计。 场景法的核心是事件流和场景。
1)场景法的示意图
在这个图中,有一个基本流和四个备选流。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:
场景 1 基本流
场景 2 基本流 备选流 1
场景 3 基本流 备选流 1 备选流 2
场景 4 基本流 备选流 3
场景 5 基本流 备选流 3 备选流 1
场景 6 基本流 备选流 3 备选流 1 备选流 2
场景 7 基本流 备选流 4
场景 8 基本流 备选流 3 备选流 4
从上面的实例我们就可以了解“场景”=“基本流”+“备选流”
基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(实际上是各种“非主流”的情况)
下面是场景法的基本设计步骤
1. 根据说明,描述出程序的基本流及各项备选流
2. 根据基本流和各项备选流生成不同的场景
3. 对每一个场景生成相应的测试用例
4. 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值
补充:
更多测试资料
白盒测试理论
软件测试的基本理论-黑盒测试-1相关推荐
- 《软件测试技术实战:设计、工具及管理》—第1章 1.1节软件测试的基本理论...
本节书摘来自异步社区<软件测试技术实战:设计.工具及管理>一书中的第1章,第1.1节软件测试的基本理论,作者顾翔,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...
- 软件测试的基本理论-移动端app测试-6
软件测试的基本理论-移动端app测试-6 一.移动app测试 1. 移动app测试概述 2.移动app测试要点 3, UI测试要点 1,界面布局 2,图形测试 3,内容测试 4, 功能测试 1,切换测 ...
- 软件测试的基本理论-自动化测试-5
软件测试的基本理论-自动化测试-5 一.自动化测试 1.自动化测试的概述 什么是自动化测试 自动化测试的基本流程 自动化测试实施的策略 自动化测试优势.劣势 2.自动化测试常见的技术 3.自动化测试常 ...
- 软件详细设计说明书_软件测试的基本理论 笔记
一.开发与测试流程理论 ##1.软件开发阶段划分 ###需求分析 根据客户的要求,清楚了解客户需求中的产品功能.性能.界面和具体规格等,然后进行分析,确定软件产品所要达到的目标. 需求规格说明书 ## ...
- 「软件测试基础」理论篇之软件测试概论
文章目录 1. 软件 1.1 软件发展史 1.2 软件生命周期 1.3 软件缺陷 1.4 三种纠错技术 2. 软件过程 2.1 RUP 2.1.1 RUP各个阶段 2.1.2 RUP核心工作流 2.2 ...
- 『软件测试2』 关于黑盒测试和测试用例的基础知识
黑盒测试和测试用例基础知识 一.黑盒测试的基本概念 1.黑盒测试基本概念 2.黑盒测试错误类型 二.测试用例概述及设计方法 1.测试用例概述 2.测试用例的好处 三.黑盒测试方法 一.黑盒测试的基本概 ...
- 软件测试用例优秀例子_新手入门:想要做好软件测试,这些理论知识,你得好好掌握...
对于很多测试新手来说,想要把自己的测试技术练得更精进,扎实自己的理论知识是必不可少的一门功课.下面,我们就一起来复习一下,那些让我们一知半解或者记不全的理论知识吧. 1.什么是软件测试? 最老套但是测 ...
- 河南省周口市安吉软件测试培训中心第一次软件测试课程——测试理论考试(含答案)
1:画出V模型和W模型,并且描述出他们的优点与缺点?(4分) 2:什么是测试计划?测试计划包含哪些内容?(4分) 答案:测试计划是对即将进行的测试做一个规范性的指导文档,包含测试范围.方法.资源,以及 ...
- 软件测试面试真题 | 黑盒测试和白盒测试的基本概念是什么?
在软件测试的面试中,什么是黑盒测试,什么是白盒测试是特别容易被问到的一个问题. 面试官问出这个问题,其实考察的是大家对于软件测试基础理论的掌握程度.下面来梳理一下这个问题的回答思路. 黑盒测试 黑盒测 ...
最新文章
- 支持大数据渲染下拉列表组件开发 SuperSelect(基于antd Select)
- java.lang.OutOfMemoryError: Java heap space解决方法
- centos7 安装 python3
- 反欺诈技术揭秘-设备指纹VS关系网络模型 此博文包含图片	(2017-05-12 10:23:52)转载▼ 标签: 设备指纹 关系网络 反欺诈 神经网络模型	分类: 风控 文章来源:网络(经整合梳理
- PL/SQL Developer连接本地Oracle 11g 64位数据库和快捷键设置
- SpringBoot中常见注解
- 傅里叶变换 c语言程序,(快速傅里叶变换)C语言程序汇编
- 数值分析(第五版) 第一章知识点总结
- android 巧用动画使您app风骚起来
- 【C++ 与 STL】集合:set
- 【RobotStudio学习笔记】(六)有效载荷
- 红米5plus开发者选项怎么打开?
- Arduino 和LCD1602液晶屏 I2C接口实验
- python怎么念1001python怎么念-python 星号的使用
- phpstorm todo的含义
- SAP第三代增强——BADI解读
- ffmpeg学习五:avformat_open_input函数源码分析(以mp4文件为例)
- Microsoft Naive Bayes 算法——三国人物身份划分
- #798. 徐老师的二维动规(二维前缀和优化+dp)
- Polysemy Deciphering Network for Human-Object Interaction Detection论文阅读笔记