采用白盒测试方法对下图进行测试,设计了4个测试用例:①(x=0,y=3),②(x=1,y=2),③(x=-1,y=2),④(x=3,y=1)。至少需要测试用例①②才能完成( )覆盖,至少需要测试用例①②③或①②④才能完成(请回答此空)覆盖。

题目
采用白盒测试方法对下图进行测试,设计了4个测试用例:①(x=0,y=3),②(x=1,y=2),③(x=-1,y=2),④(x=3,y=1)。至少需要测试用例①②才能完成( )覆盖,至少需要测试用例①②③或①②④才能完成(请回答此空)覆盖。

A.语
B.条件
C.判定/条件
D.路径
参考答案和解析
答案:D
解析:
语句覆盖要求被测程序中的每一条语句至少执行一次,这种覆盖对程序执行逻辑的覆盖很低。条件覆盖要求每一判定语句中每个逻辑条件的各种可能的值至少满足一次。判定/条件覆盖要求判定中每个条件的所有可能取值(真/假)至少出现一次,并使得每个判定本身的判定结果(真/假)也至少出现一次。路径覆盖则要求覆盖被测程序中所有可能的路径。通过测试用例①(x=0,y=3),能执行到语句A,同时覆盖左侧路径;通过测试用例②(x=1,y=2),能执行到语句B,同时覆盖右侧路径;通过测试用例③(x=-1,y=2)或④(x=3,y=1),什么也不执行,覆盖中间路径。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【问题5】 【C代码3】中x,y是两个已定义的整型变量。对该程序段进行覆盖测试时,必须适当地选取测试用例。如表5-10所示给出了可供选择的4组测试用例。若要实现语句覆盖,则至少应采用的测试用例是(2);若要实现条件覆盖,则至少应采用的测试用例是(3);若要实现路径覆盖,则至少应采用的测试用例是(4)或(5)。 【C代码3】 int a:=0; if (x==O && y>2) a:=1 /*A语句*/ else { if (x<1 || y==1) else a:=2 /*B语句*/ }

【(2)~(5)空缺处供选择的答案】 A.Ⅰ和Ⅱ组 B.Ⅱ和Ⅲ组

C.Ⅲ和Ⅳ组 D.Ⅰ和Ⅳ组

E.Ⅰ、Ⅱ和Ⅲ组 F.Ⅱ、Ⅲ和Ⅳ组G.Ⅰ、Ⅲ和Ⅳ组 H.Ⅰ、Ⅱ和Ⅳ组


正确答案:(2)A或(Ⅰ和Ⅱ组) (3)G或(Ⅰ、Ⅲ和Ⅳ组) (4)E或(Ⅰ、Ⅱ和Ⅲ组) (5)H或(Ⅰ、Ⅱ和Ⅳ组)
(2)A或(Ⅰ和Ⅱ组) (3)G或(Ⅰ、Ⅲ和Ⅳ组) (4)E或(Ⅰ、Ⅱ和Ⅲ组) (5)H或(Ⅰ、Ⅱ和Ⅳ组) 解析:这是一道要求读者掌握软件测试过程中覆盖测试基本常识的分析题。本题的解答思路如下。
1)覆盖测试是一种白盒测试方法,通常应用在软件测试的早期,即单元测试阶段。其基本思路是以程序的内部结构为基础来设计测试用例,以覆盖尽可能多的程序内部逻辑结构,发现其中的错误和问题。测试人员必须事先拥有被测程序的规格说明书和程序清单。
2)在白盒测试用例设计中,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等几种常见的覆盖测试策略,这些策略的相关描述如表5-15所示。

3)【C代码3】程序段的程序流程图如图5-13所示。

