语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

article/2025/10/7 10:36:25

文章目录

    • 语句覆盖
    • 判定覆盖
    • 条件覆盖
    • 条件--判定覆盖
    • 组合覆盖
    • 路径覆盖

逻辑覆盖率:语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖

语句覆盖

基本思想:设计用例,使程序中的每个可执行语句至少执行一次。
每个可执行语句:每个语句,那么下图中执行为:1->2->3->4
在这里插入图片描述

  • 优点:可以很直观的从源代码获得用例,无需细分每条判定表达式
  • 缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的,如在多分支的逻辑运算中无法全面考虑。语句覆盖是最弱的逻辑覆盖

判定覆盖

基本思想:设计用例,使得程序中的每一个判断取真分支和取假分支至少经历一次,即判断真假值均曾被满足
在这里插入图片描述
重点是判定针对于真假判断),覆盖条件:

条件1:T,条件3:F
条件1:F,条件3:T

或者

条件1:T,条件3:T
条件1:F,条件3:F

  • 优点:判定覆盖比语句覆盖具有更强的测试能力。同时判定覆盖与具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例
  • 缺点:往往大部分的测试用例是由多个逻辑条件组合的,若仅仅判断其整个的最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径,判定覆盖仍是很弱的逻辑覆盖

条件覆盖

基本思想:设计用例,使每个判断中的每个条件的可能取值至少满足一次
在这里插入图片描述
重点是判断语句的条件针对条件语句

判断表达式1:
设条件 a>0 为真 记T1假 记F1
条件 b>0   为真 记T2假 记F2 判断表达式3:
设条件 a>1 为真 记T3假 记F3
条件 c>1   为真 记T4假 记F4		

覆盖条件:

T1,F2,T3,F4
F1,T2,F3,T4

我们用条件覆盖的思想就是覆盖T1,T2,T3,T4,F1,F2,F3,F4

  • 优点:增加了对条件判断情况的测试,增加了测试路径
  • 缺点:条件覆盖不一定包含判定覆盖,例如,上面的测试用例中就不包含判断1的T分支,判断3的F分支。条件覆盖只能保证每个条件语句取值至少有一次为真,而不考虑所有的判定结果

条件–判定覆盖

基本思想:设计用例,使判定条件中的所有可能(条件成立、不成立)至少执行一次取值,同时,所有判断的可能结果(取真,取假),至少执行一次
在这里插入图片描述
覆盖条件用例:

T1,T2,T3,T4
F1,F2,F3,F4

要满足:T1,T2,T3,T4,F1,F2,F3,F4

  • 优点:能同时考虑到判定,条件两种覆盖
  • 缺点:未考虑条件的组合情况

组合覆盖

基本思路:设计用例,使所有可能的条件取值组合至少执行一次
在这里插入图片描述
重点:所有条件取值的组合

编号覆盖条件取值
1T1,T2
2T1,F2
3F1,T2
4F1,F2
5T3,T4
6T3,F4
7F3,T4
8F3,F4
覆盖条件覆盖组合
T1,T2 , T3 , T41,5
T1,F2 , T3 , F42,6
F1,T2 , F3 , T43,7
F1,F2 , F3 , F44,8
  • 优点:组合覆盖满足了判定覆盖、条件覆盖、和判定、条件覆盖准则。
  • 缺点:线性的增加了测试用例的数量

路径覆盖

基本思想:设计测试用例,来覆盖程序中的所有可能执行的路径
在这里插入图片描述
继上面的的条件取值表格

覆盖路径覆盖组合
1-2-41,5
1-2-51,8
1-3-44,7
1-3-54,8
  • 优点:这种测试方法可以对程序进行彻底的测试,比前面五种的测试要广
  • 缺点:需要设计大量的,复杂的测试用例,使得工作量呈指数增长,不见得能把所有的条件组合都覆盖

http://chatgpt.dhexx.cn/article/9McwcTIT.shtml

相关文章

软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法

