1 / 27
文档名称:

实验二:白盒测试.ppt

格式:ppt   大小:388KB   页数:27页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验二:白盒测试.ppt

上传人:分享精品 2018/3/6 文件大小:388 KB

下载得到文件列表

实验二:白盒测试.ppt

文档介绍

文档介绍:白盒测试(White-box Testing)
中科大软件学院
白盒测试的主要目的
保证一个模块中的所有独立路径至少被执行一次;
对所有的逻辑值均需要测试真、假两个分支;
在上下边界及可操作范围内运行所有循环;
检查内部数据结构以确保其有效性。
基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。
应用白盒法,必须有程序的规格说明以及程序清单。
如上流程图,其中包括了一个执行达20次的循环。那么它所包含的不同执行路径数高达520(=1013)条,若要对它进行穷举测试,覆盖所有的路径。假使测试程序对每一条路径进行测试需要1毫秒,同样假定一天工作24小时,一年工作365 天, 那么要想把如图所示的小程序的所有路径测试完,则需要3170年。
白盒测试
白盒测试
白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
其中运用最为广泛的是基本路径测试法。
逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖,发现错误的能力呈由弱至强的变化。
白盒测试
语句覆盖:是一个较弱的测试标准,含义为:选择足够多的测试用例,使得程序中每个语句至少执行一次;
判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少通过一次。
条件覆盖:执行足够的测试用例,使程序中的每个判断的每个条件的每个可能取值至少执行一次;
判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到的各种可能的值,并使每个分支取到各种可能的结果;
条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次;
基本路径测试方法:路径测试就是设计足够多的测试用例,覆盖被测试对象中的所有可能路径。
逻辑覆盖法
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.
例如选择输入数据为:
A=2,B=0,X=3
就可达到“语句覆盖”标准。
X
Y
路径
1
50
50
OBDE
2
90
70
OBCE
缺点:由于这种测试方法仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中如去掉了语句1——>T,那么就少了一条测试路径。在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。
逻辑覆盖法
判定覆盖
2、判定覆盖
A=3,B=0,X=1 (沿路径acd执行)  
A=2,B=1,X=3 (沿路径abe执行)
缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。
逻辑覆盖法
3、条件覆盖
程序有四个条件:
         A>1、 B=0、A=2、X>1
为了达到“条件覆盖”标准,需要执行足够的测试用例使得在a点有:
         A>1、A≤1、B=0、B≠0
等各种结果出现,以及在b点有:
       A=2、A≠2、X>1、X≤1
等各种结果出现。
现在只需设计以下两个测试用例就可满足这一标准:
① A=2,B=0,X=4  (沿路径ace执行);
② A=1,B=1,X=1   (沿路径abd执行)。
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.
逻辑覆盖法
条件覆盖
A=2,B=0,X=4  (沿路径ace执行)
A=1,B=1,X=1  (沿路径abd执行)
缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。