笔记~【软件测试基础知识】——黑盒测试和白盒测试

article/2025/11/1 14:10:18

这里写目录标题

  • 一、黑盒测试
  • 二、白盒测试

一、黑盒测试

黑盒测试概述

  黑盒测试也称功能测试或数据驱动测试。它已知产品所应具有的功能,通过测试来检测每个功能是否能够正常使用,主要针对软件界面和软件功能。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
  “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入的测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

常见黑盒测试方法

  1. 等价类划分法
      定义:把程序的输入划分为若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类的其他值。在设计测试用例时,要同时考虑这两种等价类,因为软件不仅要能接收合理的数据,也能接受意外的考验。用户不知道程序的使用,需要考虑意外情况。

  有效等价类:满足需求的数据;
  无效等价类:不满足需求的数据;

  等价类划分步骤
  1、明确需求
  2、确定有效等价类和无效等价类
  3、编写测试用例

  1. 边界值法
       定义:对输入或输出的边界值进行测试的一种方法,通常边界值分析法作为等价类划分法的补充,在这种情况下,其测试用例来自等价类的边界值。
      边界情况:取正好等于,刚刚大于或刚刚小于边界的值作为测试数据。一般都是大1或小1的数作为测试数据。
      边界值分析法步骤:
      1、明确需求
      2、确定有效等价类和无效等价类
      3、确定边界值
      4、编写测试用例
      上点:处于边界上的点,对于闭区间,上点是有效数据,离点是无效数据;
      离点:离上点最近的点,对于开区间,上点是无效数据,离点是有效数据
      内点:取值范围内的点,不管开闭,都是有效数据

  2. 因果图法
      定义:利用图解法分析输入的各种组合情况,从而设计用例的方法,它适合于检查程序输入条件的各种组合情况。
      对比等价法和边界值法:等价类划分法和边界值分析法都是着重考虑输入条件的内容,但没有考虑输入条件的各种组合,输入条件之间的制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽略了。
      因果图法步骤:
      1、分析:输入输出数据
      2、关联:不同组合间的关联、约束,形成因果图
      3、转换:将因果图转化为判定表
      4、从判定表导出测试用例

  3. 场景法
      在测试软件时,场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,称为软件的基本流;而凡是出现故障或缺陷的过程,就用备选流加以标注。备选流可以从基本流来,也可以从备选流引出。
      举例:
      基本流:导入正确的文件,能成功导入
      备选流1:导入的文件是空文件
      备选流2:导入的文件格式不对…

  4. 正交实验法
      定义:从大量的(实验)数据(测试用例)中挑选适量的,有代表性的例子,从而合理地安排实验(测试)的一种科学实验设计方法。利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明书中得到。往往因果关系非常庞大以至于据此因果图而得到的测试用例数目多地惊人,给软件测试带来承重的负担,为了有效合理地减少测试的工时与费用,可用正交实验设计方法进行测试用例的设计。
      正交实验法是研究
    多因果多水平
    的又一种方法,它根据正交性从全面实验中挑选出部分有代表性的点进行实验,这些有代表性的点具有“均匀分散,齐整可比”的特点。
    正交表的行数的确定:试验次数(行数) = 因子数*(状态数-1)+ 1
      选择正交表的原则:
      1、正交表因素数 >= 因素数
      2、正交表每个因子 >= 每个因子数
      3、取行数最少的一个
      正交实验法步骤:
      1、有哪些因素(变量)
      2、每个因素有哪几个水平(变量)
      3、选择行数最少的正交表
      4、把变量的值映射到正交表中
      5、把每一行的各因素水平的组合作为一个测试用例
      6、加上认为可疑且没有在表中出现的组合

  5. 判定表法
      定义:分析和表达逻辑条件下执行不同的操作的情况下的工具。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例集合。
      场景:有多个输入和多个输出,而且输入与输入之间有相互的组合关系,输入和输出之间有相互的制约和依赖关系
      判定表的四个组成部分:
      1、条件桩:列出来问题的所有条件,列出的条件次序无关紧要;
      2、动作桩:列出了问题规定可能采取的操作;
      3、条件项:列出针对它左列条件的取值,在所有可能的情况下的真假值(输入值);
      4、动作项:列出在条件项的各种取值的情况下应采取的动作(输出值);
      设计步骤:
      1、明确需求;
      2、画出判定表:
        明确条件桩、动作桩
        填写条件项,对条件项进行组合
        明确各个条件项组合对应的动作项
      3、生成测试用例,每行对应一条测试用例
      举例:
    在这里插入图片描述

  6. 错误推测法:根据测试经验来判断容易出问题的地方。

  7. 功能图分析法
      定义:由状态转移图和布尔函数组成。
      用流程图描述用户的使用场景,然后通过覆盖流程路径设计测试用例,从流程图开始到结束,由几条路径就是几个测试用例,一条路径对对应一条测试用例。
      功能图分析法步骤:
        1、明确需求
        2、画出流程图
        3、编写测试用例

