白盒测试时根据被测程序的内部结构设计测试用例的一种测试方法。
程序的结构形式是白盒测试的主要依据,对程序结构的分析包括:
<1> 控制流分析
<2> 数据流分析
<3> 信息流分析
控制流分析:
通过控制流图矩阵来标识程序的控制流程图,分析程序的控制流是为了使编写的程序有好的结构,对于程序结构提出以下四点基本要求:
·转向并不存在的标号
·没有用的语句标号
·从程序入口进入后无法达到的语句
·不能达到停机语句的语句
目前主要是通过编译器和程序分析工具来实现程序控制流分析。
数据流分析:
数据流分析是分析程序中未定义变量的使用和未曾使用的变量定义。
目前通过比哪一期或程序分析工具通过数据流分析。
利用数据流分析的结果可以进行代码编译优化。
信息流分析:
目前信息流分析主要用在验证程序变量间信息的传输遵循保密要求。
信息流分析主要分析输出值跟输入值之间的影响关系,也就是说,看看哪个输入值会间接或直接的影响到输出结果。
程序的信息流关系,为软件开发和确认提供了十分有益的工具。
逻辑覆盖
<1> 语句覆盖
<2> 判定覆盖
<3> 条件覆盖
<4> 判定-条件覆盖
<5> 路径覆盖
语句覆盖:
设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。
判定覆盖:
设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足,又称分支覆盖。
条件覆盖:
设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。
判定-条件覆盖:
设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。
从表面上看,它测试了所有条件的取值,但是实际上某些条件掩盖了另一些条件。
路径覆盖:
设计足够多测试用例,要求覆盖程序中所有可能的路径。