feifeimao 发表于 2009-5-20 11:55:35

用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成几个等价区间?

题目:
用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成几个等价区间?

答案是4个。我怎么觉得是3个呀:8位,少于8位,多于8位。

哪位朋友能帮忙给个正解呢?
谢谢先^^

wolsion 发表于 2009-5-20 11:57:51

还有非数字吧

feifeimao 发表于 2009-5-20 11:59:05

还有一题,题目如下:

针对下列程序段,需要(52)个测试用例才可以满足语句覆盖的要求。
switch ( value )
{
case 0:
other = 30;
break;
case 1:
other = 50;
break;
case 2:
other = 300;
case 3:
other = other / value;
break;
default:
other = other * value;
}

答案是4个测试用例可以覆盖全部语句,但我怎么觉得是5个才行呢,那个default语句不也是一句了吗?

希望是答案错误吧,给位朋友,给我你们的答案吧,谢谢啦:loveliness:

feifeimao 发表于 2009-5-20 12:00:40

谢谢楼上的,关于第一题,我是对等价区间的理解不清楚,是指的包括有效、无效等价类,还是指真对那个8位。

唉,纠结在这个题目上。。。。:lol

feifeimao 发表于 2009-5-20 12:01:44

想明白了,谢谢楼上了,呵呵

wolsion 发表于 2009-5-20 13:20:17

原帖由 feifeimao 于 2009-5-20 11:59 发表 http://bbs.51testing.com/images/common/back.gif
还有一题,题目如下:

针对下列程序段,需要(52)个测试用例才可以满足语句覆盖的要求。
switch ( value )
{
case 0:
other = 30;
break;
case 1:
other = 50;
break;
case 2:
other = 300;
case 3:
...

case 2:
other = 300;这个没有break,明白了吧

feifeimao 发表于 2009-5-20 14:13:31

呵呵,明白了,谢谢楼上了

幽灵鱼 发表于 2009-5-20 14:37:41

第一题隐含1-8位
第二题你要看清楚是语句覆盖,最好你画个图,你就知道了 一共4条语句

[ 本帖最后由 幽灵鱼 于 2009-5-20 14:41 编辑 ]

june.diny 发表于 2009-5-21 22:08:30

是4个。
有效等价类:8为数字类型;
无效等价类:大于8位的数字类型;小于8为的数字类型;非数字类型;

jiang860718 发表于 2009-5-22 14:02:12

break   刚开始也没看见

feifeimao 发表于 2009-5-22 14:07:12

上面两题都想明白了,谢谢楼上各位,这里又有新问题了,能再帮我看看吗

int GetMaxDay( int year, int month )
{
int maxday = 0;
if ( month >= 1 && month <= 12 )
{
if ( month == 2 )
{
if ( year % 4 == 0 )
{
         if ( year % 100 == 0 )
{
            if ( year % 400 == 0 )
maxday = 29;
            else   maxday = 28;
         }
         else
             maxday = 29;
       }
       Else
            maxday = 28;
}
Else
   {
          if ( month == 4 || month == 6 || month == 9 || month == 11 )
maxday = 30;
else
               maxday = 31;
}
}
return maxday;
}

要求画控制流图,求V(G)

里面有两个判定是组合的:
if ( month >= 1 && month <= 12 )
if ( month == 4 || month == 6 || month == 9 || month == 11 )
我按照书上的说法, 把判定拆开成单个条件画了控制流图,这样V(G)就是十多个,但我参看答案V(G)=7,这个怎么解呢?

feifeimao 发表于 2009-5-22 14:18:01

C:\Documents and Settings\Administrator\桌面\程序
C:\Documents and Settings\Administrator\桌面\控制流图

feifeimao 发表于 2009-5-22 14:20:42

想把整理过的程序和控制流图附件粘上来,不成功呢:(

june.diny 发表于 2009-5-23 20:18:40

圈复杂度有三种计算方式:
1、V(G)=R,R代表区域数;
2、V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;
3、V(G)=P+1,P是流图G中判定结点的数量。
要注意的是:
如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。

可以针对你的程序流图,验证一下。。。

feifeimao 发表于 2009-5-27 14:08:52

呵呵,谢谢楼上的了
我也是按照书上说的方法来做的,但是拆开来以后,v(g)就是十几个了,但答案等于7 呢。

luomin1017 发表于 2009-5-27 15:45:46

按照V(G)=P+1来算,V(G)=7;但是正确的控制流图应该是怎么样画呢?

june.diny 发表于 2009-5-31 22:27:31

回复 15# 的帖子

我画了下,是7个。结果28,29,30,31是要合并到一个节点上的哦

feifeimao 发表于 2009-6-2 18:12:29

原帖由 june.diny 于 2009-5-31 22:27 发表 http://bbs.51testing.com/images/common/back.gif
我画了下,是7个。结果28,29,30,31是要合并到一个节点上的哦

楼上,为什么28,29,30,31是要合并到一个节点上呢?
可以说说原因吗?

june.diny 发表于 2009-6-2 20:54:45

回复 18# 的帖子

在选择或多分支结构中,分支的汇聚处应有一个汇聚结点
可以参考
http://www.51testing.com/html/10/n-76410.html

feifeimao 发表于 2009-6-12 21:13:39

谢谢楼上了,但我还是不清楚,我怎么觉得粘附件好困难的哟,不好交流阿。:(
页: [1] 2
查看完整版本: 用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成几个等价区间?