二、白盒测试

  定义:白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。
  目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态一样。
  白盒测试需要遵循的原则:
  1、保证一个模块中的所有独立至少被测试一次;
  2、所有逻辑值需要测试真(true)和假(false);
  3、检查程序的内部数据结构,保证其结构的有效性;
  4、在上下边界及可操作范围内运行所有循环。
  常见白盒测试方法:
  静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。
  动态测试:需要执行代码,通过运行程序遇到问题,包括功能确定与接口测试、覆盖率分析、性能分析、内存分析等。
  **逻辑覆盖:**白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
  1、语句覆盖每条语句至少执行一次;
  2、判定覆盖每个判定的分支至少执行一次;
  3、条件覆盖每个判定表达式的每个条件应取到各种可能的值
  4、判定/条件覆盖同时满足判定覆盖和条件覆盖;
  5、条件组合覆盖每个判定中各条件的每一种组合至少出现一次;
  6、路径覆盖使程序中每一条可能的路径至少执行一次。


http://chatgpt.dhexx.cn/article/tm9YXJYg.shtml

相关文章

白盒测试和黑盒测试的区别

白盒测试和黑盒测试的区别白盒测试和黑盒测试都是计算机领域行业用以检查程序的状态,确定实际运行状态与预期状态是否一致的重要环节,来看看他们有什么不一样吧。 白盒测试技术 (White Box Testing) : 深入到代码一级的测试,使用这…

测试用例设计方法——黑盒测试和白盒测试

目录 一、黑盒测试 1、什么是黑盒测试? 2、黑盒测试用例设计方法 ☆等价类划分 ☆边界值分析 二、白盒测试 1、什么是白盒测试? 2、白盒测试用例设计方法 三、灰盒测试 一条完整的测试用例应包括: 用例编号、项目名称、用例标题、优…

DNF游戏多开虚拟机,过TP过三方,过制裁,DNF虚拟机同步

DNF虚拟机游戏交流群:5448030(群内免费虚拟机使用) 虚拟机下载https://pan.baidu.com/s/169VvEyZ0zIGfrCjAUcRCjw 提取码: ruax

dnf游戏多开虚拟机,过检测过制裁,dnf同步

dnf虚拟机交流群372834206(群内安装虚拟机) **dnf虚拟机交流群372834206(群内安装虚拟机)

DNF源码2020-10-26

1.源码如图 2.源码链接 源码链接 3.编译和运行所需文件如下 4.其他问题请私信我 5.效果视频 百度网盘链接:https://pan.baidu.com/s/1qat846REsxwPxIIkmrHIgw 提取码:4em4

DNF脚本完整源码编辑可用

DNF脚本完整源码编辑可用 1.以下是源码相关截图,完整的,不缺东西,编辑可用 源码属于未开发完的,只有钢铁之臂和特伦斯可用 由于各种原因,此源码不再继续开发,后续会不断分享新的DNF源码 2. 3. 4. 5. …

Linux系统之dnf包管理器的基本使用

Linux系统之dnf包管理器的基本使用 一、dnf工具介绍1. dnf工具简介2. dnf的功能 二、DNF的安装1. 检查本地操作系统版本2. 安装epel3. 检查本地yum仓库状态4. 安装dnf包 三、dnf的使用帮助1. 查看dnf版本2. 查看dnf命令的帮助信息3. dnf命令的选项解释 四、dnf命令的基本使用1.…

游戏同步

