黑盒测试方法

  • 一.黑盒测试方法
    • 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.1节软件测试的基本理论,作者顾翔,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  2. 软件测试的基本理论-移动端app测试-6

    软件测试的基本理论-移动端app测试-6 一.移动app测试 1. 移动app测试概述 2.移动app测试要点 3, UI测试要点 1,界面布局 2,图形测试 3,内容测试 4, 功能测试 1,切换测 ...

  3. 软件测试的基本理论-自动化测试-5

    软件测试的基本理论-自动化测试-5 一.自动化测试 1.自动化测试的概述 什么是自动化测试 自动化测试的基本流程 自动化测试实施的策略 自动化测试优势.劣势 2.自动化测试常见的技术 3.自动化测试常 ...

  4. 软件详细设计说明书_软件测试的基本理论 笔记

    一.开发与测试流程理论 ##1.软件开发阶段划分 ###需求分析 根据客户的要求,清楚了解客户需求中的产品功能.性能.界面和具体规格等,然后进行分析,确定软件产品所要达到的目标. 需求规格说明书 ## ...

  5. 「软件测试基础」理论篇之软件测试概论

    文章目录 1. 软件 1.1 软件发展史 1.2 软件生命周期 1.3 软件缺陷 1.4 三种纠错技术 2. 软件过程 2.1 RUP 2.1.1 RUP各个阶段 2.1.2 RUP核心工作流 2.2 ...

  6. 『软件测试2』 关于黑盒测试和测试用例的基础知识

    黑盒测试和测试用例基础知识 一.黑盒测试的基本概念 1.黑盒测试基本概念 2.黑盒测试错误类型 二.测试用例概述及设计方法 1.测试用例概述 2.测试用例的好处 三.黑盒测试方法 一.黑盒测试的基本概 ...

  7. 软件测试用例优秀例子_新手入门:想要做好软件测试,这些理论知识,你得好好掌握...

    对于很多测试新手来说,想要把自己的测试技术练得更精进,扎实自己的理论知识是必不可少的一门功课.下面,我们就一起来复习一下,那些让我们一知半解或者记不全的理论知识吧. 1.什么是软件测试? 最老套但是测 ...

  8. 河南省周口市安吉软件测试培训中心第一次软件测试课程——测试理论考试(含答案)

    1:画出V模型和W模型,并且描述出他们的优点与缺点?(4分) 2:什么是测试计划?测试计划包含哪些内容?(4分) 答案:测试计划是对即将进行的测试做一个规范性的指导文档,包含测试范围.方法.资源,以及 ...

  9. 软件测试面试真题 | 黑盒测试和白盒测试的基本概念是什么?

    在软件测试的面试中,什么是黑盒测试,什么是白盒测试是特别容易被问到的一个问题. 面试官问出这个问题,其实考察的是大家对于软件测试基础理论的掌握程度.下面来梳理一下这个问题的回答思路. 黑盒测试 黑盒测 ...

最新文章

  1. 支持大数据渲染下拉列表组件开发 SuperSelect(基于antd Select)
  2. java.lang.OutOfMemoryError: Java heap space解决方法
  3. centos7 安装 python3
  4. 反欺诈技术揭秘-设备指纹VS关系网络模型 此博文包含图片 (2017-05-12 10:23:52)转载▼ 标签: 设备指纹 关系网络 反欺诈 神经网络模型 分类: 风控 文章来源:网络(经整合梳理
  5. PL/SQL Developer连接本地Oracle 11g 64位数据库和快捷键设置
  6. SpringBoot中常见注解
  7. 傅里叶变换 c语言程序,(快速傅里叶变换)C语言程序汇编
  8. 数值分析(第五版) 第一章知识点总结
  9. android 巧用动画使您app风骚起来
  10. 【C++ 与 STL】集合:set
  11. 【RobotStudio学习笔记】(六)有效载荷
  12. 红米5plus开发者选项怎么打开?
  13. Arduino 和LCD1602液晶屏 I2C接口实验
  14. python怎么念1001python怎么念-python 星号的使用
  15. phpstorm todo的含义
  16. SAP第三代增强——BADI解读
  17. ffmpeg学习五:avformat_open_input函数源码分析(以mp4文件为例)
  18. Microsoft Naive Bayes 算法——三国人物身份划分
  19. #798. 徐老师的二维动规(二维前缀和优化+dp)
  20. Polysemy Deciphering Network for Human-Object Interaction Detection论文阅读笔记

热门文章

  1. 快速制作数据库设计文档的表格
  2. 怎么样用Python 读取oni 格式文件?
  3. 12.【乘法口诀表】
  4. Cache-主存地址映射
  5. MMU地址映射过程详细
  6. python jupyter输出结果_在Jupyter上学习python(U.1)
  7. 牛掰!阿里大佬用7部分讲明白Web安全攻防 渗透测试(学完可就业)
  8. Creo5.0关闭默认内置浏览器
  9. 《网络编程综合实践》:高校爬虫(厦大,南理,华大)
  10. 基于exynos4412-fs4412的spi的回环测试实验