白盒测试的逻辑覆盖法

逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

六种覆盖标准发现错误的能力呈由弱到强的变化:

1.语句覆盖

2.判定覆盖

3.条件覆盖

4.判定/条件覆盖

5.条件组合覆盖

6.路径覆盖

对上述6种覆盖标准的具体介绍:

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

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

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

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

判定覆盖的公式: 判定覆盖率=被评价到的判定分支个数/判定分支的总数X100%。

判定路径覆盖率(DDP)=被评价到的判定路径数量/判定路径的总数X100%。

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

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

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

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

4.判定条件覆盖(Condition/ Decision Coverage):

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

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

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

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

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

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

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

6.路径覆盖:                                  设计足够多的测试用例,执行程序所有可能的路径。

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

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

路径覆盖测试步骤:

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

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

3. 生成路径图;

4. 进行路径编码;

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

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

7. 修正的条件判断覆盖率(MC/DC)

时间: 2024-10-31 23:56:30

白盒测试的逻辑覆盖法的相关文章

白盒测试之逻辑覆盖法

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

白盒测试——逻辑覆盖法

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

白盒测试技术-逻辑覆盖

1.语句覆盖 选择足够多的测试数据,使被测试程序中每个语句至少执行一次 2.判定覆盖 判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次 3.条件覆盖 不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果 4.判定/条件覆盖 选取足够多的测试数据,使得判定表达式中的每个条件都取得可能的值,而且每个判定表达式也都取得各种可能的结果 5.条件组合覆盖 选取足够多的测试数据,使得每

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

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

逻辑覆盖法和基本路径法

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

逻辑覆盖

参考内容: 百度词条 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. 判定

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

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

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

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

白盒测试以及基路径法测试

测试用例: 语句覆盖: 1. x=3,y=3,z=0. 预期输出 x=2 (a(T),b(T)) 2. x=3,y=3,z=1. 预期输出 x=1 (a(F),b(T)) 判定覆盖: 1. x=3,y=1,z=0. 预期输出 x=2 (a(F),b(F)) 2. x=3,y=3,z=0. 预期输出 x=2 (a(T),b(T)) 条件覆盖: 1. x=1,y=1,z=1. 预期输出 x=0 (a(F,F),b(F,F)) 2. x=3,y=3,z=0. 预期输出 x=2 (a(T,T),b(T,