早上在翻个人博客文件夹的时候,发现这篇18年10月30日写完的,再去翻了个人博客里,确实没发出来。随便把当时写的手稿也发上来。 游戏同步:帧同步和状态同步 帧同步:服务器负责转化客户端的操作,每个客户端在…

DNF端游服务器搭建流程

DNF端游服务器搭建流程 搭载工具:链接:搭载工具 提取码:oszp 第一步、购买云服务器 https://cloud.tencent.com/ 根据你的需求购买合适的配置,自己玩的话2核2G的就够用 买好服务器后,找到添加规则,将U…

Linux yum/dnf工具

yum/dnf工具 1、yum/dnf工具简介 yum工具(yellowdog update manager)基于RPM进行开发。最大的优势就是能够解决rpm包的依赖问题;yum能够自动解决软件安装时的依赖关系。有优势就有劣势;yum工具也有缺点,如果在未完成…

FME+YOLOV7写DNF自动刷图脚本

目录 前言 一、难点分析 二、实现流程 1.DNF窗口位置获取 2.获取训练数据 3.数据标注 4.数据格式转换 5.数据训练 5.刷图逻辑编写 前言 这是一篇不务正业的研究,首先说明,这不是外挂!这不是外挂!这不是外挂!这只是用a…

虚拟同步机

虚拟同步机是基于微网技术提出的一种电力电子技术,传统的电力电子发电设备多采用PQ控制,动态响应快,缺少类似同步电机的阻尼特性,从而引起电网波动等问题。故为了迎合电网特性,使得逆变器具有同步电机阻尼特性的技术&a…

DNF单机版搭建(局域网、外网)

【小白手册】DNF单机版搭建(局域网、外网) 前言单机版和局域网版教程外网搭建教程上传等级补丁上传版本文件登录器秘钥上传运行服务端(跑五国)登录游戏 前言 疫情居家隔离,闲着没事搞了一下单机版的搭建和朋友刷刷图&…

DNF游戏拆解(上)

DNF(地下城与勇士)是一款2D横版格斗游戏,由韩国游戏公司Neople开发,于2005年首次在韩国推出。游戏在全球范围内拥有庞大的玩家社区,其游戏玩法以挑战副本和战斗为主。玩家可选择不同的职业角色,并通过升级和…

DNF自动启停服务端备份数据

开发文档: 需求1:实现自动启停服务端,并判断是否成功。 需求2:停止服务端备份MYSQL数据,实现数据备份,为什么要停止服务端备份,因为热备份偶尔会出问题。 需求3:数据备份完成启动…

DNF台版云服务器搭建(非商用,可联机)

DNF台版云服务器搭建 该教程结合网上大佬的教程和自己搭建过程中遇到的问题所写 文章中出现的文件都将通过百度网盘分享,各个版本的pvf及其配套客户端需要自己寻找哦 百度网盘链接:链接:https://pan.baidu.com/s/14Az9oRvtQwWWoGv7SI0KIQ?pw…

简单的dnf增幅模拟器

简单的DNF增幅模拟器 package com.xxx;import java.util.Random;public class Equipmet {int level;int level_max;public Equipmet(){level_max0;level12;};public Equipmet(int level,int level_max){this.levellevel;this.level_maxlevel_max;};public boolean Strengthen…

脉冲同步器

verilog实现上面的电路: module pulse_syc( input sclk_1, input sclk_2, input p_in, output p_out, output p_out1 ); reg p_in_reg0; reg delay0,delay1,delay2; wire mux_2; assign mux_2(p_in1b1)?~p_in_reg:p_in_reg; a…

c语言答案系统,c语言练习和答案

广告 提供50多种云计算产品c语言入门经典 第5版 习题答案,包括云服务器和云. 创建一站式云产品试用服务,以帮助开发人员和企业以零门槛进入云环境. 有很多解决方法. 这只是参考. 这是一个非常经典的C编程语言输入问题. 可以通过刚才提到的循环嵌套来实现…

李含光《C语言程序设计教程》答案第六章

选择题 1-5 BBDDC 6-10 CCACD 11-15 CBCDA 16 C 填空题 常量(0或数组名),变量地址 指针(或地址常量) 2 12,12 a[0],a[3] 程序阅读题 3 6 abcdefglkjih 976531 5,9 将数组a中的元素值首尾交换并存储在数组中 string_a…