白盒测试方法详解

  • 测试流程
  • 语句覆盖
  • 判定覆盖
  • 条件覆盖
  • 判定条件覆盖
  • 条件组合覆盖
  • 路径覆盖

测试流程

  • 测试计划:根据需求说明书,制定测试的计划、进度
  • 测试设计:按照软件的需求、规格,按照规范的方法对软件进行结构划分以及设计合适的测试用例
  • 测试执行:输入测试用例,记录测试结果
  • 测试总结:观察测试结果,与预期结果对比,找到软件的bug

语句覆盖

语句覆盖很好理解了,就是设计若干个测试用例,保证我们的每一行有效代码都能够被执行至少一次就可以了。

判定覆盖

又称分支覆盖,对每个有分支的语句,如 if else 等,对每种情况的所产生的分支都要走一遍。

条件覆盖

一开始看的时候我有点懵,看了几个实例才清楚,条件覆盖,即我们设计的所有测试用例,要包含了条件语句的每个条件的所有情况,如

if(A>0 && B ==3)
...
else
...
if(B<3 || C)
...
else
...

此时,所有条件语句中有这么多种情况:

① A>0          ② A<=0
③ B==3         ④ B!=3
⑤ B<3          ⑥ B>=3
⑦ C==true      ⑧ C==false

我们的所有测试用例,要把上述的所有情况包含进去,如:

用例一:A=1,B=3 , C=true  满足:① ③ ⑥ ⑦
用例二:A=0, B=1 , C=false  满足:② ④ ⑤ ⑧

到这里我有点迷茫,似乎语句覆盖、判定覆盖、条件覆盖经常相同,找不出具体的执行差别,但这其实不重要,因为我们的测试点不同,测试方法针对的对象不一样,尽管整体上的测试流程没有明显的区别,但针对不同点测试时产生的效果明显不一样。

判定条件覆盖

因为满足了多有条件的覆盖,并不能保证每个分支都走一遍,如:

if(A>0 || B>0)
...
else
...
测试用例:
A=1,B=0
A=0,B=1

可以看出测试用例符合条件覆盖但只执行了if中true的分支,所以我们要设计即满足条件覆盖,又满足判定覆盖的用例:

A=1, B=1
A=0, B=0

条件组合覆盖

每个单条件中的true or false 都与别的每个单条件的true or false 组合过,如:

if(A>0 || B <0 || C==3)
...
else
...

此时有:

A>0 , A<=0
B>=0 , B<0
C==3 , C!=3

3对情况,所以有2×2×2=8种组合,即:

1. A>0   B>=0  C==3
2. A>0   B>=0  C!=3
3. A>0   B<0   C==3
4. A>0   B<0   C!=3
5. A<=0  B>=0  C==3
6. A<=0  B>=0  C!=3
7. A<=0  B<0   C==3
8. A<=0  B<0   C!=3

路径覆盖

我们知道我们的程序可以通过点和线用流程图表示出来,流程图中每个判定节点又会产生许多分支,这就导致产生了许多程序的执行路径,所以我们设计的测试用例就需要满足流程图中每个路径都走一遍,环路至少走一遍
我们设E为边数,N为节点数,P为判断节点数
则定义路径复杂度V(G)为:

V(G) = E - N + 2
V(G) = P + 1

白盒测试:语句/条件/判定/判定条件/条件组合/路径覆盖相关推荐

  1. 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

    1语句覆盖 使所有的判断语句都能执行一次的条件案例,例如当判断语句事组合语句的时候,并且用or连接,只满足一个案例即可 2判定覆盖(分支覆盖) 针对判断语句,在设定案例的时候,要设定True和Fals ...

  2. 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖...

    1语句覆盖 使所有的判断语句都能执行一次的条件案例,例如当判断语句事组合语句的时候,并且用or连接,只满足一个案例即可 2判定覆盖(分支覆盖) 针对判断语句,在设定案例的时候,要设定True和Fals ...

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

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

  4. python多个条件组合覆盖_白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖...

    ·昂贵 ·无法检测代码中遗漏的路径和数据敏感性错误 ·不验证规格的正确性 六种覆盖方法 首先为了下文的举例描述方便,这里先给出一张程序流程图.(本文以1995年软件设计师考试的一道考试题目为例,图中红 ...

  5. 设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖.

    第一题: 设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖. [1]语句覆盖(设计若干个测试用例,使程序中的每个可执行语句至少执行一次) (x>3)& ...

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

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

  7. 软件测试 白盒测试 语句覆盖 判定覆盖

    前置知识 白盒测试用例设计方法(语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.组合覆盖.路径覆盖.基本路径覆盖) 语句覆盖:每条语句至少执行一次. 判定覆盖:每个判定的所有可能结果至少出现一次.(又称 ...

  8. matlab条件语句怎么写,matlab if 条件语句 用法以及实例是什么

    MATLAB中我们常常用到条件判断语句结构,通过实例介绍这个结构的用法: 1.if..end结构,运行下面的句子,此条件语句是判断5是否大于3,如果大于3,就将1赋值给: 2.if.elseend 结 ...

  9. c#switch语句判断成绩_Go的条件判断语句

    现实时间中,我们如果想去购物,可以选择网上或者线下去购物,甚至说,要购买的物品都有许多选择,选价格便宜的,选质量好的,选不用运费等等 那么在计算机语言中,我们要怎么实现现实中,这些选择呢? Go语言支 ...

最新文章

  1. 积神经网络的参数优化方法——调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少....
  2. .net html转义字符,asp.net转义字符
  3. 7个CSS你可能不知道的技巧
  4. 苹果或推出Windows版Safari浏览器;微软正“取下”Chromium版Edge浏览器的Beta标签;亚马逊申请新专利……...
  5. 分布式事务模型--TCC
  6. 软件测试学生管理系统课程设计,软件测试课程设计-ERP进销存管理系统(1)
  7. async与await详解
  8. matlab学习笔记杂项一
  9. PHP经常用到的方法,[PHP]经常用到的实用函数集合第1/2页
  10. vue使用ntko控件完成word上传、html上传
  11. astrolog32 java,astrolog32 占星软件
  12. 干货 | LoRaWAN 协议中文版,你要的pdf来了
  13. 关于 PoW 和 PoS
  14. 核心竞争力学习与思考
  15. C++贪心算法之最小新整数
  16. 课上——HTML 表格 学生成绩表
  17. 《PCL点云库学习VS2010(X64)》Part 34 旋转平移矩阵用法
  18. 虚假新闻检测,来自美团NLP团队方案
  19. 前端数据交互中JS中find,include方法的使用场景
  20. PCB中的微带线和带状线延时上的差别

热门文章

  1. GDC - 《幽灵行动:荒野》地形技术和工具(四)
  2. 一名优秀的HR需要具备哪些素质与能力?
  3. volatile适用场合
  4. 2021 Image Compression with Recurrent Neural Network and Generalized Divisive Normalization
  5. Django 商城购物车页面
  6. Pycharm超好用插件集合,编写代码更高效
  7. 东莞理工学院计算机学院论文,东莞理工学院毕业论文格式范文最新标准
  8. 硬盘数据恢复原理和方法
  9. 落地“旅游+”数字赋能:实现智慧旅游协同创新发展
  10. 空气过滤网行业专用术语