1、语句覆盖(Statement Coverage)

对程序的逻辑覆盖很少,只关心判定表达式的值,是很弱的逻辑覆盖标准

  • 【基本思想】:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。
  • 【优点】:检查所有语句、代码覆盖率高
  • 【缺点】:无法检查出条件、循环语句的错误

2、判定覆盖(Decision Coverage)

判定覆盖比语句覆盖强一些,能发现一些语句覆盖无法发现的问题。但是往往一些判定条件都是由多个逻辑条件组合而成的,进行分支判断时相当于对整个组合的最终结果进行判断,这样就会忽略每个条件的取值情况,导致遗漏部分测试路径。

  • 【基本思想】:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。
  • 【优点】:判定覆盖具有比语句覆盖更强的测试能力。
  • 【缺点】:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径,判定覆盖仍是较弱的逻辑覆盖。

3、条件覆盖(Condition Coverage)

通常而言条件覆盖比判定覆盖强,因为条件覆盖使得判定中的每一个条件都取到了不同的结果,这一点判定覆盖则无法保证。但条件覆盖也有缺陷,因为它只能保证每个条件都取到了不同结果,但没有考虑到判定结果,因此有时候条件覆盖并不能保证判定覆盖。

  • 【基本思想】:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。
  • 【优点】:能够检查所有的条件错误。
  • 【缺点】:不能保证所有的分支(判定)都能覆盖,仍是较弱的覆盖方式。

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

判定/条件覆盖,说白了就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖),同时每个判断本身所有的结果也要至少执行一次(判定覆盖)。不难发现判定条件覆盖同时满足判定覆盖和条件覆盖,弥补了两者各自的不足,但是判定条件覆盖并未考虑条件的组合情况。

  • 【基本思想】:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时所有判断的可能结果至少执行一次。
  • 【优点】:既考虑了每一个条件,又考虑了每一个分支,发现错误的能力强于分支覆盖和条件覆盖
  • 【缺点】:仍然不能覆盖所有的路径,有进一步提升的空间

5、条件组合覆盖(Branch Condition Combination Coverage)

条件组合覆盖,测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。

  • 【基本思想】:设计足够的测试用例,使得所有可能的条件取值组合至少执行一次。
  • 【优点】:能够检查所有的条件错误
  • 【缺点】:不一定能使程序中的每条路径都执行到,用例数明显增加

6、路径覆盖(Path Coverage)

路径覆盖,意思是说我们设计的测试用例可以覆盖程序中所有可能的执行路径。这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。

  • 【基本思想】:要求设计足够多的测试用例,使得程序中所有的路径都至少执行一次 。
  • 【优点】:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
  • 【缺点】:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,不一定把所有的条件组合都覆盖。

总结一下:

  1. 在实际的操作中,要从代码分析和代码调研入手,可以选择上述方法中的某一种,或者好几种方法的结合,设计出高效的测试用例,尽可能全面地覆盖到代码中的每一个逻辑路径。
  2. 白盒测试又很少能使用手工进行,选择一款不错的自动化工具也是很重要的,之前工作中使用的testbed工具进行这种覆盖测试非常方便,而且提供一个MC/DC(修正条件/判定覆盖)的方式,在能够保证覆盖效果的情况下,尽可能减少测试用例的数量

