一.概述

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

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

白盒测试的方法:

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白盒测试_白盒测试方法

    白盒测试方法 一.前言 定义: 白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及 ...

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

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

  3. Python ljust()方法

    描述 Python ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串.如果指定的长度小于原字符串的长度则返回原字符串. 语法 ljust()方法语法: str.ljust ...

  4. Python join()方法

    描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str.join(sequence).join(sequence) 参数 s ...

  5. Python maketrans() 方法

    描述 Python maketrans() 方法用于给 translate() 方法创建字符映射转换表. 可以只接受一个参数,此时这个参数是个字典类型(暂不研究这种情况). 对于接受两个参数的最简单的 ...

  6. 白盒测试工具_别再头疼工作效率低!这些超实用的黑盒、白盒测试方法你都用上了吗?...

    在软件测试工作中,为充分利用现有的时间和资源条件,提高测试效率和测试充分性,当前有多种方法辅助测试人员完成测试工作,推进项目进度,其中最普遍的莫过于白盒测试和黑盒测试,白盒测试和黑盒测试的概念和常用方 ...

  7. python count()方法

    Python count() 方法 | 菜鸟教程 可以统计一个字符串里含有子字符串的个数  频次

  8. Python rstrip()方法 删除 string 字符串末尾的指定字符(默认为空格).

    Python rstrip()方法  Python 字符串 描述 Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格). 语法 rstrip()方法语法: str.r ...

  9. vscode使用教程python-如何在VSCode上轻松舒适的配置Python的方法步骤

    前言 之前被学长推荐使用了VSCode,后惊叹了VSCode的强大,尤其是他的配置,比之前使用sublime方便多了,刚好实验室也来了一批新的学弟学妹,来仔细的逐步的讲解一些,在自己的电脑上轻松的配置 ...

  10. 自学python方法-总算懂得快速学习python的方法

    随着Python的进一步发展,越来越多的现成的Python的机器学习的算法已经发布出来.为了可以更好地运用这些机器学习的算法,我们有必要对Python有个初步的了解.以下是小编为你整理的快速学习pyt ...

最新文章

  1. 史上最强:numpy实现全部机器学习算法
  2. 如何查找主机的型号、操作系统安装时间、硬盘序列号和设备序列号
  3. oracle 用户 多个表空间
  4. css 伪类 disabled,css3 :enabled与:disabled伪类选择器(示例代码)
  5. java 新建double对象_java-如何在BlueJ“创建对象”对话框中输入...
  6. kaldi语音识别实战pdf_语音识别相关工具和资料分享
  7. java实现闹钟功能_AlarmManager类的应用(实现闹钟功能)
  8. 管理用户和PROFILE——用户方案和profile
  9. 39.django的ORM模型
  10. 设计模式 代理模式(Proxy Pattern)
  11. python 列表切片学习
  12. centos7 Samba服务安装和配置
  13. 计算机无法关闭开机密码,电脑开机密码怎么取消
  14. 拼多多狂砸百亿补贴的iphone是真的吗?
  15. android 自动测光,Android Camera1中的对焦与测光
  16. 高斯公式积分matlab,三用MATLAB实现定积分计算.PPT
  17. xHiveAI-A311D:AI开发套件
  18. rust纯黑_你可能不知道:黑波斯的黑色毛发其实有6种不同的类型
  19. 梅森素数、猜年龄、啤酒饮料、武功秘籍、调和级数、李白打酒、猜字母、扩散、三升序列、寻找2020
  20. CocosCreater 教程(中)

热门文章

  1. 需要在计算机上安装msxml版本 6.0,win10安装不了office 2010提示“MSXML版本6.10.1129.0”怎么办...
  2. uboot移植——命令体系
  3. 红米AC2100刷固件心得
  4. 视频教程-Python实现自己的分布式区块链视频教程-区块链
  5. html5兼容QQ浏览器,【QQ浏览器5.1】发布 HTML5兼容性测试
  6. JLINK 驱动 V7.00a 更新导致JLINK V9无法使用问题解决
  7. 百战学堂python教学文档_尚学堂百战程序员:python对文件的操作
  8. Mac环境下安装JDK
  9. STM32新手入门教程
  10. 【新增esp8266设备订阅命令主题、响应平台命令、命令处理】esp8266接入华为云物联网平台(IOTDA)2.0