白盒测试方法

一.前言

定义:   白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

白盒测试的目的:   通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的方法:

A. 静态分析:

是一种不执行程序而进行测试的技术。静态分析的主要目的是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

B. 动态分析:

当软件系统在模拟或真实的环境中执行前、过程中和执行后,对其行为分析。它显示了一个系统在检查状态下是否正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

符号说明:

^ 代表: 逻辑运算符 && 或者 ||

T 代表: True

F 代表: False

A / B 代表: 条件表达式

二.测试方法

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。

日常使用方法\手段:

1.语句覆盖:每条语句至少执行一次。

2.判定覆盖:每个判定的每个分支至少执行一次。

3.条件覆盖:每个判定的每个条件应取到各种可能的值。

4.判定/条件/分支覆盖:同时满足判定覆盖条件覆盖。

5.条件组合覆盖:每个判定中各条件的每一种组合至少出现一次。

6.路径覆盖:使程序中每一条可能的路径至少执行一次。

三.语句覆盖

使程序中的每个可执行语句都能执行一次的测试用例

测试用例条件: ​ A ^ B = T

graph LR

A[引入]

A --> B{判断}

B -->|T| C[结果1]

B -->|F| D[结果2]

四.判定覆盖

对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况

测试用例条件: ​ A ^ B = T ​ A ^ B = F

graph LR

A[引入]

A --> B{判断}

B -->|T| C[结果1]

B -->|F| D[结果2]

五.条件覆盖

设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果

测试用例条件: ​ A=T​ A=F ​ B=T​ B=F

graph LR

A[ ]

A --> B{判断}

B -->|T| C[ ]

B -->|F| D[ ]

六.判定/条件/分支覆盖

设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。

测试用例条件: A ^ B = T A ^ B = F A=T A=F B=T B=F

graph LR

A[ ]

A --> B{判断}

B -->|T| C[ ]

B -->|F| D[ ]

七.条件组合覆盖

设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次

测试用例条件: A= T B= T A= T B= F A= F B= T A= F B= F

graph LR

A[ ]

A --> B{判断}

B -->|T| C[ ]

B -->|F| D[ ]

八.路径覆盖

设计测试用例时,覆盖程序中所有可能的执行路径

优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。

缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。

补充丢失逻辑图:

python白盒测试_白盒测试方法相关推荐

  1. python 白盒测试_白盒测试教程 - 颜丽的个人空间 - OSCHINA - 中文开源技术交流社区...

    总共贴了39节,后续还有很长,共122节,文章名为'白盒测试教程' 1.白盒测试概念 2.测试覆盖标准 3.逻辑驱动测试 4.基本路径测试 白盒测试概念 1.白盒测试也称结构测试或逻辑驱动测试,是一种 ...

  2. 深入到系统组件是否白盒测试_白盒测试

    白盒测试理论 为什么给做白盒测试? 这个问题比较复杂,我们可以先从一个比喻讲起. 假设有一台面包机, 从上面倒入面粉和水, 开动机器之后从下面出来的就是烤好的面包, 这个机器的功能比较单一,接口很清晰 ...

  3. python正则_正则化方法及Python实现

    正则化有助于克服过度拟合模型的问题.过度拟合是偏差和方差平衡的概念.如果过度拟合,机器学习模型将具有较低的准确性.当我们的机器学习模型试图从数据中学习更多属性时,就会添加来自训练数据的噪声.这里的噪声 ...

  4. python单稳态触发_使用 方法可以获取一个列表中最大元素的值。_学小易找答案...

    [填空题]若在列表的最后添加新元素,则可以直接使用列表的 方法. [填空题]将一个线程的 属性设置为True,则该线程为守护线程. [填空题]是在调用函数时函数名后面的一对小括号中给出的参数列表. [ ...

  5. python三重积分_蒙特卡罗方法。三重积分。Python。“+”的操作数父级不受支持...

    我尝试用蒙特卡罗方法近似三重积分∫∫∫∫xyzdV,其中S=[0,1]×[0,1]×0,1]. 我有这个代码:from numpy import * import time from scipy.in ...

  6. for循环软件测试,软件测试3.9白盒测试_循环测试

    <软件测试3.9白盒测试_循环测试>由会员分享,可在线阅读,更多相关<软件测试3.9白盒测试_循环测试(10页珍藏版)>请在人人文库网上搜索. 1.白盒测试,循环测试,循环测试 ...

  7. python计算时间差的方法_如何计算时间差,用Python算法的话

    这篇文章主要介绍了python计算时间差的方法,实例分析了Python时间操作的相关模块与技巧,需要的朋友可以参考下 本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: ...

  8. 白盒测试概述及其方法简介

    引言: 白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视.白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试.因为对于不同复 ...

  9. 白盒测试方法|白盒测试的六种方法比较分析

    白盒测试的六种方法比较分析 一.摘要 白盒测试是测试人员常用的一种测试方法,越来越受到测试工程师的重视.白盒测试并不是简单的按照代码测试用例而走,需要根据不同的测试需求,结合不同的测试对象,使用适合的 ...

最新文章

  1. 函数assert()详解
  2. MVCC(Multi-version Cocurrent Control)
  3. promise的应用和在VUE中使用axios发送AJAX请求服务器
  4. 如何在Hybris commerce里创建一个media对象
  5. php怎么实现商品评论功能,php购物车功能如何实现
  6. 物联网生态系统的安全与威胁
  7. Django的视图层
  8. 【github系列】github上传空目录
  9. 【Java从0到架构师】交错的日志系统、SpringBoot 集成日志框架
  10. hdu1181(变形课)
  11. JDK1.5英文版CHM文档下载地址
  12. 汽车仪表指示灯详细介绍
  13. 保持简单----纪念丹尼斯里奇(Dennis Ritchie) (zz.is2120.BG57IV3)
  14. Windows+Ubuntu双系统如何彻底删除Ubuntu操作系统
  15. win10 cmd切换目录
  16. 用html做龙卷风特效,利用HTML5实现Canvas龙卷风特效
  17. MISC总结——隐写术(一)
  18. Oracle开发之:窗口函数 (转) rows between unbounded preceding and current row
  19. 这些行业已经开始用数据挖掘了,我们的前途光明
  20. C站 APP 搜索工具使用体验与对比

热门文章

  1. [UWP]用画中画模式(CompactOverlay Mode)让用总在最前端显示
  2. php 将前端网页输出成unicdoe编码
  3. 【C语言】一元二次方程(求实根和虚根)
  4. aide入侵检测工具与crontab
  5. JavaScript范围介绍
  6. 父组件更新prop_如何在ReactJS中更新组件的prop —哦,是的,有可能
  7. myeclipse搭建SSH框架
  8. java 懒加载模式_JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载
  9. ubuntu下安装psycopg2报错
  10. 老司机教你 5 分钟读懂 Python 装饰器