【软件构造】黑盒测试与白盒测试

2023-11-13


前言

按照是否需要知道程序内部是如何实现的,将测试分为黑盒测试白盒测试

需要知道程序内部是如何实现的——白盒测试
不需要知道程序内部是如何实现的——黑盒测试

白盒测试一般是内部人员即程序员进行测试
黑盒测试一般是外部人员如专门的测试人员和用户来测试


提示:以下是本篇文章正文内容,下面案例可供参考

一、黑盒测试

1、什么是黑盒测试?

黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。

2、常见的黑盒测试技术

等价类划分、边界值分析、错误推测法、因果图

3、等价类划分

a、主要思想:

将被测函数的输入划分为等价类,从等价类中导出测试用例。(等价类在集合论图论中学过…)

这基于一种假设就是:相似的输入,将会产生相同的结果。意思就是可以从一个等价类中选择一个为代表作为测试用例即可。(比如【1,2,3】为一个等价类,则选择1或2或3其中一个测试即可)

b、有效等价类与无效等价类

有效等价类:如果一个等价类内的数据是符合(软件需求说明书)要求的、合理的数据,则称这个等价类为有效等价类。有效等价类主要用来检验软件是否实现了规定的功能
无效等价类:如果一个等价类内的数据是不符合(软件需求说明书)要求的、不合理或非法的数据,则称这个等价类为无效等价类。无效等价类主要用来检验软件的容错性

c、例子

max函数用来返回两个数中更大的数。这时需要分别选择数据属于a>b,a==b,a<b三种情况。

3、边界值分析

主要思想

假设大量的错误发生在输入与的“边界”而不是中央。边界值分析可以是对等价类划分方法的补充。

4、错误推测法

a、定义:

在测试程序时,人们可以根据经验直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

b、主要思想:

列举程序可能出现的错误或者容易产生错误的测试点,然后根据测试点来编写测试用例。
或 在阅读规格说明时联想开发可能做的假设来确定测试用例,比如规格说明中的可能被忽略的内容。

c、常见的方法:

极限值设计(如最大、最小、空、0)、特殊值设计

5、因果图

根据输入条件与输出结果之间的因果关系来设计测试用例的,它首先检查输入条件的各种组合情况,并找出输出结果对输入条件的依赖关系,然后为每种输出条件的组合设计测试用例。

二、白盒测试

1、什么是白盒测试?

白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。
白盒测试可以发现黑盒测试没有发现的错误。
可以实现一部分测试一部分

2、独立路径测试

