白盒测试与黑盒测试

article/2025/10/31 22:47:04

白盒测试技术

白盒测试技术也称结构性测试,是一种设计测试用例的方法,一般用于分析程序的内部结构,使用该方法测试程序时测试者可以看到被测试程序,并分析其内部结构。

按照被测试测试时是否需要执行测试程序可以分为静态和动态测试,白盒测试也可以据此划分。最常用的时白盒静态测试方法。包括代码审查,结构设计检查程序的可靠性。由于测试时围绕测试用例进行的白盒测试也是一种优秀的测试用例设计的方法。

在测试中穷举法是不可能的这是测试的原则之一,因此在有限的集合内设计特殊且最优的测试用例才能才能最有效的完成测试工作。白盒测试使用覆盖率来度量测试的完整性。测试覆盖率四程序被一组测试用例执行的百分比。

覆 盖 率 = 至 少 被 执 行 一 次 的 被 测 试 项 数 被 测 试 项 总 数 覆盖率=\frac{至少被执行一次的被测试项数}{被测试项总数} =

逻辑覆盖法
逻辑覆盖是以程序内部的逻辑结构为基础的测试⽅法,属“⽩盒”测试。 这⼀⽅法是⼀系列测试过程的总称,这组测试过程逐渐 进⾏越来越完整的通路测试,要求测试⼈员对程序的逻辑结构有清楚的了解。 从覆盖源程序的语句的详尽程度分析,⼤致可以 分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

在这里插入图片描述

满足条件组合覆盖准则一定满足判定覆盖,条件覆盖和判定条件覆盖。该命题使充分不必要条件。

逻辑覆盖法的实例

对于程序:

void TestExample (int x,int y,int z)
{int k=0,j=0;if(x>3)&&(z<10){k=x*y+1;j=2x+y;}if(x==4||y>5){j=x*y+10;}
}

对于上述程序使用白盒测试设计测试用例。

  • 语句覆盖的测试用例

根据语句覆盖的原理,程序由两个分支,在这两个分支中至少有一个被执行。例如第一个被执行,取x=4,y=5,z=5。

输入预期输出
x=4,y=5,z=5j=12k=19

满足两个分支又有一个执行即可

  • 判定覆盖的测试用例

根据该原理两个分支的至少获得一次真一次假。例如取第一个为真,第二个为假,x=4,y=5,z=5。

输入输出
x=5,z=1,y=1k=6,j=11 (分支一为真,分支二为假)
x=2,y=6,z=1k=0,j=22 (分支一为假,分支二为真)

满足每个分支都取到一次真假即可。

  • 条件覆盖的测试用例

根据条件覆盖的原理,每个条件的可能取值都执行一次。也就是:(分支一为真,分支二为假;分支一为假,分支二为真;分支一为真,分支二为真;分支一为假,分支二为假)。据此设计测试用例即可。

基路径测试法
路径测试法是从程序入口开始,执行所经历的各个语句的完整过程。做到所有路径都覆盖是不可能的,如果某个程序的独立路径都被执行那么就可以认为每个语句都检查过了。

基路径测试是在程序控制的基础上,有过分析控制环路复杂性到处基本可执行路径。包括四个步骤和一个工具方法:

  1. 根据过程设计将结果画出程序控制流图;
  2. 计算程序的环路复杂度;
  3. 导出基本路径集确定程序的独立路径;
  4. 设计相应的测试用例。

案例:

void TestExample (int x,int y,int z)
{int k=0,j=0;if(x>3)&&(z<10){k=x*y+1;j=2x+y;}if(x==4||y>5){j=x*y+10;}
}

控制流图是描述程序控制流的一种有向图表示了程序控制流的结构。

在这里插入图片描述
上述代码的控制流图为if结构:

在这里插入图片描述

计算环路复杂度的公式为:

V ( G ) = e − n + 2 V(G)=e-n+2 V(G)=en+2

e是图中边的数目,n表示节点总数。

