白盒测试实验报告.docx

上传人:b****1 文档编号:960509 上传时间:2022-10-14 格式:DOCX 页数:14 大小:295.60KB
下载 相关 举报
白盒测试实验报告.docx_第1页
第1页 / 共14页
白盒测试实验报告.docx_第2页
第2页 / 共14页
白盒测试实验报告.docx_第3页
第3页 / 共14页
白盒测试实验报告.docx_第4页
第4页 / 共14页
白盒测试实验报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

白盒测试实验报告.docx

《白盒测试实验报告.docx》由会员分享,可在线阅读,更多相关《白盒测试实验报告.docx(14页珍藏版)》请在冰豆网上搜索。

白盒测试实验报告.docx

白盒测试实验报告

白盒测试实验报告

一实验内容

1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;

2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖进行测试。

3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力;

4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;

5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试报告等)

二实验原理

白盒测试原理:

已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。

它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。

这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。

其又称为结构测试。

对于该实验的例子给出其流程图如下图所示,我们来了解白盒测试的基本技术和方法。

语句覆盖是指选择足够的测试用例,使得程序中每个语句至少执行一次。

如上例选择测试用例x=1,y=1和x=1,y=-1可覆盖所有语句。

判定覆盖是指选择足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。

选择测试用例x=1,y=1和x=1,y=-1可覆盖所有判定。

条件覆盖是指选择语句多数的测试用例,使得程序判定中的每个条件能获得各种不同的结果。

选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有条件。

判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。

即满足条件覆盖,又满足判定覆盖。

选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有判定/条件。

条件组合覆盖是指选择足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次(以判定为单位找条件组合)。

注:

a,条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。

b,不同的判断语句内的条件取值之间无需组合。

c,对于但条件的判断语句,只需要满足自己的所有取值即可。

选择测试用例x=1,y=1;x=1,y=-1,x=-1,y=1和x=-1,y=-1可覆盖所有条件组合。

路径覆盖是分析软件过程流的通用工具,有助分离逻辑路径,进行逻辑覆盖的测试,所用的流程图就是讨论软件结构复杂度时所用的流程图。

三实验方法

1、语句覆盖

测试用例输入

输出magic

判定M的取值

判定N的取值

覆盖路径

x=1,y=1

12

T

F

abef

x=1,y=-1

0

F

T

acdf

2、判定覆盖

测试用例输入

输出magic

判定M的取值

判定N的取值

覆盖路径

x=1,y=1

12

T

F

abef

x=1,y=-1

0

F

T

acdf

3、条件覆盖

测试用例输入

输出magic

判定M的取值

判定N的取值

覆盖路径

x=1,y=1

12

T

F

abef

x=-1,y=-1

0

T

T

acdf

4、判定/条件覆盖

测试用例输入

输出magic

判定M的取值

判定N的取值

覆盖路径

x=1,y=1

12

T

F

abef

x=-1,y=-1

0

T

T

acdf

5、条件组合覆盖

测试用例输入

输出magic

判定M的取值

判定N的取值

覆盖路径

x=1,y=1

12

T

F

abef

x=1,y=-1

0

T

T

acdf

x=-1,y=1

0

T

T

acdf

x=-1,y=-1

0

T

T

acdf

6、路径覆盖

测试用例输入

输出magic

判定M的取值

判定N的取值

覆盖路径

x=1,y=1

12

T

F

abef

x=1,y=-1

0

T

T

acdf

x=12,y=-1

1

T

F

acef

本例覆盖路径abdf不存在

四实验结果

根据上面设计的测试案例,编写程序后,白盒测试结果如下所示:

7、语句覆盖

x=1,y=1

x=1,y=-1

8、判定覆盖

x=1,y=1

x=1,y=-1

9、条件覆盖

x=1,y=1

x=-1,y=-1

10、判定/条件覆盖

x=1,y=1

x=-1,y=-1

11、条件组合覆盖

x=1,y=1

x=1,y=-1

x=-1,y=1

x=-1,y=-1

12、路径覆盖

x=1,y=1

x=1,y=-1

x=12,y=-1

本例覆盖路径abdf不存在

五实验分析

对于白盒测试,在设计测试用例时首先对程序进行分析,从程序的内部结构出发设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计等。

设计测试用例时应用了白盒测试中的多种测试方法,其中包括:

测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。

白盒测试中,对代码的测试比较透彻,但不容易生成测试用例,而且测试工作量很大。

因为白盒测试是基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要求。

同时,对于白盒测试的案例设计,要注意以下几点

(1)保证每个模块中的所有独立路径至少被执行一次;

(2)对所有的逻辑值均需要测试真、假两个分支;(3)在上下边界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。

附件:

(测试实现源程序)

#include

/*static*/intsign=0;

staticcharm='T',n='T';

//intlogicExample(int,int);

intlogicExample(intx,inty)

{

intmagic=0;

if(x>0&&y>0)

{

magic=x+y+10;sign++;

}

else

{

magic=x+y-10;m='F';

}

if(magic<0)

{

magic=0;sign+=2;

}

elsen='F';

returnmagic;

}

main(){

intx,y;

//staticintsign=0;

//staticcharm='T',n='T',

charp[4][5]={"acef","abef","acdf","abdf"};

cout<<"---------------"<<'\n';

cout<<"请输入x:

";

cin>>x;

cout<<"请输入y:

";

cin>>y;

cout<<"magic已知:

0"<

cout<<"---------------"<<'\n';

cout<<"测试结果分别是:

"<<'\n';

cout<<"---------------"<<'\n';

cout<<"x的值y的值logic的值判定M判定N覆盖路径"<

cout<<"---------------------------------------------------------"<<'\n';

cout<

cout<<""<

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1