逻辑覆盖

参考内容:

百度词条

https://baike.baidu.com/item/%E9%80%BB%E8%BE%91%E8%A6%86%E7%9B%96/3231015?fr=aladdin#1_1

逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。

逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。 [1]

根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为:

1.语句覆盖(SC)

2. 判定覆盖(DC)

3. 条件覆盖(CC)

4. 条件/判定覆盖(CC)

5. 条件组合覆盖(CDC)

6.路径覆盖

7.修正判定条件覆盖(MCDC)

语句覆盖

语句覆盖 SC(Statement Coverage),就是设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次。测试用例越少越好。语句覆盖在测试中主要发现缺陷或错误语句。

覆盖率公式:语句覆盖率=被评价到的语句数量/可执行的语句总数*100%

缺点:对程序执行逻辑的覆盖很低。

判定覆盖(分支覆盖)

判定覆盖DC(Decision coverage),有时也称分支覆盖,就是指设计若干测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少评价一次

覆盖率=被评价到的判定路径数量/判定路径的总数*100% 。

判定覆盖的缺点:判定覆盖虽然把程序所有分支均覆盖到了,但其主要对整个表达式最终取值进行度量,忽略了表达式内部取值。

条件覆盖

条件覆盖CC(Condition Coverage),设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次

覆盖率公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数*100%

缺点:只考虑到每个判定语句中的每个表达式,没有考虑到各个条件分支(或者涉及不到全部分支),即不能够满足判定覆盖。

判定条件覆盖

判定条件覆盖CDC(Condition/ Decision Coverage),设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次

覆盖率公式: 条件判定覆盖率=被评价到的条件取值和判定分支的数量/(条件取值总数+判定分支总数)

缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误。

补充:修正判定条件覆盖 

  修正判定条件覆盖单元的入口与出口必须至少被调用一次,程序中判断的每一个分支必须至少被执行一次。对于程序中通过逻辑运算(AND,OR等)组成判断的基本布尔条件,每个条件必须取遍所有可能的值且每一个条件对判断的结果具有独立的作用。

条件组合覆盖

条件组合覆盖,也称多条件覆盖MCC (Multiple Condition Coverage),设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。

这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。

覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数

缺点:判定语句较多时,条件组合值比较多。

路径覆盖

路径覆盖,设计足够多的测试用例,使得执行程序所有可能的路径

覆盖率的公式:路径覆盖率=被执行到的路径数/程序中总的路径数。

优点:路径覆盖是覆盖率最高的一种覆盖技术。

测试步骤:

1. 将程序流程图转换成控制流图;

2. 经过语法分析求的路径表达式;

3. 生成路径图;

4. 进行路径编码;

5. 经过译码得到执行的路径;

6. 通过路径枚举产生特定路径测试用例。

修正条件判定覆盖(MC/DC)

每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;程序的判定被分解为通过逻辑操作符(andor)连接的bool条件,每个条件对于判定的结果值是独立的。

原文地址:https://www.cnblogs.com/qiuye98/p/10096975.html

时间: 2024-10-07 00:44:08

逻辑覆盖的相关文章

逻辑覆盖法和基本路径法

逻辑覆盖法 逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,这一方法要求测试人员对程序的逻辑结构有清楚的了解.逻辑覆盖可分为:语句覆盖.判定覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖与路径覆盖. 1. 语句覆盖就是设计若干个测试用例,运行所测程序,使得每一可执行语句至少执行一次. 2. 判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的取真分支和取假分支至少经历一次. 3. 条件覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的每个条件的可能取值至少执行一次

白盒测试——逻辑覆盖法

  白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的."白盒"法全面了解程序内部逻辑结构.对所有逻辑路径进行测试."白盒"法是穷举路径测试.在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据.   白盒测试法的覆盖标准有逻辑覆盖.循环覆盖和基本路径测试.今天我们主要研究逻辑覆盖,逻辑覆盖包括语句覆

[白盒测试学习] 从逻辑覆盖实例学起

1. 什么是白盒测试 白盒测试也称结构测试.逻辑驱动或基于程序的测试,是一种测试用例设计方法. 一般用于分析程序的内部结构. 针对特定的条件和循环设计测试用例,对程序的逻辑路径进行测试. 用这种发方法进行程序设计时,测试者可以看到被测程序,并分析其内部结构,白盒测试要求对被测程序的结构特性做到一定程度的覆盖. 从这个角度上说,白盒测试也是基于覆盖的测试技术. 2. 白盒测试方法概述 白盒测试通常分为静态和动态两种类型,包含很多常用的方法. 静态分析: 按照一定步骤直接见车源代码或代码的测试方法.

白盒测试中的几种逻辑覆盖

白盒测试又称为结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.就是在知道软件代码,和内部逻辑结构后进行的一项测试.主要目的是检查内部结构,逻辑.方法是检查每一条路径.与黑盒测试相比,黑盒测试更偏向用户,白盒测试更偏向于开发者.黑盒测试只需要输入和结果.而白盒测试更需要测试,软件内部是如何运行的. 今天我想说一说,白盒测试中的几种逻辑覆盖 白盒测试,为了保证测试的完整性,就要测试软件内部的每一条路径.逻辑覆盖方法能帮助我们设计测试用例,以减少不必要的消耗: 逻辑覆盖包括语句覆盖.判定覆盖.条件

白盒测试的逻辑覆盖法

逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术.它属白盒测试.逻辑覆盖包括语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.条件组合覆盖和路径覆盖. 六种覆盖标准发现错误的能力呈由弱到强的变化: 1.语句覆盖 2.判定覆盖 3.条件覆盖 4.判定/条件覆盖 5.条件组合覆盖 6.路径覆盖 对上述6种覆盖标准的具体介绍: 1.语句覆盖(Statement Coverage):就是设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次.这里的“若干个”,意味着使用测试用例越少越

白盒测试之逻辑覆盖法

白盒测试之逻辑覆盖法 白盒测试又叫逻辑驱动测试或结构测试. 与黑盒测试区别:关注代码内部结构 白盒测试的前提:已知代码内部逻辑 测试方法:逻辑覆盖法 逻辑覆盖法包括六种,从弱到强依次是:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖. 逻辑覆盖法 语句覆盖 将要测试的代码块中的每个语句都至少执行一遍.不关心语句的执行结果,只要执行了某个语句,就说该语句被覆盖了. 判定覆盖 判定可以看做是一个if语句,在程序流程图中用一个菱形表示,这个if语句只有两种结果:真.假.所以判定覆

白盒测试法:逻辑覆盖与路径覆盖

一.实验目的 (1)掌握逻辑覆盖和路径覆盖测试的基本方法 二.实验要求 (1)完成程序的编写 (2)运用逻辑覆盖和基本路径覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否 三.实验内容 (1)设计程序的逻辑覆盖测试用例,语句覆盖.条件覆盖.分支覆盖.分支/条件覆盖.条件组合覆盖. (2)设计程序的基本路径覆盖测试用例(要求绘制控制流图,利用三种方式计算圈复杂度). (3)编写程序进行实际测试,并给出测试结果. 伪代码程序如下: 1    Input(X) 2    If

逻辑覆盖测试之3-1 条件与判定

((x>5)&&(y>0)) 判定覆盖准则(DC):判定的 true 和 false至少各执行一次. // {(6, 1), (1,1)}--DCint foo(int x, int y) {int z = y*2; \\ z=y;if ((x>5) && (y>0)) {z = x; }return x*z;} 条件覆盖(CC): 每个条件的true和false至少各被执行一次 (x>5) :true and false(y>0) :t

实验三——第二题 逻辑覆盖的应用

l 按照所给的程序流程图,分别写出语句覆盖.分支覆盖的测试用例,以及它所覆盖的路径 l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试. 解:语句覆盖:abc  测试用例:X=1,Y=2 aef  测试用例:X=5,Y=1 aeg  测试用例:X=2,Y=0 分支覆盖:abc  测试用例:X=1,Y=2 abd  测试用例:X=1,Y=1 aef  测试用例:X=5,Y=1 aeg  测试用例:X=2,Y=0 package