总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’

1、白盒测试概念

2、测试覆盖标准

3、逻辑驱动测试

4、基本路径测试

白盒测试概念

1、白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。(测试用例由测试输入数据以及与之对应的输出结果组成。  测试用例设计的好坏直接决定了测试的效果和结果。所以说在软件测试活动中最关键的步骤就是设计有效的测试用例。)

2、白盒测试使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。

白盒测试的主要目的:

1、保证一个模块中的所有独立路径至少被执行一次;

2、对所有的逻辑值均需要测试真、假两个分支;

3、在上下边界及可操作范围内运行所有循环;

4、检查内部数据结构以确保其有效性。

测试覆盖标准

1、白盒法特点:以程序的内部逻辑为基础设计测试用例,所以又称为逻辑覆盖法。应用白盒法时,手头必须有程序的规格说明以及程序清单。

白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。最彻底的白盒法是覆盖程序中的每一条路径,但是由于程序中一般含有循环,所以路径的数目极大,要执行每一条路径是不可能的,只能希望覆盖的程度尽可能高些。

测试覆盖标准

测试覆盖标准

1、上页小程序的流程图,其中包括了一个执行达20次的循环。那么它所包含的不同执行路径数高达520(=1013)条,若要对它进行穷举测试,覆盖所有的路径。假使测试程序对每一条路径进行测试需要1毫秒,同样假定一天工作24小时,一年工作365 天, 那么要想把如图所示的小程序的所有路径测试完,则需要3170年。

测试覆盖标准

一、为了衡量测试的覆盖程度,需要建立一些标准,目前常用的一些覆盖标准从低到高分别是:

1、语句覆盖:是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

它是最弱的逻辑覆盖,效果有限,必须与其它方法交互使用。

2、判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次。

判定覆盖只比语句覆盖稍强一些,但实际效果表明,只是判定覆盖,还不能保证一定能查出在判断的条件中存在的错误。因此,还需要更强的逻辑覆盖准则去检验判断内部条件。

3、条件覆盖:执行足够的测试用例,使程序中每个判断的每个条件的每个可能取值至少执行一次;

条件覆盖深入到判定中的每个条件,但可能不能满足判定覆盖的要求。

测试覆盖标准

1、判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。

判定/条件覆盖有缺陷。从表面上来看,它测试了所有条件的取值。但是事实并非如此。往往某些条件掩盖了另一些条件。会遗漏某些条件取值错误的情况。为彻底地检查所有条件的取值,需要将判定语句中给出的复合条件表达式进行分解,形成由多个基本判定嵌套的流程图。这样就可以有效地检查所有的条件是否正确了。

2、条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

这是一种相当强的覆盖准则,可以有效地检查各种可能的条件取值的组合是否正确。它不但可覆盖所有条件的可能取值的组合,还可覆盖所有判断的可取分支,但可能有的路径会遗漏掉。测试还不完全。

白盒测试的主要方法:

一、逻辑驱动测试

1、语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次;

2、判定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次;

3、条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次;

4、判定/条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的所有可能取值至少执行一次,并且每个可能的判断结果也至少执行一次,换句话说,即是要求各个判断的所有可能的条件取值组合至少执行一次;

5、条件组合覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的所有可能的条件取值组合至少执行一次;

二、基本路径测试

设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径。这是最强的覆盖准则。但在路径数目很大时,真正做到完全覆盖是很困难的,必须把覆盖路径数目压缩到一定限度。

语句覆盖

o语句覆盖”是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

n如,例1:

PROCEDURE  M(VAR A,B,X:REAL);

BEGIN

IF (A>1) AND (B=0)  THEN X:=X/A;

IF (A=2) OR (X>1)   THEN X:=X+1;

END.