确定独立路径:1-2-4,1-3-5。

设计测试用例:根据确定的独立路径设计测试用例,确保基本路径都能执行。

其他设计测试用例的方法:循环语句测试,数据流测试等。

白盒测试的流程

白盒测试的流程包括界面对象测试和业务对象测试。

在这里插入图片描述

向下延展

在这里插入图片描述

向上延展

黑河测试技术

黑盒测试:将被测软件看作黑盒,主要根据功能需求测试用例进行测试,注重软件功能需求,检查程序goon给你是否正常,黑盒测试完全从用户观点出发。

黑盒测试能够发现一下几类错误:

  1. 功能不对或者遗漏;
  2. 界面错误;
  3. 数据结构或者外部数据库访问错误;
  4. 性能错误。
  5. 初始化和终止错误。

黑盒测试方法
在这里插入图片描述

等价类是指输入域互补相交的子集,所有等价类的并集便是整个输入域。等价划分法就是根据程序规格说明书对输入范围划分,把所有可能输入的数据,即程序输入域划分为若干互不相交的子集(等价类),然后从等价类中选取少量的具有代表性的数据作为测试用例,进行测试。

等价类划分原则:

  1. 按区间划分;
  2. 按数值划分;
  3. 按数值集合划分;
  4. 按限制条件或规格划分。

案例:
输入a,b,c三个整数作为三角形的三边,通过程序判断类型是:等边三角形,等腰三角形,一般三角形和非三角形。
分析:由于是三个整数,范围都在1-100,1一下和100以上都是无效等价类,1-100是有效等价类。
那么在有效等价类的范围类根据三角形特性设计测试用例:

测试用例abcd
test1555等边三角形
test2223等腰三角形
test3345一般三角形
test4412非三角形

边界值分析法用于列出单元功能,输入,状态及合法边界和非法边界值对数据进行测试。对于一个变量的程序边界值分析会产生4n+1个测试用例。

边界值分析法是以边界情况的处理作为主要目标专门设计测试用例的方法。例如在上述三角形问题上满足两边之和大于第三边,两边只差小于第三边才能构成三角形。若>写为>=就无法构成了。

在边界值分析测试中利用输入变量的最小值,稍大于最小值,域内任意值,稍小于最大值,最大值的数据进行测试。于是就得到了边界值分析测试的测试用例

测试用例abcd
test1124非三角形
test2345一般三角形
test3558020非三角形
test410010020等腰三角形

健壮性边界值分析是边界值分析的一种扩展,除了考虑变量的最小值,稍大于最小值,域内任意值,稍小于最大值,最大值的数据外还要考虑一个略超过最大值和一个略小于最小值的数据。健壮性边界值分析将产生6n+1个测试用例。

在使用边界值分析法设计测试用例时还需要遵循以下原则:

  1. 条件对取值进行限制的,应以边界内部以及刚超出取值范围的值作为测试用例。
  2. 对取值个数限制了的应该以稍大于最大,最大,稍小于最大,中等,稍大于最小,最小,稍小于最小作为测试用例。
  3. 如果程序规格说明书指明输入输出域是一个有序集合,则应该注意选取有序集合的第一个和最后一个元素作为测试用例。

因果图法是一种适于描述对于多种条件的组合,相应产生多个动作的形式的方法,利用图解分析输入各种组合情况,从而设计测试用例的方法。因果图最终生成的是判定表,合适检查程序输入条件的各种组合情况。

因果图测试方法设计测试用例的步骤:

  1. 确定软件规格的原因和结果;
  2. 确定原因和结果之间的逻辑关系;
  3. 确定因果图中的各个约束;
  4. 把因果图转化为决策表;
  5. 根据决策表设计测试用例。

在这里插入图片描述
在这里插入图片描述

参考https://zhuanlan.zhihu.com/p/129342944

黑盒测试的流程:测试计划—>测试设计---->测试开发----->测试执行---->测试评估。


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

相关文章

