文章目录

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

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

语句覆盖

基本思想:设计用例,使程序中的每个可执行语句至少执行一次。
每个可执行语句:每个语句,那么下图中执行为: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

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

组合覆盖

基本思路:设计用例,使所有可能的条件取值组合至少执行一次

重点:所有条件取值的组合

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

路径覆盖

基本思想:设计测试用例,来覆盖程序中的所有可能执行的路径

继上面的的条件取值表格

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

语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖相关推荐

  1. 【网络流24题】解题报告:C、最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)

    C.最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)[省选/NOI- ] 拆点最大流 [问题分析] 有向无环图最小路径覆盖,可以转化成二分图最大匹配问题,从而用最大流解决. [建模方法] 构造二分 ...

  2. 判定覆盖白盒测试java_白盒测试--条件判定覆盖和修正条件判定覆盖的差异

    1 简介 文章的目的在于通过比较发现条件判定覆盖(即Condition/Decision Coverage C/DC)和修正条件判定覆盖(Modified Condition/Decision Cov ...

  3. mysql存储过程判断多个条件语句_存储过程里多条件判断(SQL组合查询)

    我存储过程里想实现多个传入参数的判断,里面有7个传入参数条件. CREATE PROCEDURE sp_tbWasteSource_Search ( @sd   datetime,           ...

  4. 控制流测试 (语句覆盖、分支覆盖、判定覆盖、路径覆盖) 与条件测试

    控制流测试 控制流测试 (Control Flow Testing):是一种在考虑测试对象的控制流情况下导出测试用例的测试方法,并且借助于控制流图能评估测试的完整性(覆盖率). 原则 控制流图是一个带 ...

  5. 判定覆盖白盒测试java_白盒测试系列(四)条件判定覆盖

    条件判定覆盖 一.定义: 程序中每个判定至少有一次为真值,有一次为假值,使得程序中每个分支至少执行一次, 且使得各判定中的每个条件获得各种可能的取值至少满足一次. 二.特点: 1.综合了条件覆盖和判定 ...

  6. 二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配

    二分图匹配 二分图大讲堂--彻底搞定最大匹配数(最小覆盖数).最大独立数.最小路径覆盖.带权最优匹配(转) 文本内容框架: §1图论点.边集和二分图的相关概念和性质 §2二分图最大匹配求解 匈牙利算法 ...

  7. 【无标题】逻辑覆盖-路径覆盖(白盒测试)

    本关任务:以闯关的模式,让学生在自己设计测试用例的过程中一步一步掌握逻辑覆盖的各个等级. 相关知识 路径覆盖 定义 路径覆盖(Path Coverage)的含义是,选取足够多的测试用例,覆盖程序中所有 ...

  8. 软件测试(基本路径测试、环形复杂度、路径覆盖)

    程序集中独立路径的确定方法 如图所示的控制流图,采用基本路径测试法,给出此程序的基本集: 环形复杂性是一种为程序逻辑复杂性提供定量测量的软件度量.当该度量用于基本路径测试方法,计算所得的值给出了程序基 ...

  9. 【网络流24题】D、魔术球问题(有向无环图的最小路径覆盖、思维)

    D.魔术球问题(有向无环图的最小路径覆盖.思维)[省选/NOI- ] P2765 魔术球问题 [问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [ ...

  10. HDU - 1151 Air Raid(最小路径覆盖-二分图最大匹配)

    题目链接:点击查看 题目大意:给出一个有向图,现在需要在不同的地方空降伞兵,保证所有伞兵沿着道路可以走完所有城市,求出最少伞兵的数量 题目分析:我们的目的是要用最少的路径覆盖所有顶点,换句话说就是二分 ...

最新文章

  1. Ext JS 6正式版的GPL版本下载地址
  2. owncloud 配置mysql_傻瓜式搭建私人网络硬盘——owncloud安装指南
  3. H5活动刮刮卡功能的实现与注意事项
  4. 2.7 RMSprop-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. MySQL索引面试题:优化 索引分类
  6. 区块链在供应链领域的应用
  7. 用装饰器来进行登录验证
  8. java中输入输出总结
  9. 使用PostSharp在.NET平台上实现AOP(转)
  10. vue 关于数组的固定随机排序
  11. PID参数整定方法介绍
  12. 地信遥感行业可以考的证
  13. 数字孪生是什么?以山海鲸智慧园区三维可视化系统为例说明
  14. on1 photo raw 2020中文版(RAW图像处理) v14.5.1.9231绿色便携版
  15. 转-国内移动广告平台的现状对比(2010年8月-10月)
  16. 第6章 歌手详情页开发
  17. nonebot,cqhttp 机器人学习1
  18. UNIX 是什么?怎么诞生的?
  19. 技术干货 | AlphaFold/ RoseTTAFold开源复现(1)—推理复现
  20. v中国数字线卡行业发展动态与投资前景展望报告2022-2027

热门文章

  1. 本地计算机的硬件基本配置信息,Windows7系统如何查看硬件的基本配置
  2. windows便签快捷键_Windows10便签快捷键在哪里设置?
  3. Sophix热修复的简单使用
  4. 软件工程 - 个人博客系统 - 可行性分析与需求分析文档
  5. IntelliJ IDEA 2020 如何解决Commit: Local Changes Refresh提交Git代码卡住超级慢(已解决)
  6. 谷歌清楚缓存快捷键_清除浏览器缓存的快捷键是什么
  7. python条形堆积图_python – 带有中心标签的堆积条形图
  8. Ubuntu16.04 安装 卸载 pip
  9. win7电脑屏幕亮度怎么调节
  10. 数学建模之马尔可夫链模型详解(附详细Matlab程序)