码迷,mamicode.com
首页 > 其他好文 > 详细

白盒测试

时间:2015-04-19 19:10:59      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

基本概念:

白盒测试又称透明盒测试结构测试等,软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑盒测试)。在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。测试者了解待测试程序的内部结构、算法等信息,这是从程序设计者的角度对程序进行的测试。

应用范围:

白盒测试可以应用于单元测试集成测试和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。

测试目的:

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

测试特点:

依据软件设计说明书进行测试,对程序内部细节严密检验, 针对特定条件设计测试用例, 对软件的逻辑路径进行覆盖测试。

控制流覆盖准则:

语句覆盖准则;分支覆盖准则;谓词测试,包括:原子谓词覆盖准则、 分支-谓词覆盖准则、复合谓词覆盖准则;路径覆盖准则。

语句覆盖准则

是最简单的结构性测试方法之一,它要求测试中,程序中的每条语句都得到运行。即,控制流图中的所有语句都被运行的充分必要条件是,覆盖图中的所有节点。

测试数据集T称为语句覆盖充分的,当且仅当LT覆盖了GP中的所有节点。

缺点:测试用例可以覆盖所有节点,但是有一个分支没有覆盖,所以有一定问题。

分支覆盖准则

分支覆盖要求在软件测试中,每个分支都至少获得一次真/假取值的经历。

测试数据集T称为分支覆盖充分的,当且仅当LT覆盖了GP中的所有有向边。

分支覆盖的同时,还满足了语句覆盖。分支覆盖比语句覆盖强一些,分支覆盖

测试包含语句覆盖测试。

谓词测试

(1)原子谓词覆盖准则

要求在软件测试中,每个复合谓词所包含的每一个原子谓词都至少获得一次“真”值和一次“假”值。

(2)分支-谓词覆盖准则

要求在软件测试中,不仅每个复合谓词所包含的每个原子谓词都至少获得一次真/假。每个复合谓词本身也至少获得一次“真”/“假”

分支条件覆盖可以满足原子谓词的真/假和分支的真/假至少出现一次的条件,但是有可能不能全覆盖

(3)复合谓词覆盖准则

测试数据集T称为复合谓词覆盖充分的,如果任意一个分支,对该分支所包含的原子谓词的任意一个可行的真/假值组合,T中都存在一个测试数据使该组合谓词运行时,原子谓词的取值恰好为该真/假值组合。即每个复合谓词内的原子谓词的各种可能的组合都至少出现一次。

路径覆盖准则

测试数据集T称为路径覆盖充分的,当且仅当LT覆盖了GP中的所有完整路径。

 

数据流覆盖准则包括:定义覆盖测试准则;引用覆盖测试准则;定义-引用覆盖测试准则。

定义覆盖测试准则

测试数据集T对测试程序P满足定义覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义性出现,若该定义性出现能够可行地传递到该变量的某一个引用性出现,那么LT中存在一条路径A,它包含一条子路径A’,使得A’将该定义出现传递到某一引用性出现。

引用覆盖测试准则:

测试数据集T对测试程序P满足引用覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义n,以及该定义的每一个能够可行地传递到的引用n’,LT中都存在一条路径A,它包含一条子路径A’,使得A’将n传递到n’。

定义-引用覆盖测试准则:

测试数据集T对测试程序P满足定义-引用覆盖准则,如果对具有数据流信息的控制流图GP中的任意一条从定义传递到其引用的路径A,若A是无回路的或A是简单回路,那么LT中存在一条路径B,使得A是B的子路径。

测试方法:

有了测试环境 ,重要的是设计测试用例 ,基本路径、判断条件、数据划分、边界值分析是从不同角度设计测试用例的有效方法。

程序基本路径集:

程序的环路复杂性给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。

从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。

基本路径方法设计测试用例的过程:

从代码导出流图

确定流图的圈复杂度

确定独立路径的基本集

导出测试用例,确保基本路径集中的每一条 确保基本路径集中的每一条路径的执行。

白盒测试

标签:

原文地址:http://www.cnblogs.com/tjuyyb/p/4439534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!