OpenFileDialog / SaveFileDialog的简单使用,及左上角的图标设置

点击项目&#xff0c;右键属性&#xff0c;在图标中&#xff0c;浏览选择图标。 设置完成后。 引用 Microsoft.Win32。 打开文件&#xff1a; OpenFileDialog dlg new OpenFileDialog(); dlg.Title "Select File to Import"; dlg.DefaultExt ".xx"; d…

C#设置保存文件SaveFileDialog类的默认文件名

先放上效果图&#xff1a; 在C#中使用SaveFileDialog类保存文件时候&#xff0c;出现默认的文件名&#xff0c;代码如下&#xff1a; SaveFileDialog s1 new SaveFileDialog(); s1.Title "保存Excel文件"; s1.Filter "Excel文件(*.xls)|*.xls"; s1.Fi…

java保存文件filedialog保存路径 文件名_VB.Net保存文件对话框(SaveFileDialog)

保存文件对话框(SaveFileDialog)控件提示用户选择保存文件的位置&#xff0c;并允许用户指定保存数据的文件名称。SaveFileDialog控件类继承自抽象类FileDialog。 以下是保存文件对话框&#xff1a; SaveFileDialog控件的属性 以下是SaveFileDialog控件的一些常用属性&#xff…

解决C# winform saveFileDialog默认文件名及默认文件类型无效

saveFileDialog默认文件名及默认文件类型无效 1、问题描述1.1 错误代码1.2 错误截图 2、问题解决2.1 正确代码2.2 正确截图 3、问题完美解决 1、问题描述 在使用saveFileDialog时遇到一个错误&#xff0c;自己无论怎么设置默认的文件名无法显示。 1.1 错误代码 //打开文件对…

C# ——SaveFileDialog

View Code 1 // string localFilePath, fileNameExt, newFileName, FilePath; 2 SaveFileDialog saveFileDialog1 new SaveFileDialog(); 3 4 // 设置文件类型 5 saveFileDialog1.Filter " txt files(*.txt)|*.txt|All files(*.*)|*.* " ; 6 7 // 设置默认文…

C# 第六章『交互式图形界面』◆第4节:FileDialog类 、OpenFileDialog类、SaveFileDialog类、示例

一、FileDialog 类 FileDialog 类https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.filedialog?viewnetframework-4.0 1、定义 命名空间&#xff1a;System.Windows.Forms程序集&#xff1a;System.Windows.Forms.dll继承&#xff1a;Object→MarshalByR…

C# SaveFileDialog 、OpenFileDialog 的用法

文件操作中SaveFileDialog的用法 c#获取要保存文件的对话框&#xff0c;用SaveFileDialog类。具体用法很简单分享一下吧&#xff0c;对于初学者可能有用 //可能要获取的路径名 string localFilePath "", fileNameExt "", newFileName "", Fil…

C#中SaveFileDialog 和OpenFileDialog 的用法

