白盒测试的各种方法

article/2025/9/14 4:13:30

文章目录

  • 一、逻辑测试法设计测试用例
    • 1.1语句覆盖
    • 1.2判定覆盖
    • 1.3条件覆盖
    • 1.4判断、条件覆盖(CDC)
    • 1.5条件组合覆盖(MCC)
  • 二、基本路径测试法
    • 2.1定义:
    • 2.2程序控制流图

白盒测试又叫架构测试
语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖

一、逻辑测试法设计测试用例

此方法主要是测试覆盖率,以内在逻辑结构为基础进行测试

1.1语句覆盖

使程序中的每个可执行语句至少执行一次。
在这里插入图片描述
如图所示,覆盖的路径依次为1->2->3->4

特点:
(1)程序中每个语句至少执行一次
(2)对程序执行逻辑的覆盖率低,属于最弱的覆盖方式

1.2判定覆盖

含义:在这里插入图片描述
在这里插入图片描述
可以设计的测试用例为:
第一个条件为真,第二个条件为假
第一个条件为假,第二个条件为真
在这里插入图片描述
也可以设计:
第一个条件为真,第二个条件为真
第一个条件为假,第二个条件为假

特点:
优点:不仅满足了判定覆盖还满足了语句覆盖,因此比语句覆盖稍强。
缺点:但仍然无法发现程序段中的逻辑判定错误。

1.3条件覆盖

定义:设计用例,使每个判断中的每个条件的可能取值至少满足一次
在这里插入图片描述
第一个判定框: 第二个判定框:
a>1为真     T1           a=2为真  T3
a>1为假     -T1          a=2为假  -T3
b==0为真       T2           x>1为真   T4
b==0    为假   -T2          x>1为假  -T4
设计:
T1,-T2,T3,-T4
-T1,T2,-T3,T4
其他满足的也可以
特点:
(1)增加了对条件判断情况的判断,增加了测试路径
(2)※条件覆盖不一定满足判断覆盖

1.4判断、条件覆盖(CDC)

定义:设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且判定本身的判定结果(真/假)也至少出现一次。
设计满足的测试用例:
T1,T2,T3,T4
-T1,-T2,-T3,-T4

1.5条件组合覆盖(MCC)

定义:设计足够多的测试用例,使得每个判定中的各种可能的组合都至少出现一次。
所有条件的组合
满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”的
在这里插入图片描述
测试用例:
全T写一组:
全F写一组:
T和F组合写:
TFTF
FTFT

特点:
组合覆盖一定满足判定覆盖、条件覆盖、判定/条件覆盖

在这里插入图片描述

二、基本路径测试法

2.1定义:

基本路径测试是在程序控制流图的基础上,通过分析控制流图的环形复杂度,导出基本可执行的独立路径的集合。
可以保证被测程序的每一条可执行语句至少执行一次。

2.2程序控制流图

只有结点和边
在这里插入图片描述
复合条件分解为控制流图:
在这里插入图片描述
环形复杂度V(G):
(1)流图中的区域数
(2)V(G) = E-N+2;(边的条数-结点数+2;)
(3)V(G) = P+1;(判定结点数目+ 1)
注意:判定结点个数=分支个数-1;


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

相关文章

白盒测试怎么做?

目录 前言 一、什么是白盒测试 二、白盒测试的分类 三、白盒测试的设计方法 四、白盒测试静态方法 五、白盒测试动态方法 六、白盒测试的特点 七、总结 前言 在企业内部&#xff0c;软件测试工程师基本处于“双高”地位&#xff0c;即地位高、待遇高。可以说他们的职业…

SpringBoot 默认数据库连接池 HikariCP

目录 引言 1、问题描述 2、SpringBoot默认的数据库连接池 3、HikariCP是什么 4、测试依赖 5、配置文件 5.1、数据库连接参数 5.2、连接池数据基本参数 5.3、连接检查参数 5.4、事务相关参数 5.5、JMX参数 6、HikariCP源码浅析 6.1、HikariConfig--连接池配置的加载…

HikariCP配置手册

必须配置 1、dataSourceClassName或者jdbcUrl &#xff08;二选一&#xff09; 在Springboot 自动装配&#xff0c;或使用Mysql DataSource 情况下 请使用jdbcUrl。其他情况&#xff0c;HikariCP建议使用DataSourceClassName dataSourceClassName &#xff1a;意思是JDBC驱动…

HikariCP 创建连接

PoolEntry PoolEntry 是 HikariCP 中对数据库物理连接的封装。 那我们现在探索问题的关键点就是&#xff1a; PoolEntry.connection 是如何创建的&#xff1b;连接是何时创建的&#xff1b; 我们先看下 HikariCP 中数据源、连接、连接池之间的关系。 创建连接 连接池的初…

hikaricp mysql_配置HikariCP连接池

配置HikariCP连接池 数据库配置 spring.datasource.driver-class-namecom.mysql.jdbc.Driver 指定 spring 连接数据源驱动 spring.datasource.typecom.zaxxer.hikari.HikariDataSource 指定 spring 连接数据源类型 spring.datasource.urljdbc:mysql:///dbgoods?serverTimezone…

HikariCP连接池

