首页 > 代码库 > 白盒测试
白盒测试
白盒测试方法:
1 程序结构分析:
程序的结构形式是白盒测试的主要依据。程序结构分析包括:
1、控制流分析:
对于程序结构提出以下4点基本要求,这些要求是写出的程序不应包含:
① 转向并不存在的标号;
② 没有用的语句标号;
③ 从程序入口进入后无法达到的语句;
目前主要是通过编译器和程序分析工具来实现程序控制流分析。
2、数据流分析:
3、信息流分析 :
2 逻辑覆盖:
1、语句覆盖:
为方便讨论,我们将结合一程序段加以说明各种逻辑覆盖则:
IF (( A > 1) AND ( B = 0 ))THEN
X = X / A
IF (( A = 2) OR ( X > 1 ) THEN
X = X + 1
其中“AND”和“OR”是两个逻辑运算符。右图给出了它的流程图。a、b、c、d和e是控制流上的若干程序点。
该程序共有4条语句,其中2条条件判断语句,2条赋值语句。
语句覆盖的含意是,在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。
对于上述程序段,选用的测试用例是:A=2,B=0,X=3 case1
则程序按路径a c e执行。这样该程序段的4个语句均得到执行,从而作到了语句覆盖。
2、判定覆盖:
按判定覆盖准则进行测试是指,设计若干测试用例,运行被侧程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。
判定覆盖又称为分支覆盖。
仍以上述程序段为例,若选用的两组测试用例是: A=2,B=0,X=3; A=1,B=0,X=1
则可分别执行路径ace和abd,从而使两个判断的4个分支c、e和b、d分别得到覆盖。
3、条件覆盖:
条件覆盖是指,设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。
4、判定-条件覆盖:
判定-条件覆盖要求设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。
5、路径覆盖:
按路径覆盖要求进行测试是指,设计足够多测试用例,要求覆盖程序中所有可能的路径
6、测试覆盖准则:
1、FOSTER的ESTCA覆盖准则
Foster 通过大量的实验确定了程序中谓词最容易出错的部分,得出了一套错误敏感测试用例分析ESTCA (Error Sensitive Test Cases Analysis)规则。事实上,规则十分简单:
[规则1] 对于A rel B(rel可以是<, =和>)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A<B, A=B和A>B的情况分别出现一次。
[规则2] 对于A rel1 C(rel1可以是>或是<,A是变量,C是常量)型的分支谓词,当rel1为<时,应适当地选择A的值,使:
A = C - M
(M是距C最小的容器容许正数,若A和C均为整型时,M = 1)。同样,当rel1为>时,应适当地选择A,使:
A = C + M
[规则3] 对外部输入变量赋值,使其在每一测试用例中均有不同的值与符号,并与同一组测试用例中其它变量的值与符合不一致。
3 程序插装:
4 其他白盒测试方法简介:
1、域测试:
1、分支问题
2、二义性问题
3、大程序问题
3、Z路径覆盖
4、程序变异
3.Z路径覆盖:
4.程序变异:
白盒测试