1.OpenFileDialog private void btnOpen_Click(object sender, EventArgs e){OpenFileDialog ofd new OpenFileDialog();ofd.InitialDirectory "C:\Users\LWP1398\Desktop"; //设置初始路径ofd.Filter "Excel文件(*.xls)|*.xls|Csv文件(*.csv)|*.csv|所有文…

C#窗体设计SaveFileDialog的用法

本文讲解C#窗体设计SaveFileDialog的用法。 操作流程 1.1. SaveFileDialog概念 1.1.1. 基本属性 Windows 窗体 SaveFileDialog 组件是一个预先配置的对话框。 它与 Windows 使用的标准“保存文件”对话框相同。 该组件继承自 CommonDialog 类。SaveFileDialog用于保存文件&…

改变世界的17个数学公式

目录 1、勾股定理 2、对数 3、微积分 4、万有引力定律 5、-1的平方根 6、多面体欧拉定理 7、 正态分布 8、波动方程 9、傅里叶变换 10、纳维-斯托克斯方程 11 麦克斯韦方程组 12 热力学第二定律 13 爱因斯坦的质能方程 14 稳态非线性方程 15、信息熵 16 、混沌…

【存储】什么是纠删码(与纠错码的区别)|纠删码与副本对比|LDPC码

目录 什么是纠删码(与纠错码的区别) FEC (前向错误纠正技术)介绍 纠删码与副本对比 什么是纠删码(与纠错码的区别) 存储领域来看&#xff0c;数据冗余机制其实这几十年来没有太多进展&#xff0c;RAID&#xff0c;副本一直是当仁不让的最终选择。而近几年&#xff0c;尤其是规模…

Web安全攻防

第三章 常用的渗透测试工具 Low级别基于布尔的盲注思路 1.判断是否存在注入&#xff0c;注入是字符型还是数字型 2.猜解当前数据库名 3.猜解数据库中的表名 4.猜解表中的字段名 5.猜解数据 判断是否有sql注入 输入1、1’ and 11 #、1’ and 12# 得到结果User ID exist…

Packet Chasing:通过缓存侧信道监视网络数据包

摘要 本文介绍了一种对网络的攻击–Packet Chasing&#xff0c;这种攻击不需要访问网络&#xff0c;无论接收数据包的进程的特权级别如何&#xff0c;都能发挥作用。一个间谍进程可以很容易地探测和发现网络驱动程序使用的每个缓冲区的确切缓存位置。更有用的是&#xff0c;它…

计算机网络cdm编码实验,【计算机网络】第二章:物理层(Part2:信道复用技术和宽带接入技术)...

CN.StudyLog.Ch2.Physical Layer.物理层(Part2.信道复用&宽带接入) 信道复用技术 频分复用(FDM&#xff0c;Frequency Division Multiplexing) 时分复用(TDM&#xff0c;Time-division multiplexing) 波分复用(WDM,Wavelength Division Multiplexing) 码分复用(CDM&#xf…

Kettle ETL处理工具

集群模式&#xff08;Linux&#xff09; 注意&#xff1a;检测服务器是否有jdk 1)准备三台服务器 HOST映射IPCUP内存端口Msternode01192.168.xx.xx1632G8080SlaveFristnode02192.168.xx.xx1632G8081SlaveSecondnode03192.168.xx.xx3232G8082 查看服务器上各个端口是否被占用…

操作系统,计算机网络,数据库刷题笔记11

操作系统&#xff0c;计算机网络&#xff0c;数据库刷题笔记11 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xf…

隐蔽信道相关概念(持续更)

通常&#xff0c;黑客会使用隐蔽网络躲避防火墙和IDS等。通过不可检测的网络从目标主机窃取数据的网络被称为隐蔽信道&#xff0c;而这些流量在网络监控设备/应用和网络管理员看来像是一般的正常流量。两个端点用户可以利用隐蔽信道&#xff0c;进行无法被检测到的网络通信。 什…

数据库原理复习与知识点总结

2022.5.29 更新&#xff1a;大学最后一门考试考完啦&#xff0c;开始下一阶段的学习 2022.5.26 更新&#xff1a;成功更完&#xff0c;开始刷题&#xff01; 2022.5.25 更新&#xff1a;争取明天更完 以下为原内容 第一章 绪论 1.1 数据库系统概述 数据库技术是信息系统的核…

数据库系统概论

目录 前言绪论数据库系统概述四个基本概念数据管理技术的产生和发展&#xff08;了解&#xff09;人工管理阶段文件系统阶段 数据库系统阶段整体数据结构化&#xff08;本质区别&#xff09;数据的共享性高&#xff0c;冗余度低&#xff0c;易扩充数据独立性高数据由DBMS统一管…

软件测试(白盒测试与黑盒测试)

黑盒测试 概述 黑盒测试用例设计方法包括 等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等 等价类划分法 概念 等价类划分法是把所有可能输入的数据&#xff0c;即程序的输入域划分若干部分&#xff08;子集&#xff0…