总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’

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

  1. 关联规则可视化python语言_关联规则可视化 - 猪猪daxia的个人空间 - OSCHINA - 中文开源技术交流社区...

    关联规则挖掘是一种流行的数据挖掘方法,在R语言中为扩展包arules.然而,挖掘关联规则往往导致非常多的规则,使分析师需要通过查询所有的规则才能发现有趣的规则.通过手动筛选大量的规则集是费时费力.在本 ...

  2. python羊车门问题_羊车门问题 - osc_wq8j2a9a的个人空间 - OSCHINA - 中文开源技术交流社区...

    题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...

  3. python遗传算法最短路径问题有几种类型_遗传算法求最短路径 - osc_tn8uhjgi的个人空间 - OSCHINA - 中文开源技术交流社区...

    实例描述 配送中心数为 $1$,客户数 $k$为 $8$,车辆总数 $m$为 $2$:车辆载重皆为 $8$ 吨:各客户点需求为 $g(i = 1, 2, ... , 8)$(单位为吨),已知客户点与配 ...

  4. python获取中文字体点阵坐标_点阵汉字显示 - freecamel的个人空间 - OSCHINA - 中文开源技术交流社区...

    目录: DOS下的点阵汉字 汉字的内码 汉字字模 汉字库文件 打印字库文件和HZK12 main() { unsigned char *s,*e="ABcd",*c="你 ...

  5. python设计模式理解_如何理解设计模式 - PythonJsGo的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.设计模式是什么? 设计模式是软件设计中常见问题的典型解决方案. 它们就像能根据需求进行调整的预制蓝图,可用于解决代码中反复出现的设计问题.设计模式与方法或库的使用方式不同, 你很难直接在自己的程序 ...

  6. python 状态机第三方库_Python 状态机 - osc_8g11urw7的个人空间 - OSCHINA - 中文开源技术交流社区...

    class StateMachine: def __init__(self): self.handlers = {} # 状态转移函数字典 self.startState = None # 初始状态 ...

  7. python剪切文件_python剪切文件 - osc_42713235的个人空间 - OSCHINA - 中文开源技术交流社区...

    心血来潮,手机上导出的图片全部按日期放在不同文件夹,很是麻烦,想放在一起方便浏览,手动操作费时费力,想到bat命令,不是很熟,看到python欣喜不已,很是方便 递归遍历文件,剪切出来,删除空文件夹 ...

  8. php面试题 优信二手车_分布式定时任务对比 - sharedCode的个人空间 - OSCHINA - 中文开源技术交流社区...

    分布式定时任务 1. 什么是分布式定时任务 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式.叫做分布式定时任务. 2. 常见开源方案 elastic ...

  9. python作业大全_Python作业汇总 - osc_p8sbsl3n的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. info = 'abc' info[2] = 'd' 结果是什么,为什么会报错呢? info[2]已赋值,不能再次赋值."str"对象不支持项目分配 2. 如果要把上面的字符 ...

最新文章

  1. 微信小程序中的tabBar设置
  2. 如何开启需要的垃圾收集器
  3. 一维傅里叶变换后的复数怎样理解?
  4. linux ftp用户指定多个目录,linux ftp服务器下用户限制目录的方法
  5. Java生产环境下性能监控与调优详解 第6章 Nginx性能监控与调优
  6. lisp如何调用linux头文件,Lisp之 程序的交互执行和非交互执行
  7. 在html显示数据库的信息,从数据库中提取信息并将其显示在HTML div
  8. IV.Indexes(索引)
  9. One method of fixing this is to repeatedly uninstall numpy until none is found, then reinstall this
  10. JAVA8内存最多设置多少,堆内存居高不下,JDK8自适应作怪
  11. oa系统服务器热备份,如何做好OA系统的日常数据备份
  12. php hprose,基于 hprose/hprose-php开发的Laravel扩展:laravel-hprosed的介绍
  13. Brocade switch upgrade firmware
  14. 美元符号在什么计算机语言,美元符号是什么?怎么打?
  15. 论文写作-如何设置页眉奇偶页显示不同
  16. 外星人17r4原版系统_外星人17r4重装系统
  17. 18年华为没有1项原创发明
  18. 【统计学】参数估计、点估计、区间估计、置信区间
  19. 计算机网络杨庚第一章答案,《计算机通信与网络》习题答案
  20. SEU-2020-卓越大赛面试

热门文章

  1. url 特殊字符 传递参数解决方法
  2. 华软计算机网络技术,[计算机硬件及网络]计算机网络技术专业自评报告华软.doc...
  3. 便携式不锈钢管道焊接机器人_304不锈钢管居然可以发黑?
  4. 【TypeScript系列教程06】基础类型
  5. Vue过渡 动画混入
  6. 如何使用window.btoa base64对接口数组进行加密处理
  7. 前端面试题之http/HTML/浏览器(二)
  8. 前端面试题之http/HTML/浏览器(一)
  9. 某大厂JVM常见面试题(二)吐血整理
  10. linux运行python脚本语句,如何在Linux下运行Python脚本