文章目录 1 静态2 动态2.1 逻辑覆盖2.1.1 语句覆盖2.1.2 判定覆盖2.1.3 条件覆盖2.1.4 判定条件覆盖2.1.5 条件组合覆盖2.1.6 路径覆盖 2.2 基本路径测试法&#xff08;重点&#xff09; 小结 白盒设计方法分为静态和动态。 1 静态 静态的白盒测试方法有桌面检查、代码审查、代…

软件测试——语句覆盖

语句覆盖 一、定义&#xff1a; 程序中每一个语句至少能被执行一次 二、特点&#xff1a; 1、程序中每一个语句执行一次 2、对程序执行逻辑的覆盖率低&#xff0c;属于最弱的覆盖方式 3、无需测试程序的分支情况 4、无需测试程序分支判断的输入值以及输入值的组合 5、无需测试…

软件测试语句覆盖,软件测试中的语句覆盖,分支覆盖,条件覆盖以及路径覆盖...

我举一个简单的例子来解释一下语句覆盖,分支覆盖,条件覆盖以及路径覆盖的相关知识,如果有不对的地方,恳请各位同行指正: 举例说明: if A=true and B=true then Action1 if C=true or D=true then Action2 这是一个很简单的例子,也就是,当A和B都为真的情况下,执行Actio…

语句覆盖

一、定义 程序中每一个语句至少能被执行一次 二、特点 1、程序中每一个语句执行一次 2、对程序执行逻辑的覆盖率低&#xff0c;属于最弱的覆盖方式 3、无需测试程序的分支情况 4、无需测试程序分支判断的输入值以及输入值的组合 5、无需测试程序执行的不同路径 三、程序流程…

白盒测试的几种覆盖方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖详解

文章转自&#xff1a;https://blog.csdn.net/LOVEYSUXIN/article/details/82592588?utm_mediumdistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_sourcedistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLear…

白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖)

六种覆盖标准发现错误的能力呈由弱到强的变化 语句覆盖&#xff1a;每条语句至少执行一次。 判定覆盖&#xff1a;每个判定的每个分支至少执行一次。 &#xff08;包含语句覆盖&#xff0c;每个判断T、F各一次&#xff09;条件覆盖&#xff1a;每个判定的每个条件应取到各种可…

语句覆盖(Statement coverage)

一、语句覆盖(Statement coverage) “语句覆盖”是一个比较弱的测试标准&#xff0c;它的含义是&#xff1a;选择足够的测试用例&#xff0c;使得程序中每个语句至少都能被执行一次。 图6.4是一个被测试的程序&#xff0c;它的源程序…

语句覆盖法

语句覆盖法 文章目录 语句覆盖法一、什么是语句覆盖二、要执行的语句代码三、设计测试用例&#xff0c;1.测试用例数据2.执行测试用例 四、 语句覆盖缺点 一、什么是语句覆盖 语句覆盖&#xff1a;就是设计若干个测试用例 &#xff0c;运行被测程序&#xff0c;使得每一可执行…

语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、路径覆盖

白盒测试的测试用例在大二学习软件工程的时候也是一个重点模块&#xff0c;但是上课没有太多时间做太多的测试用例&#xff0c;然后许久不用会搞乱&#xff0c;所以这里简单复盘一下。 白盒测试是结构测试&#xff0c;主要对代码的逻辑进行验证。 逻辑覆盖率&#xff1a;语句覆…

卷积码和维特比译码

卷积码 基本概念 卷积码常记为(n, k, N)&#xff1a; n n n为模2和相加器的个数 N N N为输入移位寄存器的段数&#xff08;称为约束长度&#xff09; k k k表示每段有 k k k级 编码效率为 R c k n R_c \frac{k}{n} Rc​nk​ 距离特性 纠错能力的度量&#xff1a;最大的最…

如何通俗地理解卷积?