对程序所有执行路径进行等价类划分,找出有代表性的`最简单的路径(例如循环只执行一次),设计测试用例
是每一条基本路径被覆盖至少一次。

三、白盒测试与黑盒测试比较

白盒测试

不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%
自动化复用率低
不可能测试所有运行路径
系统庞大时,开销大

黑盒测试

比较简单,不需要知道内部代码的实现
从用户的角度,可以知道会用到哪些功能;从软件需求说明书,可以知道实现了那些功能
自动化测试较方便
帮助测试人员增大代码的覆盖率,提高代码质量,发现隐藏问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【软件构造】黑盒测试与白盒测试 的相关文章

随机推荐

  • JAVA根据模板生成Word文档

    一 需要模板word文件和document xml模板配置文件 首先把word文件重命名后缀改为 zip然后打开 就能在word文件夹下就能找到document xml了 在document xml模板中需要赋值的地方配置好占位符 二 导入
  • CNN调参

    一 学习率 学习率决定了每步权重更新对当前权重的改变程度 其中E w 为我们优化的损失函数 是学习率 学习率太小 更新速度慢 学习率过大 可能跨过最优解 因此 在刚开始训练 距离最优解较远时可以采用稍大的学习率 随着迭代次数增加 在逼近最优
  • 自动化测试框架rf(Robot Framework)的安装

    2022了 还没自己装过rf 网上找了不少文章 或多或少都跟本地环境不太一下 作为新手 把安装过程做一次记录分享 仅供参考 首先 帖一下我自己电脑的基本情况 下面就开始吧 一 JAVA环境安装 现在基本都是java8以上了 所以建议到官网下
  • Node.js中gulp插件的安装使用

    1 Node js说明 gulp是用JavaScript语言编写的运行在Node js平台开发的前端构建工具 是前端开发人员自动处理日常任务的首选工具 gulp cli 启动构建工具的命令行接口 本地gulp 构建时实际运行的程序 gulp
  • [OLED] 利用stm32开发板控制OLED

    一 OLED的介绍 OLED 即有机发光二极管 Organic Light Emitting Diode 又称为有机电激光显示 Organic Electroluminesence Display OELD OLED由于同时具备自发光 不需
  • 连续时间、离散时间信号、模拟和数字信号辨析

    连续时间和离散时间信号 一个信号 它是在时间t的连续值上给出的 就是一个连续时间信号 而一个信号仅在t的离散值上给出则是一个离散时间信号 模拟和数字信号 凡一个信号的幅度在某一连续范围内能够取到任何值的信号就是模拟信号 这意味着一个模拟信号
  • 牛客 124G--组合游戏

    链接 https www nowcoder com acm contest 124 G来源 牛客网 题目描述 2018年4月8日星期日 小龙沉迷于一个叫做组合的游戏 游戏规则是这样的 原本有一个长度为A的大木板 现在把它分成了n份长度可能不
  • Excel如何排序?掌握3种排序方法!

    我是个刚开始学习Excel的新手 对很多Excel的知识都不太熟悉 今天使用Excel进行表格排序时我又遇到了一些问题 请问Excel如何排序呢 希望给我一些建议 在Excel中 排序是一种常见且有用的数据处理操作 它可以帮助您按照特定的规
  • Unbutn20+cuda11+Qt下配置

    首先装CUDA 具体查看其它博客 这里主要介绍如何配置 CONFIG console TARGET test Define output directories CUDA OBJECTS DIR This makes the cu file
  • 面了个阿里拿36K出来的,真是砂纸擦屁股,给我漏了一手

    今年的春招已经结束 很多小伙伴收获不错 拿到了心仪的 offer 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文 为此咱这里也统一做一次大整理和大归类 这也算是划重点了 俗话说得好 他山之石 可以攻玉 多看多借鉴还是有帮助
  • js实现图片预加载

    什么是预加载 当页面打开图片提前加载 而且缓存在用户本地 需要用届时直接进行烘托 在浏览图片较多的网页 百度图库 淘宝京东等 能够有更好的用户体会 一张图片的预加载 var img new Image img addEventListene
  • pandas 导入excel_小白学 Python 数据分析(7):Pandas (六)数据导入

    人生苦短 我用 Python 前文传送门 小白学 Python 数据分析 1 数据分析基础 小白学 Python 数据分析 2 Pandas 一 概述 小白学 Python 数据分析 3 Pandas 二 数据结构 Series 小白学 P
  • echarts 生成的canvas只有100px的问题

    在开发中遇到一个问题 使用echarts的时候 生成的canvas宽度不是实际写入的宽度 后面发现 因为使用了el tabs 存在echarts的tab页在刚开始处于display none 所以echarts拿不到页面的宽度 解决办法 在
  • Burp suite ——爆破账户密码(含爆破token防爆破)

    此文章仅供交流学习使用 目录 爆破普通账户密码 设置环境 处理burp suite的抓包数据 开始爆破 爆破token防爆破账户密码 设置环境 处理抓包数据 开始爆破 爆破普通账户密码 设置环境 1 打开火狐访问此网站 更改代理 火狐浏览器
  • 【RocketMQ】消息重试、重试次数设置、死信队列

    文章目录 1 死信队列 1 1 死信特性 1 2 查看死信消息 2 重试次数参数 2 1 Producer端重试 2 2 Consumer端重试 3 1 异常重试 3 2 超时重试 参考 1 死信队列 上一篇 RocketMQ 消息重试中我
  • OpenCL并行编程基础 第六章 OpenCL事件和队列

    任务队列允许程序员通过编辑直接创建 管理和调度任务 队列中的命令按提交命令的顺序执行 队列中的吓一跳命令必须等待当前命令执行完后才能开始执行 不同命令队列的先后执行顺序得不到保证 6 1 命令 命令队列和事件 命令队列保证FIFO 启动顺序
  • The selected directory is not a valid home for Go SDK

    在GoLand中配置GOROOT的时候 出现该错误 The selected directory is not a valid home for Go SDK Go的版本是1 4 2 GoLand 版本是2021 1 3 可能是版本问题 更
  • 自媒体如何使用ChatGPT提高效率

    文章目录 自媒体公司如何充分利用ChatGPT提高效率 自媒体公司使用ChatGPT提高效率的具体案例 训练ChatGPT 让它更懂你 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主页 个人社区 欢迎你的加入 全栈弄潮儿的个人社区 专栏地
  • agg函数加入进度条

    在panda之中 我们经常需要使用到agg函数来将pandas之中的某几列聚合起来 from tqdm import tqdm import pandas as pd import numpy as np df pd DataFrame A
  • 【软件构造】黑盒测试与白盒测试

    文章目录 前言 一 黑盒测试 1 什么是黑盒测试 2 常见的黑盒测试技术 3 等价类划分 a 主要思想 b 有效等价类与无效等价类 c 例子 3 边界值分析 主要思想 4 错误推测法 a 定义 b 主要思想 c 常见的方法 5 因果图 二