软件测试——逻辑覆盖相关推荐

  1. 软件测试-白盒测试:逻辑覆盖

    逻辑覆盖 参考文献: 软件测试第4章白盒测试一 软件测试--白盒测试 白盒测试-覆盖测试(六种覆盖方法) 几种常用的逻辑覆盖测试方法 目的:结构测试是依据被测程序的逻辑结构设计测试用例,驱动被测程序运 ...

  2. 软件测试—第五章白盒测试.逻辑覆盖法

    一,逻辑覆盖 1,语句覆盖 (1)基本思路:设计测试用例,运行被测程序,使程序中每个可执行语句至少被执行一次. (2)只需要一个测试用例就可以测试所有语句 (3)优点:可以直观的从源代码得到测试用例, ...

  3. 详解软件测试中白盒测试基本概念及四种白盒测试方法以及六种逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)

    在这篇文章中,我们将讲解白盒测试的基本概念,以及四大常用的白盒测试方法. 一.白盒测试基本概念 1.白盒测试的定义 白盒测试又称为结构测试或逻辑驱动测试,它是把测试对象看成一个透明的盒子,它允许测试人 ...

  4. 白盒测试方法之逻辑覆盖

    单元测试基本 是指对软件中的最小可测试单元进行检查和验证.单元测试是软件测试中最基础的测试,集成测试.功能测试和系统测试都建立在单元测试之上.单元测试的对象是构成软件产品或系统的最小的独立单元,如封装 ...

  5. 白盒测试的5种逻辑覆盖法

    文章目录 判定覆盖法 Decision Coverage (DC) 条件覆盖 Condition Coverage (CC) 判定-条件覆盖 Condition-Decision Coverage 条 ...

  6. 白盒测试中几种逻辑覆盖法及其优缺点

    语句覆盖法: 详述: https://blog.csdn.net/hanhanwanghaha/article/details/105633019 定义:设计若干个测试用例,使被测试程序中的每条可执行 ...

  7. 详述白盒测试的逻辑覆盖的路径覆盖及其优缺点

    详述白盒测试的逻辑覆盖的路径覆盖及其优缺点 定义: 与其他覆盖的关系: 路径覆盖率: 测试用例: 优缺点: 定义: https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢 ...

  8. 详述白盒测试的逻辑覆盖的条件覆盖及其优缺点

    条件覆盖 详述白盒测试的逻辑覆盖的条件覆盖及其优缺点: 条件覆盖的定义: 与判定覆盖的区别: 条件覆盖率: 测试实例: 代码: 优缺点: 详述白盒测试的逻辑覆盖的条件覆盖及其优缺点: https:// ...

  9. 详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 详述白盒测试的逻辑 ...

最新文章

  1. android 停用应用的命令,免Root使用ADB命令_停用手机系统应用
  2. 【堆栈应用一】一个数divided=几个最小质因数的乘积
  3. (转)SystemProcessesAndThreadsInformation
  4. Vue中浏览器的的前进和后退
  5. Storm精华问答 | 为什么要用Storm?不用Spark?
  6. 抽象类的有参与无参构造函数的研究
  7. 容器viewController添加或者删除子viewController
  8. 推荐一个可以减少开发量50%的插件!
  9. 微波射频学习笔记2--------传输线理论
  10. Linux内核panic到ramdump基本流程
  11. uc通讯不成功php版本过高,UC通信失败怎么办
  12. 借助Grub4DOS的grldr启动Windows PE(软启动)
  13. 2023最新最全vscode插件精选
  14. A记录和CNAME记录有什么区别?
  15. xshell用无线网远程连接linux失败_vnc远程控制软件怎么用,3个步骤教你vnc远程控制软件怎么用...
  16. 动态网站基本上都是有后台的,静态的网站就是纯HTML的网站的,这样的网站是没有后台的
  17. 使用C语言判断一个机器是大端机还是小端机
  18. 阿里云windows服务器重置密码并连接远程桌面
  19. 微影Q8pro投影仪和哈趣H1投影仪相比谁好用 一表看清
  20. 石溪计算机学校校服,美国纽约州著名高中推荐盘点,总有你想去的!

热门文章

  1. 转载 100本软件开发最佳书籍排行榜
  2. docker 下载mysql 8.0_docker安装mysql8.0
  3. 最近三年的百度产品经理面试与笔试题完整版
  4. 一个非常好的大数据学习网站
  5. CF 375C Circling Round Treasures(状态压缩+bfs)
  6. 批量修改文件名为上级目录名字
  7. 小白学 Python(23):Excel 基础操作(上)
  8. Question Retrieval with Distributed Representations and Participant Reputation in Community QA论文笔记
  9. 对G1垃圾回收器的理解
  10. 因特网上的英语学习资源