文章目录

前言

一、黑盒测试是什么?

二、白盒测试是什么?

三、判断某种方式是黑盒测试还是白盒测试

总结


前言

举个栗子

侦察兵进行侦察即为黑盒测试,卧底探清敌人内部为白盒测试。

作为侦察兵,他们只需要记录敌人的进出数量以及携带的火力,不需要管他们敌人的老巢。

作为卧底,他们需要了解敌军内部的结构,例如弹药库在哪,头领办公室在哪,敌军牢房路线等,他们不需要管有多少日本兵进出,只需调查出日本大营的一些内部信息即可。

由此:就可以看出黑盒测试与白盒测试的区别在于:是否需要了解“内部结构” 


一、黑盒测试是什么?

  黑盒测试也称:数据驱动测试(由数据驱动其进行测试)包括功能测试和性能测试。

黑盒测试:没有办法或不用了解事物的内部结构和运行机制,而把整个事物看成一个整体——黑盒子,通过分析事物的输入与输出(侦察兵观察敌军发兵数量)以及周边条件来分析和处理问题。


二、白盒测试是什么?

白盒测试也称:结构化测试或逻辑驱动测试。

白盒测试:能够看清事物的内部,即了解事物的内部结构和运行机制,通过剖析事物的内部结构和运行机制,来处理和解决问题。

结合栗子:潜入敌后的卧底,通过调查内部结构,例如画出到监狱的路线图,使其能够帮助部队营救被困战友。


常见白盒测试:

  • 语句覆盖(Statement Coverage):使程序中每个可执行语句至少执行一次。(相当于卧底将敌军的所有细节,包括大营路线,火力配置等获取)
  • 判定覆盖(Decision Coverage):使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。(相当于卧底将敌人大营的所有分叉路口两边画出)
  • 条件覆盖(Condition Coverage):使每个判断中每个条件的可能取值至少满足一次。(由于判断条件中有多个条件,相当于卧底将敌人大营的东门钥匙或者北门钥匙搞到一把或者全部搞到)
  • 判定/条件覆盖(Decision/Condition Coverage):所有条件可能至少执行一次取值,同时所有判断的可能结果至少执行一次。(相当于卧底将敌人的大门钥匙均获取)
  • 条件组合覆盖(Branch Condition Combination Coverage):使得所有可能的条件取值组合至少执行一次(相当于卧底将敌人大营的大门钥匙以及大门内军官的办公室钥匙获取)
  • 路径覆盖(Path Coverage):使得程序中所有的路径都至少执行一次 。(相当于卧底将敌人大营的所有路线画出)

三、判断某种方式是黑盒测试还是白盒测试

过去:人们常常把等价类划分法,边界值分析法,错误推测法归为黑盒测试。但是这不够恰当,例如:边界值分析方法,可以在系统外部输入中运用,也可以在代码内部边量测试中运用,前者为黑盒测试,后者为白盒测试。

举个栗子:

刚开始,侦察兵只能观察敌军进出大营的情况,此时为黑盒测试。

但是,当敌军全部出动时,此时其卡车相当于”敌人的老巢“,此时的侦察营看到的就是内部信息了。


总结

判定某种方法是否为黑盒测试方法,关键还是看是否针对被测对象内部结构还是针对被测对象的整体进行测试。

黑盒测试与白盒测试(结合例子详细讲解)相关推荐

  1. 黑盒测试、白盒测试、灰盒测试区别与详细功能描述

    一.黑盒测试.灰盒测试.白盒测试概念 黑盒测试:黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检验每个功能都是否能够正常使用. 白盒测试:白盒测试也称结构测试或逻辑驱动测 ...

  2. Python的零基础超详细讲解(第十三天)-Python的类与对象

    基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...

  3. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  4. Python的零基础超详细讲解(第五天)-Python的运算符

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  5. 柱底反力求和lisp软件_AutoLISP详细讲解

    AutoLISP 详细讲解 关于 AutoLISP AutoLISP 是由 Autodesk 公司开发的一种 LISP 程序语言( LISP 是 List Processor 的缩 写) . 第一篇关 ...

  6. 详细讲解Java中log4j的使用方法

    详细讲解Java中log4j的使用方法 作者: 网络 来源: 日期: 2008-1-3 23:40:24 1.Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要 ...

  7. python高级语法装饰器_Python高级编程——装饰器Decorator超详细讲解上

    Python高级编程--装饰器Decorator超详细讲解(上篇) 送你小心心记得关注我哦!! 进入正文 全文摘要 装饰器decorator,是python语言的重要特性,我们平时都会遇到,无论是面向 ...

  8. Server操作Mxd文件详细讲解

    Server操作Mxd文件详细讲解 Server发布地图都是基于Mxd去发布的,这点与IMS使用axl文件差不多.一般来说,发布后mxd尽可能不要修改,或者在通过使用arcMap进行编辑后在重新发布. ...

  9. java回忆录—输入输出流详细讲解(入门经典)

    今天我们开始进入学习 java 中比较让人头疼的事, 那就是 I/O 流.多线程.网络编程.这里对 I/O 流的一个详细讲解.希望对大家有点用吧.(不看后悔哦) 一.什么是IO Java中I/O操作主 ...

  10. python中的ix是啥_pandas中ix的使用详细讲解

    在上一篇博客中,我们已经仔细讲解了iloc和loc,只是简单了提到了ix.这是因为相比于前2者,ix更复杂,也更让人迷惑. 因此,本篇博客通过例子的解释试图来描述清楚ix,尤其是与iloc和loc的联 ...

最新文章

  1. GLFW--Getting started
  2. PoE供电中功率损耗问题
  3. protocol buff
  4. CSS之深入理解 flex 布局以及计算
  5. vue.js+boostrap最佳实践
  6. win7 oracle 冷恢复
  7. java中v怎么用_Vue - 如何使用v-for =“item in 3”创建唯一键
  8. C++的三种交换数值的方式(值传递、地址传递、引用传递)
  9. Windows、Linux、Mac OS下的锐捷认证的程序——mentohust
  10. KL距离(衡量两个概率分布的差异情况)
  11. Handler 机制简介
  12. Masscan——端口扫描
  13. 资料:基于MPSOC XCZU15EG-2FFVB1156I 的PCIe FMC 光纤接口处理卡设计资料保存
  14. mysql数据库连接池锁_数据库连接池deadlock
  15. 群晖能不能像服务器一样共享桌面,电脑桌面与群晖NAS双向实时同步
  16. buff系统 游戏中_arpg游戏的技能系统和buff系统的一种实现
  17. java每日一练——第六天:输入3个整数,输出它们的1次幂、2次幂和3次幂
  18. 独立开发的基于springboot + websocket IM网站聊天系统总结
  19. python求图形面积_如何使用python语言中的if语句实现求取图形面积
  20. 计算机网络(六)应用层

热门文章

  1. 关于target is null for setProperty的问题总结
  2. 《旷野游荡的精灵》 一个会写诗的程序员 2019.3
  3. uniapp换行符号_第15讲 : uni-app 组件 - 地图组件
  4. Android 微信聊天记录、联系人备份并导出为表格
  5. Ubuntu 16.04 安装opencv3及其扩展模块
  6. 【codejam_Round1B_C】Mousetrap
  7. 记某单机游戏的一次内购破解
  8. 华为人均工资高达70万,但先看看华为员工的16项标准
  9. IntelliJ IDEA 2017 提示“Unmapped Spring configuration files found.Please configure Spring facet.”解决办法
  10. OpenSSL密码库算法笔记——第2.2.5章 利用Barrett约化做除法