背景 自己在写点代码的时候之前pom文件的内容都是从前一个项目中复制的&#xff0c;并没有认真分析一下各种依赖的关系&#xff0c;有时候重复的问题会出现好多次&#xff0c;比如说连接数据库报错&#xff0c;有时候配置没有问题&#xff0c;可能是依赖的jar包的问题&#xf…

HikariCP数据库连接池详解

HikariCP数据库连接池详解 1. 数据库连接池概述2. 为什么需要连接池3. HikariCP概述4. HikariCP特点5. HikariCP配置6. HikariCP案例验证 1. 数据库连接池概述 连接池是一种常用的技术&#xff0c;为什么需要连接池呢&#xff1f; 这个需要从TCP说起。假如我们的服务器跟数据库…

hikaricp mysql_HikariCP数据库连接池

摘要: 原创出处 hacpai.com/article/1582096971127 「jianzh5」欢迎转载&#xff0c;保留摘要&#xff0c;谢谢&#xff01; 什么是数据库连接池&#xff1a; 连接池是一种常用的技术&#xff0c;为什么需要连接池呢&#xff1f;这个需要从TCP说起。假如我们的服务器跟数据库没…

hikaricp使用

hikaricp数据库连接池是目前很流行的数据源 1.需要引入mysql的驱动、hikaricp依赖 <properties><java.version>1.8</java.version><hikari.version>2.7.9</hikari.version><mysql.version>8.0.13</mysql.version></properties&g…

自定义HikariCP连接池

文章目录 一、简介1、概述2、地址 二、配置参数1、Hikari原生参数2、Springboot中参数 三、springboot中使用四、自定义数据源1、各模块2、完整代码3、多数据源 五、多数据源dynamic中使用1、简介2、引入依赖3、参数配置 六、XMind整理 一、简介 1、概述 官方解释&#xff1a…

HikariCP源码分析

文章目录 1. 基本用法1.1 添加依赖1.2 创建DataSource1.3 获取连接 2. 源码分析2.1 API2.2 Pool2.2.1 获取连接2.2.2 添加连接2.2.3 维护连接 2.3 metrics2.3.1 dropwizard2.3.2 prometheus 3. 最佳实践 HikariCP是一个快速&#xff0c;简单可靠的JDBC连接池&#xff0c;Spring…

hikaricp mysql_HikariCP

软件简介 HikariCP 是一个高性能的 JDBC 连接池组件。下图是性能的比较测试结果&#xff1a; 使用方法&#xff1a; HikariConfig config new HikariConfig(); config.setMaximumPoolSize(100); config.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlData…

数据库连接池HikariCP

HikariCP 现在已经有很多公司在使用HikariCP了&#xff0c;HikariCP还成为了SpringBoot默认的连接池&#xff0c;伴随着SpringBoot和微服务&#xff0c;HikariCP 必将迎来广泛的普及。 下面带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐&#xff0c;文章目录…

HikariCP 了解一下

作者 | 黄永灿 后端开发攻城狮&#xff0c;关注服务端技术与性能优化。 前言 在我们的工作中&#xff0c;免不了要和数据库打交道&#xff0c;而要想和数据库打好交道&#xff0c;选择一款合适的数据库连接池就至关重要&#xff0c;目前业界广为人知的数据库连接池有 Tomcat JD…

离线数仓-03-数仓系统搭建(ODS,DIM,DWD,DWS,ADS)

文章目录 数仓分层为什么要分层数据运营层&#xff1a;ODS&#xff08;Operational Data Store&#xff09;数据仓库层&#xff1a;DW&#xff08;Data Warehouse&#xff09;维表层&#xff1a;DIM&#xff08;Dimension&#xff09;数据明细层&#xff1a;DWD&#xff08;Dat…

数仓数据分层(ODS DWD DWS ADS)换个角度看

数仓数据分层简介 1. 背景 数仓是什么, 其实就是存储数据,体现历史变化的一个数据仓库. 因为互联网时代到来,基于数据量的大小,分为了传统数仓和现代数仓.传统数仓,使用传统的关系型数据库进行数据存储,因为关系型数据库本身可以使用SQL以及函数等做数据分析.所以把数据存储和…

湖仓一体电商项目(十):业务实现之编写写入DWD层业务代码

文章目录 业务实现之编写写入DWD层业务代码 一、代码编写

【实时数仓】CDC简介、实现DWD层业务数据的处理(主要任务、接收kafka数据、动态分流*****)

文章目录 一 CDC简介1 什么是CDC2 CDC的种类3 Flink-CDC 二 准备业务数据-DWD层1 主要任务&#xff08;1&#xff09;接收Kafka数据&#xff0c;过滤空值数据&#xff08;2&#xff09;实现动态分流功能&#xff08;3&#xff09;把分好的流保存到对应表、主题中 2 接收Kafka数…

数仓开发之DWD层(二)

目录 三&#xff1a;流量域用户跳出事务事实表 3.1 主要任务 3.2 思路分析 3.3 图解 3.4 代码 四&#xff1a;交易域加购事务事实表 4.1 主要任务 4.2 思路分析 4.3 图解 4.4 代码 三&#xff1a;流量域用户跳出事务事实表 3.1 主要任务 过滤用户跳出明细数据。 3.2 思…