软件测试--白盒测试
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 }
详细的答案参考我的资源,在那里下载!
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 }
详细的答案参考我的资源,在那里下载!
相关文章推荐
- 软件测试基础知识整理三----白盒测试
- 1.2.2 软件测试的经济学 白盒测试
- 软件测试基本方法(二)之白盒测试
- 软件测试技术---白盒测试
- 软件测试——白盒测试
- 软件测试--静态白盒测试
- 软件测试的艺术(1)黑盒测试与白盒测试
- 【软件测试】软件缺陷粗浅认识及白盒测试举例
- 软件测试学习随笔(6) 白盒测试
- 【软件测试】白盒测试
- 软件测试学习5-静态白盒测试
- 软件测试--黑盒测试和白盒测试
- 【软件测试】白盒测试
- 软件测试第二课——代码检查、黑盒白盒测试(1)
- 软件测试之白盒测试
- 怎样成为优秀 软件测试人员
- 软件测试(01)截图来自慕课网学习过程,侵删
- 设计软件测试用例的思考
- 【软件性能测试-LoadRunner实战技能 3】== LR所使用的脚本语言初解
- 软件测试,想说爱你不容易(from 51testing)