51Testing软件测试论坛

标题: 新手求助:怎么合理设计这个有很多约束条件的情况的测试用例?谢谢! [打印本页]

作者: CynthiaXu    时间: 2004-11-8 15:32
标题: 新手求助:怎么合理设计这个有很多约束条件的情况的测试用例?谢谢!
测试新手,需要测试包含以下约束条件的情况,任一不满足情况则报错,都满足则提示正确。

B>C >F>H>J
D     >F>H>J
E         >H>J
G>I          >J
E             >L
E             >K
D             >K
B>C         >K

取值范围:
B:INT(50,180),
C:INT(50,120),
F:INT(35,100),
H:INT(20,50),
J=20,
D:INT(40,140),
E:INT(40,150),
G:INT(50,200),
I:INT(30,150),
L:INT(35,100),
K:INT(35,100),

不知道该用什么分析方法,哪里有类似的例子可以提供参考?
前面看了因果图的例子,看懂了,可是好像不适用我的这种情况。

谢谢!

[ 本帖最后由 楠族开心果 于 2010-6-8 13:36 编辑 ]
作者: yaner_zhaojing    时间: 2004-11-8 16:03
感觉应该用到等价类,取边界值是否正常。可以选一组正确的数据,然后再做各种不正确的取值,尤其是边界值的检查
作者: CynthiaXu    时间: 2004-11-8 16:13
Originally posted by yaner_zhaojing at 2004-11-8 16:03:
感觉应该用到等价类,取边界值是否正常。可以选一组正确的数据,然后再做各种不正确的取值,尤其是边界值的检查


谢谢!
边界值肯定需要的。但是约束关系太多,我希望能知道一种合适的分析方法能设计出最少而全的测试用例。不然,随便设计的话肯定会有遗漏的。
作者: yaner_zhaojing    时间: 2004-11-8 16:23
呵呵,同样是新手。这个我也没有遇到过,不过我建议你可以分析的时候可以按照一定的顺序去一条一条的列一下
作者: skinapi    时间: 2004-11-8 17:41
说说我的个人看法:
1.从楼主给出的约束条件来看,可以先对这些约束条件进行简化,只要是完全等价的简化就没有问题,对简化后的系统进行测试设计和对原有的系统进行测试设计是完全一样的。简化后应该可以得到12个单个的条件(如b>c等),当这12个条件同时满足时为正确,否则为错误。
2.如果不需要考虑输入的变量值是否在所给的范围内这个问题,可以再根据变量的取值范围将肯定满足的条件去掉(如i>j等)。
3.根据因果图建立判定表。因果图中原因为:b>c等,结果为:正确、错误,增加一个中间结点,为所有原因相与。在该结点为真时结果为正确,否则为错误。
4.判定表中考虑的是b>c和b<=c,需要根据判断条件来进行等价类划分,并考虑边界值。
作者: CynthiaXu    时间: 2004-11-8 20:21
Originally posted by skinapi at 2004-11-8 17:41:
说说我的个人看法:
1.从楼主给出的约束条件来看,可以先对这些约束条件进行简化,只要是完全等价的简化就没有问题,对简化后的系统进行测试设计和对原有的系统进行测试设计是完全一样的。简化后应该可以得到12 ...


谢谢!!!!
有道理。看懂了,但是这样一来:
步骤1后就会有2^12=4096项(妈妈也!好多哦!)
步骤2我不能用,因为J值有可能会变化,得考虑设计出来结果的通用性
步骤3判定表里纵向有12个原因,一个中间结点,两个结论,但是横向就麻烦了(hehe,我得想办法减少一些)
步骤4是能让我减少横向的办法,但如果我要考虑通用性(即各值的取值范围会发生变化),就只能乖乖地做4096个例子(太可怕了!)。鱼和熊掌不可兼得,就不考虑通用了吧。

其实~~~其实~~~我现在想知道有没有工具能帮我自动生成这4096个例子。要是有我就能实现通用性了。(这是我看懂你的方法以后想到的,可不是我一开始就想偷懒哦!)

[ Last edited by CynthiaXu on 2004-11-8 at 20:27 ]
作者: CynthiaXu    时间: 2004-11-9 10:48
根据判断条件来进行等价类划分

是不是这么分的?
                                             J=20
                                             L:(35,100)
                                             K:(35,100)
∵ I>J, I:INT(30,150),         ∴   I:(30,150)
∵H>J,H:INT(20,50),           ∴  H:(21,50)
∵F>H,F:INT(35,100),          ∴  F:(35,51),(52,100)
∵C>F,C>K,C:INT(50,120),   ∴  C:(50,52),(53,101),(102,120)
∵B>C,B:INT(50,180),          ∴  B:(51,53),(54,102),(103,121),(122,180)
∵D>F,D>K,D:INT(40,140),  ∴  D:(40,52),(53,101),(102,140)
∵E>H,E:INT(40,150),         ∴  E:(40,51),(52,150)
∵G>I,G:INT(50,200),         ∴  G:(50,151),(152,200)
∵E>L,E>K,E:INT(40,150),   ∴  E:(40,101),(102,150)

然后对于正确的情况,只要8个例子就能保证测到了所有满足约束条件和取值范围的情况。
我这8个例子均是取划分后的端点。但我不知道对于划分后的端点+1和端点-1是否也该测试?还是说我只要测试原取值范围的端点+1和端点-1就可以了?(测试端点+1和端点-1真的那么重要吗?数据太多时,做这个真的是会增加很多工作量的)

另外,我还没想清楚该怎么设计结果错误的用例。只要根据12个原因做12个例子就好了吗?
按理说我设计的结果只要能保证覆盖了80%的可能故障情况就可以,但我不知道我这么设计是否满足了这个要求。

[ Last edited by CynthiaXu on 2004-11-9 at 10:50 ]
作者: CynthiaXu    时间: 2004-11-10 11:34
快沉了。顶上去!

大侠们帮帮忙,快点再指导我一下啊!
感激不尽。




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