4)结合表5-15中给出的语句覆盖测试策略的描述,选择足够多的测试用例数据,使被测程序中每条语句都至少执行1次。对于本案例的程序段,可选择测试用例Ⅰ(x=0,y=3),满足“(x=0)and(y>2)|”的判断条件,使A语句被执行1次;可选择测试用例Ⅱ(x=1,y=2),不满足“(x1)or(y=1)”的判断条件,使B语句被执行1次。因此(2)空缺处应选择选项A(即Ⅰ和Ⅱ组测试用例)。
5)结合表5-15中给出的判定覆盖测试策略的描述,选择足够多的测试用例数据,使得程序中每个判定都获得1次“真”值和“假”值,或者说使程序中每1个取“真”分支和取“假”分支都至少通过1次。对于本案例的程序段,可选择测试用例Ⅰ(x=0,y=3),使判断条件(x=0)and(y>2)的“真”分支执行1次;可选择测试用例Ⅱ(x=1,y=2),使判断条件(x1)or(y=1)的“假”分支执行1次;可选择测试用例Ⅲ(x=-1,y=2)或选择测试用例Ⅳ(x=3,y=1),使判断条件(x1)or(y=1)的“真”分支执行1次。
6)条件覆盖测试策略的本质是:构造一组测试用例数据,使被测程序中每一个判定语句的每个逻辑条件的可能取值至少满足1次。对于本案例的程序段要实施条件覆盖测试,可选择测试用例Ⅰ(x=0,y=3),以同时满足判断条件(x=0)and(y>2)中x=0和y>2的取值条件;可选择测试用例Ⅲ(x=-1,y=2),满足判断条件(x1)or(y=1)中x1的取值条件;可选择测试用例Ⅳ(x=3,y=1),满足判断条件(x1)or(y=1)中y=1的取值条件。因此(3)空缺处应选择选项G(即Ⅰ、Ⅲ和Ⅳ组测试用例)。
7)结合表5-15中给出的判定/条件覆盖测试策略的描述,构造一组测试用例数据,使得判定中的每个逻辑条件取得各种可能的值,并且使得每个判定取得各种可能的判定结果。结合以上第6)点的分析结论可知,对于本案例的程序段,选择测试用例Ⅰ(x=0,y=3),同时满足判断条件(x=0)and(y>2)中x=0和y>2的取值条件,且使得该判断条件的“真”分支执行1次。 选择测试用例Ⅱ(x=1,y=2),使判断条件(x=0)and(y>2)的“假”分支执行1次;同时不满足(x1)or(y=1)的取值条件,且使判断条件(x1)or(y=1)的“假”分支执行1次。 选择测试用例Ⅲ(x=-1,y=2),满足判断条件(x1)or(y=1)中x1的取值条件,且使得使该判断条件的“真”分支执行1次,使判断条件(x=0)and(y>2)的“假”分支执行1次。 也可选择测试用例Ⅳ(x=3,y=1),满足判断条件(x1)or(y=1)中y=1的取值条件,且使得使该判断条件的“真”分支执行1次,使判断条件(x=0)and(y>2)的“假”分支执行1次。
8)对于条件组合覆盖测试策略,其含义是选择足够多的测试用例数据,使被测程序中每个判定中逻辑条件的各种组合都至少出现1次。对于本案例的程序段,要实现条件组合覆盖测试工作所需的测试用例如表5-16所示。

9)结合表5-15中给出的路径覆盖测试策略的描述,选择足够多的测试用例数据,使被测程序中每一条可能的路径至少执行1次。对于本案例的程序段主要有3条路径:执行判断条件(x=0)and(y>2)“真”分支的路径;执行判断条件(x=0)and(y>2)“真”分支的路径;执行判断条件(x=0)and(y>2)“假”分支的路径。
选择测试用例Ⅰ(x=0,y=3),同时满足判断条件(x=0)and(y>2)中x=0和y>2的取值条件,使得该判断条件的“真”分支路径被执行1次。
选择测试用例Ⅱ(x=1,y=2),同时不满足判断条件(x1)or(y=1)中x1和y=1的取值条件,使得该判断条件的“假”分支路径被执行1次。
选择测试用例Ⅲ(x=-1,y=2),满足判断条件(x1)or(y=1)中x1的取值条件,或者选择测试用例Ⅳ(x=3,y=1),满足判断条件(x1)or(y=1)中y=1的取值条件,使得使该判断条件的“真”分支路径被执行1次。
由以上分析可知,(4)、(5)空缺处可分别填入选项E(即Ⅰ、Ⅱ和Ⅲ组测试用例)和选项H(即Ⅰ、Ⅱ和Ⅳ组测试用例)。

第2题:

有一段程序如下,请设计测试用例以满足语句覆盖要求。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 }


正确答案:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。

第3题:

● 给定C 语言程序:

int foo( int x, int y, int d)

{

if( x != 0 ) {

if ( y == 0 ) d = d / x;

else d = d / (x * y );

} else {

if( y == 0 ) d = 0;

else d = d / y;

}

return d ;

}

当用路径覆盖法进行测试时,至少需要设计 (31) 个测试用例。

(31)A. 3 B. 4 C. 5 D. 8


正确答案:B


第4题:

针对下面的程序段,对于(MaxNum,Type)的取值,至少需要______个测试用例才能够满足判定覆盖的要求。

Whjle(MaxNum-->0)

{

If(10==Type)x=y * 2;

Else if(100==Type)x=y+20;

}

A) 5

B) 4

C) 3

D) 2

A.

B.

C.

D.


正确答案:C

第5题:

采用白盒测试方法对下图进行测试,设计了4个测试用例:①(x=0,y=3), ②(x=1,y=2), ③(x=-1,y=2),④(x=3,y=1)。至少需要测试用例①②才能完成( )覆盖,至少需要测试用例①②③或①②④才能完成( )覆盖。

A.语句 B.条件 C.判定\条件 D.路径 A.语句 B.条件 C.判定\条件 D.路径


正确答案:A,D

第6题:

若采用白盒测试法对下面流程图所示算法进行测试,且要满足语句覆盖,则至少需要()个测试用例。

A.1

B.2

C.3

D.4

若表示输入和输出的测试用例格式为(A,B,X;X),则满足语句覆盖的测试用例是()。

A.(1,3,3;8)

B.(1,3,5;10)

C.(5,2,15;8)

D.(5,2,20;9)

请帮忙给出每个问题的正确答案和分析,谢谢!


问题 1 答案解析:A


问题 2 答案解析:A

第7题:

针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){ if(10==Type) x=y* 2; else if(100==Type) x=y +10; else x=y-20;}

A.5

B.4

C.3

D.2


正确答案:C
解析:本题考查白盒测试中测试用例的设计方法——判定覆盖法。
  判定覆盖法测试的概念如下。
  程序中每个判定的结果至少都获得一次“真”值和“假”值。
  此题中共嵌套三个判定语句,对于(MaxNum,Type)的取值,至少需要三个测试用例能够满足判定覆盖的要求,例如这三个测试用例可以表述为:
  (1,10)、(1,100)、(1,200)。

第8题:

给定C语言程序:

int foo(int x, int y,int d)

{

if ( x !=0 ) {

if ( y == 0 ) d = d / x;

else d=d/(x*y);

} else {

if ( y == 0 ) d = 0;

else d=d/y;

}

return d;

}

当用路径覆盖法进行测试时,至少需要设计(31)个测试用例。

A.3

B.4

C.5

D.8


正确答案:B
解析:路径覆盖法是白盒测试的作用方法,要求设计足够多的测试用例,覆荒程序中所有可能的路径。给定程序的流程图如下图所示。
  从图中可以看出,程序中共存在四条路径,分别记为abdh、abeh、acfh、acgh。当用路径覆盖法设计测试案例时,必须为每条路径至少设计一个用例。下面给出一组可覆盖全部路径的测试用例。
  测试用例1:[(2,0,8),4],覆盖路径abdh
  测试用例2:[(2,2,8),2],覆盖路径abeh
  测试用例3:[(0,0,8),0],覆盖路径acfh
  测试用例4:[(0,2,8),4],覆盖路径acgh
  用例采用形式[输入的(x,y,d),返回的d]来描述。

第9题:

试题三(共 15分)

阅读以下关于嵌入式软件测试用例设计的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。

【说明】

某程序段的流程如图 3-1所示,x、y是两个变量,K、J 表示一段程序执行体,表 3-1 所示为本题可供选择的四组测试用例组。

【问题1】(3分)

简答以下问题。

(1)条件覆盖的含义是什么?

(2)路径覆盖的含义是什么?

【问题 2】(2分)

在程序测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(分支覆盖)和路径覆盖等。其中,____是最强的覆盖准则。

请把以下 4个选项中正确的选项序号填入上述空白处。

①语句覆盖

②条件覆盖

③判定覆盖(分支覆盖)

④路径覆盖

【问题 3】(10 分)

为了对图 3-1 所示的程序段进行覆盖测试,必须适当地选取测试用例组。实现判定覆盖至少应采用的测试用例组是 (1)和 (2) ,实现条件覆盖至少应采用的测试用例组是 (3) ;实现路径覆盖至少应采用的测试用例组是 (4) 和 (5)。

请把以下 8个选项中正确的选项序号填入上述空白处。

① 试用例组Ⅰ和Ⅱ

②测试用例组Ⅱ和Ⅲ

③测试用例组Ⅲ和Ⅳ

④测试用例组Ⅰ和Ⅳ

⑤测试用例组Ⅰ、Ⅱ和Ⅲ

⑥测试用例组Ⅱ、Ⅲ和Ⅳ

⑦测试用例组Ⅰ、Ⅲ和Ⅳ

⑧测试用例组Ⅰ、Ⅱ和Ⅳ


正确答案:

试题三(共15分)
【问题1】(3分)
(1)条件覆盖是指设计足够的测试用例,使得被测程序每一个判定中的每个条件的所有可能结果至少出现一次。
(2)路径覆盖是指设计足够的测试用例,使得被测程序中每条路径至少执行一次。

【问题2】(2分)
(1)④(路径覆盖)

【问题3】 (10分)
(1)⑤
(2)⑧
(3)⑦
(4)⑤
(5)⑧
其中,第(1)、(2)题的答案顺序可互换,第(4)、(5)题的答案顺序可互换。

第10题:

● 针对以下 C 语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。

while ( MaxNum-- > 0 )

{

if ( 10 == Type )

x = y * 2;

else

if ( 100 == Type )

x = y + 10;

else

x = y - 20;

}

(62)A.5 B. 4 C. 3 D. 2


正确答案:C

更多相关问题