白盒测试学习

白盒测试概述

一、什么是白盒测试?

白盒测试 又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件

白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

"白盒"法是穷举路径测试。

在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

贯穿程序的独立路径数是天文数字。

二、白盒测试的目的

通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;

在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;

在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

三、白盒测试的目标

采用白盒测试必须遵循以下几条原则,才能达到测试的目标:

1)保证一个模块中的所有独立路径至少被测试一次。

2)所有逻辑值均需测试真 (true) 和假 (false) 两种情况。

3)检查程序的内部数据结构,保证其结构的有效性。

4)在上下边界及可操作范围内运行所有循环。

四、白盒测试方法

1)语句覆盖

所谓语句覆盖是指设计若干个测试用例,使程序中的每个可执行语句至少被执行一次。

2)判定覆盖

所谓判定覆盖是指设计若干个测试用例,使得程序中的每个判定至少得到一次真值和假值,

即判断中的真假分支至少执行一次。判定覆盖又称为分支覆盖。

3)条件覆盖

所为条件覆盖是指设计若干个测试用例,使得程序中每个判断中每个条件的可能值至少得到一次。

因此,条件覆盖与判定覆盖相比增加了对符合判定情况的测试以及测试路径。

4)判定/条件覆盖

所谓判定/条件覆盖是指涉及若干个测试用例,使得判断中每个条件的所有取值至少出现一次,

并且每个判断的所有判断结果也至少出现一次。

5)组合覆盖

所谓组合覆盖是指设计若干个测试用例,使得每个判定条件的各种情况至少出现一次。

6)路径覆盖

所谓路径覆盖是指设计若干个测试用例覆盖程序中所有的路径。

举例:

if A and B then Action1

if C or D then Action2

1)语句覆盖最弱,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。

2)分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。上例需要设计测试用例使其分别满足下列条件即可(1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。

3)条件覆盖:要使得每个判断中的每个条件的可能取值至少满足一次。上例中第一个判断应考虑到A=true,A=false,B=true,B=false第二个判断应考虑到C=true,C=false,D=true,D=false,所以上例中可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false。

4) 路径覆盖:要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。

时间: 2024-11-04 23:55:14

白盒测试学习的相关文章

[白盒测试学习] 从逻辑覆盖实例学起

1. 什么是白盒测试 白盒测试也称结构测试.逻辑驱动或基于程序的测试,是一种测试用例设计方法. 一般用于分析程序的内部结构. 针对特定的条件和循环设计测试用例,对程序的逻辑路径进行测试. 用这种发方法进行程序设计时,测试者可以看到被测程序,并分析其内部结构,白盒测试要求对被测程序的结构特性做到一定程度的覆盖. 从这个角度上说,白盒测试也是基于覆盖的测试技术. 2. 白盒测试方法概述 白盒测试通常分为静态和动态两种类型,包含很多常用的方法. 静态分析: 按照一定步骤直接见车源代码或代码的测试方法.

实践作业3:白盒测试----学习Junit框架DAY10.

JUnit - 测试框架 首先应该了解什么是 Junit 测试框架? JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量.JUnit 测试框架能够轻松完成以下任意两种结合: Eclipse 集成开发环境 Ant 打包工具 Maven 项目构建管理 特性 JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 测试工具 测试工具是一整套固定的工具用于基线测试.测试工具的目的是为了确保测试能够在共享且固定的环境中运行,

软件测试第六周学习笔记之“Win8 APP应用程序的白盒测试”

这周的学习笔记我想写点自己关于实验中碰到的问题和感想. 因为这次做的是白盒测试,所以我决定去测试一下上回测试的app的功能函数. 这次我用的是单元测试项目来做的白盒测试: 创建单元测试的步骤: 1.点击 “文件”->“添加”->“新建项目” 2.选择 windows应用程序-> 单元测试项目 3.在解决方案资源管理器中为单元测试项目下的引用上右击选择添加引用 4.选择解决方案下的项目中的用来测试的win8应用 接下来是单元测试的代码部分的编写了: 我要测试的是该项目中的一个字符串转化编码

白盒测试的学习之路----(一)概述

白盒测试对于一般的测试人员来说,就是一道很难过去的坎,问题产生原因之一:是对程序代码本身的恐惧:问题产生原因之二:是测试人员的平均水准还没到这个地步,所以大家都望而止步.15年整整的一年,基于对java web 代码还有一些接口自动化项目的学习和研究,又学了c++的语法,我感觉自己略有了些许基础,应该在16时这之上再多学习,多总结下,故此开始在网上大量的搜索资料来学习白盒测试,部分的资料和教程还是给了我很大的启示,再结合自己之前项目编程的经验,就把白盒测试和接口测试,自动化测试做了个小整合,参考

白盒测试的学习之路----(四)搭建测试框架TestNG测试

TestNG是一个开源自动化测试框架; TestNG是类似于JUnit,但它不是一个JUnit扩展.它的灵感来源于JUnit.它的目的是优于JUnit的,尤其是当测试集成的类. TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试. 因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中.一般开发使用的是JUnit做单元测试,而测试一般都是勇士TestNG. 首先,就是下载相关jar包(te

软件测试学习随笔(6) 白盒测试

所谓白盒测试,就相当于对一个透明的盒子进行测试,以编程语言的角度来测试程序,测试者在了解测试程序的内部结构.算法等的情况下,输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点.也就是说,白盒测试是程序设计者的角度对程序进行的测试. 软件人员使用白盒测试方法,主要想对程序模块进行如下的检查: 对程序模块的所有独立的执行路径 所有独立的执行路径至少测试一 次:  对所有的逻辑判定所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次都至少测试一次:  在循环的边界和运行

白盒测试的学习之路----(三)优化代码

需求分析是后续工作的基石,如果分析思路有问题,后续工作可能就会走向不正确的方向,比如:代码重用性差.难于测试.难于扩展和难于维护等.反而,如果需求分析做的好,对设计.开发和测试来说,都可能是很大的帮助.程序设计对于软件的质量和软件实施过程的难易程度起着至关重要的作用.好的设计,即使聘用没什么经验的开发人员都很容易产生出高质量的代码出来:而差的设计,即使是经验很丰富的开发人员也很容易产生缺陷,特别是可重用性.可测试性.可维护性.可扩展性等方面的缺陷.  之前编写的代码比较粗糙,而且全部在main函

白盒测试的学习之路----(二)需求说明,编程

三角形的问题在很多软件测试的书籍中都出现过,问题虽小,五脏俱全,是个很不错的软件测试的教学例子.本文借助这个例子结合教学经验,从更高的视角来探讨需求分析.软件设计.软件开发与软件测试之间的关系与作用. 题目:根据下面给出的三角形的需求完成程序并完成测试: 一.输入条件: 1. 条件1:a+b>c 2. 条件2:a+c>b 3. 条件3:b+c>a 4. 条件4:0<a<200 5. 条件5:0<b<200 6. 条件6:0<c<200 7. 条件7:a

实验三学习简单的白盒测试

第一题 package cn.wu.com; import java.util.Scanner; public class GCD{ public static int fun1(int a1,int b1){ int c; c=a1%b1; while (c>0) {a1=b1; b1=c; c=a1%b1; } return b1; } public static void main(String[] args) { int a,b,temp; int m; Scanner in=new S