您的位置:首页 > 其它

软件测试--白盒测试

2011-10-28 17:59 232 查看
一、名词解释:

1、白盒测试(也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。

n 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为:

Ø 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。

Ø 穷举路径测试不可能查出程序因为遗漏路径而出错。

Ø 穷举路径测试发现不了一些与数据相关的错误。

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

Ø 3、判定覆盖(通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值, 也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。

4、条件覆盖(设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。

Ø 5、判定/条件覆盖(设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。

——满足判定/条件覆盖的测试用例一定同时满足判定覆盖和条件覆盖。

Ø 6、组合覆盖(通过执行足够的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。

——满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和判定/条件覆盖。



Ø 7、路径覆盖(设计足够多的测试用例,要求覆盖程序中所有可能的路径。



二、简答题

基本路径测试方法包括哪些步骤?

n 路径测试就是从一个程序的入口开始,执行所经历的各个语句的完整过程。从广义的角度讲,任何有关路径分析的测试都可以被称为路径测试。

n 完成路径测试的理想情况是做到路径覆盖,但对于复杂性大的程序要做到所有路径覆盖(测试所有可执行路径)是不可能的。

n 在不能做到所有路径覆盖的前提下,如果某一程序的每一个独立路径都被测试过,那么可以认为程序中的每个语句都已经检验过了,即达到了语句覆盖。这种测试方法就是通常所说的基本路径测试方法。

n 基本路径测试方法是在控制流图的基础上,通过分析控制结构的环形复杂度,导出执行路径的基本集,再从该基本集设计测试用例。基本路径测试方法包括以下4个步骤:

(1)画出程序的控制流图。

(2)计算程序的环形复杂度,导出程序基本路径集中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。

(3)导出基本路径集,确定程序的独立路径。

(4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出。

三、测试实例

1、根据给出的程序段,完成以下要求:

(1)画出相应的控制流图。

(2)计算环形复杂度。

(3)给出相应的图矩阵。

(4)找出程序的独立路径集合。

(5) 设计测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。

void DoWork (int x,int y,int z)

{

1 int k=0,j=0;

2 if ( (x>3)&&(z<10) )

3 { k=x*y-1;

4 j=sqrt(k);

5 }

6 else

7 if ( (x==4)||(y>5) )

8 { j=x*y+10; }

9 j=j%3;

}

2、使用基本路径测试方法,为以下程序段设计测试用例。

void Sort ( int i, int j)

1 {

2 int x=0;

3 int y=0;

4 for(int i;i<50;i++)

5 {

6 If (j==0 )

7 {x=y+2;break;}

8 elseif(j>0)

9 If ( j==1 )

10 x=y+10;

11 else

12 x=y+20;

13 else

14 x=y+70;

15 }

16 }

详细的答案参考我的资源,在那里下载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: