51Testing软件测试论坛

标题: 面试考题,请帮忙 [打印本页]

作者: lucky2006    时间: 2005-11-29 23:30
标题: 面试考题,请帮忙
这是一个考题,我是新手请帮助,谢谢!
以下程序接受x,y,z的值,并交计算结果X的值返回给调用程序;
int fun(int x,int y, int z)
{
if((y>1)&&(z==0))
{x=x/y}
if((y==2)||(x==1))
{x=x+1}
return x;
(1)画出流程图;
(2)用白盒设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。
作者: kxdyww    时间: 2005-11-30 12:37
我也想知道,懂的朋友赶紧帮帮啊!
作者: jennie98    时间: 2005-11-30 14:09
ding.会的人帮帮忙萨
作者: Tender    时间: 2005-11-30 16:35
流程图我就不画了,比较简单。
路径覆盖的话,应该把两个IF语句中的四个判断条件都覆盖一下,也就是应该有四个路径可以走,保证每个条件都做一边。
作者: baitest    时间: 2005-11-30 16:56
能画出流程图就可以了。
作者: AlanStone    时间: 2005-11-30 20:26
Return    |  X   Y   Z
__________________________
     3        |  3   3   3
     0        |  0   1   0
     1        |  0   2   0
作者: llcheng0515    时间: 2005-12-1 09:40
A: if((y>1)&&(z==0))
B: x=x/y
C: if((y==2)||(x==1))
D: x=x+1
E: return x;
(1)画出流程图;
(2)用白盒设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。

1.输入: y=2; z=0; x=2  
 输出:x=2
满足语句覆盖
作者: llcheng0515    时间: 2005-12-1 09:55
A: if((y>1)&&(z==0))
B: x=x/y
C: if((y==2)||(x==1))
D: x=x+1
E: return x;
(1)画出流程图;
(2)用白盒设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。

1.输入: y=2; z=0; x=2   输出:x=2 路径:ABCDE 满足语句覆盖
2.输入: y=2; z=0; x=2   输出:x=2 路径:ABCDE
   输入: y=1; z=1; x=0   输出: x=0 路径:ACE 
   满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖
3.输入: y=2; z=0; x=2   输出:x=2 路径:ABCDE
   输入: y=1; z=1; x=0   输出: x=0 路径:ACE 
   输入: y=2; z=1; x=0   输出: x=1 路径:ACDE
   输入: y=1; z=0; x=1   输出: x=2 路径:ACDE
   满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖
4.输入: y=2; z=0; x=2   输出:x=2 路径:ABCDE
   输入: y=1; z=1; x=0   输出: x=0 路径:ACE 
   输入: y=3; z=0; x=0   输出: x=0 路径:ABCE
   输入: y=2; z=1; x=2   输出: x=3 路径:ACDE
   满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖
作者: llcheng0515    时间: 2005-12-1 10:25
不对吧,ricelane版主?
例如:2.y y>1  y=2   z=0 x!=1 return x=x/2?? x=x+1不用执行吗?
作者: fish_yy    时间: 2005-12-2 10:48
应该有8中情况
x,y,z作为条件,用0,1标识符合条件与不符合条件
000
001
010
011
100
101
110
111
作者: lucky2006    时间: 2005-12-2 12:23
标题: 谢谢
真是太感谢你们了,我也是一个新手对软件测试感兴趣,想找份这方面的工作,以后多多交流!
作者: wangyongchun    时间: 2005-12-22 11:04
如果面试考这类相关试题的话,我就赚大了,呵呵
作者: xingming9    时间: 2005-12-22 18:09
我认为应该是 5 条路径:(路径覆盖)
A   {
B    Y>1
C   Z==0
D   X=X/Y
E   Y==2
F    X==1
G   X=X+1
H   return x;
流程图不画了,路径如下:
1.A -> B -> H
2.A -> B -> C -> H
3.A -> B -> C -> D -> E -> F -> H
4.A -> B -> C -> D -> E -> G -> H
5.A -> B -> C -> D -> E -> F -> G -> H
这里的疑问是,对于C语言的  “ || ” 操作,是不是当第一个条件为真时,那么第二个条件就不必判断了?我不太记得了。如果是的话,那么大家就丢了第四个路径。
同样的对于语句覆盖,应该是: Y=3,Z=0,X=3,  返回:X=2   如果是 Y=2,Z=0,X=2的话,不会进行第二个条件的判定。
至于其他,我想也应该考虑下,这里就不多说了。
作者: Nio    时间: 2005-12-23 11:13
一个函数中,两条件语句顺序执行,内含与、或关系,而且还少了个“}”。
能画出流程图,基本上就没问题了,用等价类划分法加上边界值检验制定出Test Case应该不成问题。
作者: 2005master    时间: 2005-12-23 13:24
画出流程图,然后覆盖路径就可以了,比较简单




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2