从数学上讲&#xff0c;卷积就是一种运算。 某种运算&#xff0c;能被定义出来&#xff0c;至少有以下特征&#xff1a; 首先是抽象的、符号化的 其次&#xff0c;在生活、科研中&#xff0c;有着广泛的作用 比如加法&#xff1a; &#xff0c;是抽象的&#xff0c;本身只是…

【信道编码/Channel Coding】卷积码和Viterbi译码及其MATLAB实现

简介&#xff1a; 这是本专栏信道编码/Channel Coding的最后一站&#xff0c;想对信道编码有一个系统性的认识可以看本专栏的 信道编码的整体框架 一文。而在本篇文章中&#xff0c;将介绍卷积码的基本原理和Viterbi译码的过程&#xff0c;以及其MATLAB实现。为什么是最后一站呢…

不同卷积方法一览(+部分代码)

关键词 卷积方法&#xff1a;2D / 3D / 1x1 /转置/扩张&#xff08;Atrous&#xff09;/空间可分/深度可分/平展/分组/混洗分组/逐点分组卷积 卷积网络&#xff1a;全卷积FCN&#xff08;Fully Convolutional Network&#xff09;&#xff0c;可变形卷积&#xff08;Deformab…

卷积代码实现

卷积在pytorch中有两种方式&#xff0c;一种是torch.Conv2d(),一种是torch.nn.functional.conv2d&#xff08;&#xff09;&#xff0c;这两种形式本质都是使用一个卷积操作&#xff0c;下面举例来说明一下这两种卷积方式 import numpy as np import torch from torch import …

最通俗的语言讲解卷积码、码树图、状态图以及维特比译码

什么是卷积码&#xff1f; 卷积码是由伊利亚斯发明的一种非分组码&#xff0c;它更加倾向于纠错&#xff0c;对于实际的性能优于分组码&#xff0c;运算较为简单。 将卷积码记为(n,k,N),码率定义为k/n n是n个比特 k是k个信息位 N是N个信息段 卷积码编码器 组成&#xff1a…

卷积,卷积神经网络,图卷积神经网络中的“卷积”如何理解?

[] 1. 对卷积最朴素的理解 首先我们在教材上看到的卷积公式是 ∫ f ( τ ) g ( x − τ ) d τ \int f(\tau)g(x-\tau)d\tau ∫f(τ)g(x−τ)dτ。对于这个公式的理解&#xff0c;网上有很多讲解视频&#xff0c;都是用一些具体的例子来帮助我们理解卷积的过程。推荐b站上的视…

实现卷积的几种代码方式

目录 摘要 卷积&#xff08;convolution&#xff09; 1、pytorch实现 2、对input展开矩阵相乘 3、对kernel展开以及矩阵相乘 转置卷积 1、API实现 2、对kernel矩阵转置矩阵相乘 总结 摘要 卷积的基本元素有着input size、kernel size、stride、padding、group以及dil…

卷积卷积神经网络

文章目录 一、关于卷积&#xff08;convolution&#xff09;的直观感受二、卷积在不同领域的应用三、卷积神经网络&#xff08;CNN&#xff09;的诞生四、卷积神经网络&#xff08;CNN&#xff09;&#xff08;1&#xff09;为什么需要卷积层&#xff08;2&#xff09;池化&…

MATLAB (n,k,m)卷积码原理及仿真代码(你值得拥有)

卷积码原理介绍 1.基本概念 首先卷积码是一种纠错码&#xff0c;让我们先从大格局出发&#xff0c;去认识卷积码。如图1所示我是先从通信原理书上了解了卷积码的概念&#xff0c;再结合网上部分资料&#xff0c;勉强搞懂&#xff0c;感觉主要需要掌握卷积码编码器、状态图、网…

通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)

信道编码 / 前向纠错码FEC 思想是在数据中增加冗余信息&#xff0c;即校验码元 / 监督码元&#xff0c;从而检错、纠错 信道编码的优劣评判 首先&#xff0c;最基本的是要追求低差错率 实现纠错很简单&#xff0c;只要多添加冗余信息就好&#xff1b;但实际中&#xff0c;我…