liyun100 发表于 2007-2-1 13:57:37

关于找零钱最佳组合--边界分析法的测试用例的疑问

在网上看到了关于“找零钱最佳组合的测试用例”,以下是用例:
假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 )
一、 分 析 输 入 的 情 形 。

R > 100

0 < R < = 100

R <= 0

P > 100

R<= P <= 100

P < R

二、 分 析 输 出 情 形 。

N50 = 1

N50 = 0

4 > N10 >= 1

N10 = 0

N5 = 1

N5 = 0

4 > N1 >= 1

N1 = 0

三、 分 析 规 格 中 每 一 决 策 点 之 情 形 , 以 RR1, RR2, RR3 表 示 计 算 要 找 50, 10, 5 元 货 币 数 时 之 剩 余 金 额 。 R > 100R <= 0
P > 100
P < R
RR1 >= 50
RR2 >= 10
RR3 >= 5

四、 由 上 述 之 输 入 / 输 出 条 件 组 合 出 可 能 的 情 形 。

R > 100

R <= 0

0 < R <= 100, P > 100
0 < R <= 100, P < R
0 < R <= 100, R <= P <= 100, RR = 50
0 < R <= 100, R <= P <= 100, RR = 49
0 < R <= 100, R <= P <= 100, RR = 10
0 < R <= 100, R <= P <= 100, RR = 9
0 < R <= 100, R <= P <= 100, RR = 5
0 < R <= 100, R <= P <= 100, RR = 4
0 < R <= 100, R <= P <= 100, RR = 1
0 < R <= 100, R <= P <= 100, RR = 0

五、 为 满 足 以 上 之 各 种 情 形 , 测 试 资 料 设 计 如 下 :

1. 货品价格 = 101

2. 货品价格 = 0

3.货品价格 = -1

4. 货品价格 = 100, 付款金额 = 101

5. 货品价格 = 100, 付款金额 = 99

6. 货品价格 = 50, 付款金额 = 100

7. 货品价格 = 51, 付款金额 = 100

8. 货品价格 = 90, 付款金额 = 100

9. 货品价格 = 91, 付款金额 = 100

10. 货品价格 = 95, 付款金额 = 100

11. 货品价格 = 96, 付款金额 = 100

12. 货品价格 = 99, 付款金额 = 100

13. 货品价格 = 100, 付款金额 = 100


问题1:关于此测试用例自己总是看不太明白,这个是针对于输入值进行的分析,还是对输出值进行的等价类划分,为什么取值没有体现输入条件的边界值呢,好像是以输出条件为边界值进行分析的吧?
问题2:如果针对输出条件进行的等价类划分,应该如何考虑输入条件?

鱼鳞 发表于 2007-2-26 15:37:23

http://www.51testing.com/html/5/1042.html
不知此文是否能解答第一个问题

liuyih 发表于 2007-2-26 17:04:26

看着挺晕的。

ppent 发表于 2007-2-26 17:10:13

鱼鳞提供的链接中其实已经说明了这个用例的设计思路,即选择测试用例的原则。
一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1格、比最小个数少1个的数做为测试数据;
三、根据规格说明的每一个输出条件,使用规则一;
四、根据规格说明的每一个输出条件,使用规则二;
五、如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;
六、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例;
七、分析规格说明,找出其他可能的边界条件

我尝试来解释用例设计思路,不对的请大家指正。
1、先对输入条件R、P在取值的有效性上(值的范围)进行考虑
2、通过对输出情况的分析,进一步细化输入条件需满足的范围。即当满足了怎样的输入时才有怎样的输出。这里的分析包括了对剩余金额和找回面额的分析,即N50、N10、N5、N1、RR等
3、由以上分析得出输入输出组合,并转化为具体的测试数据

但我个人对用例存在一些疑问:
1、第三步中,R > 100,R <= 0 ,P > 100 ,P < R怎么理解?
我觉得应该是0<R<100,P>R时才能出现RR1 >= 50,RR2 >= 10,RR3 >= 5的情况啊?
2、第四步的用例是否不够完整,我觉得应该加上 0 < R <= 100, R <= P <= 100, RR = 99的情况会比较全面些(只是拍脑袋的想法)。
3、关于这个例子上,用因果图分析是否更合适一些?

鱼鳞 发表于 2007-2-27 08:38:51

这样一想,再加上对这些分析方法本来就学得不通透,晕了sdlkfj5

不开窍的大饼 发表于 2007-3-31 19:25:28

我觉得这道题等价类划分不是太完善

等价类+边界值结合的方法 这样效果好

我试着对等价类划分作补充

在网上看到了关于“找零钱最佳组合的测试用例”,以下是用例:
假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 )
正确功能:找零的组合为1/10/50面值组合的最小个(张)数

找零数额=P-R假设计算正确
一、 分 析 输 入 的 情 形 。
R > 100
0 < R < = 100
R <= 0
P > 100
R<= P <= 100
P < R
1.R无效: R > 100R<=0

2.R有效: 0 < R < = 100

此种情况下再考虑P:
2_1. P无效:P > 100 (钱给多)

2_2. P无效:P < R   (钱给少)

2_3. P有效:R<= P <= 100   //无效输出: 多找钱 少找钱
二、 分 析 输 出 情 形 。
N50 = 1
N50 = 0
4 > N10 >= 1
N10 = 0
N5 = 1
N5 = 0
4 > N1 >= 1
N1 = 0
考虑输出——找零个数
这里是有效数据,关于" 找 给 顾 客 之 最 少 货币 个(张) 数"的有效取值

50 0/1
10 0/1/2/3/4
10/1/2/3/4
三、 分 析 规 格 中 每 一 决 策 点 之 情 形 , 以 RR1, RR2, RR3 表 示 计 算 要 找 50, 10, 5 元 货 币 数 时 之 剩 余 金 额 。 R > 100R <= 0
P > 100
P < R
RR1 >= 50
RR2 >= 10
RR3 >= 5
考虑输出——找零数额(RR表示找零数额)

无效输入(不找零):

R > 100
R <= 0
0 < R < = 100P > 100
0 < R < = 100P < R

输出为相应错误提示信息

有效输入(找零):

0 < R < = 100R<= P <= 100

此时考虑的输出:(RR=P-R 假设计算正确 不考虑此种情况无效输出)

0<=RR<4
5<=RR<10
10<=RR<50
50<=RR<100

不开窍的大饼 发表于 2007-3-31 19:27:16

这样再结合边界值的方法 就比较清晰了

不开窍的大饼 发表于 2007-3-31 20:31:31

如果要考虑输入值的边界 是不是测试程序的健壮性?

不开窍的大饼 发表于 2007-4-5 22:43:03

哦 再补充一下

看到书上说:

健壮性测试是检查超过极限情况时系统的情况

还有:

多数情况下 是从输入域划分等价类的;但也可以从被测程序的输出域进行划分

我们这道题就是输出域划分

无效情况;还可以从输入域补充

tiger12310 发表于 2007-4-6 13:45:37

sdlkfj4 同意楼上的观点

楼上分析的很不错啊

sdlkfj4

不开窍的大饼 发表于 2007-4-6 16:56:04

原帖由 tiger12310 于 2007-4-6 13:45 发表 http://bbs.51testing.com/images/common/back.gif
sdlkfj4 同意楼上的观点

楼上分析的很不错啊

sdlkfj4
谢谢鼓励:)

handle 发表于 2007-4-7 22:19:19

看晕了,太高深了

liyun100 发表于 2007-4-16 15:46:42

序号
原因(商品价格及付款金额)
中间步(需找零的金额)
序号
结果(最少找零的币数)
C1
C2
C3
C4
C5
C6
R>100(无效等价)
R<=0(无效等价)
0<R<=100(有效等价)
P>100(无效等价)
P<R(无效等价)
R<=P<=100(有效等价)
100=>M1>=50
49=>M2>=10
9=>M3>=5
4=>M4>=0
E1
E2
E3
E4
E5
E6
E7
E8
E9
N50=1
N50=0
1<=N10<=4
N10=0
N5=1
N5=0
1<=N1<=4
N1=0
不可能

根据上图进行测试用例的划分:
1、C1、C2为无效等价类,分别单独作为两个测试用例。
当R>100时
当R<=0时
2、C3分别与C4、C5组合,作为另两个无效等价类测试用例。
当0<R<=100,P>100时
当0<R<=100,P<R时
3、C3与C6组合,针对余额采用边界值的划分方法进行有效等价类划分。
当M1=99时
当M1=50时
当M2=49时
当M2=10时
当M3=9时
当M3=5时
当M4=4时
当M4=1时
当M4=0时




[ 本帖最后由 liyun100 于 2007-4-17 07:09 编辑 ]

yinmei1983 发表于 2007-11-13 12:55:41

原帖由 liyun100 于 2007-2-1 13:57 发表 http://bbs.51testing.com/images/common/back.gif
在网上看到了关于“找零钱最佳组合的测试用例”,以下是用例:
假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) ... 二、 分 析 输 出 情 形 。

N50 = 1

N50 = 0


4 > N10 >= 1


N10 = 0


N5 = 1


N5 = 0


4 > N1 >= 1


N1 = 0


为什么N10不能等于4,N1不能等于4呢,比如,我现在要找40元,不是N10就恰好等于4么?

linjuan60 发表于 2007-11-26 18:12:42

看得有点晕。。。

jieslie 发表于 2009-6-27 20:23:51

找零数额=P-R假设计算正确
一、 分 析 输 入 的 情 形 。
1.R无效: R > 100R<=0
2.R有效: 0 < R < = 100
此种情况下再考虑P:
2_1. P无效:P > 100 (钱给多)
2_2. P无效:P < R   (钱给少)
2_3. P有效:R<= P <= 100   //无效输出: 多找钱 少找钱
二、 分 析 输 出 情 形 。
考虑输出——找零个数
这里是有效数据,关于" 找 给 顾 客 之 最 少 货币 个(张) 数"的有效取值
50:0/1
10:0/1/2/3/4
5 :0/1
1 :0/1/2/3/4

三、 分 析 规 格 中 每 一 决 策 点 之 情 形
考虑输出——找零数额(RR表示找零数额)

无效输入(不找零):

R > 100
R <= 0
0 < R < = 100   P > 100
0 < R < = 100   P < R

输出为相应错误提示信息

有效输入(找零):

0 < R < = 100R<= P <= 100

此时考虑的输出:(RR=P-R 假设计算正确 不考虑此种情况无效输出)

0<=RR<4
5<=RR<10
10<=RR<50
50<=RR<100
RR:0、1、4、5、9、10、49、50、99
五、 为 满 足 以 上 之 各 种 情 形 , 测 试 用 例 设 计 如 下 :
1. 货品价格 = 101
2. 货品价格 = 0
3.货品价格 = -1
4. 货品价格 = 100, 付款金额 = 101
5. 货品价格 = 100, 付款金额 = 99

6. 货品价格 = 100, 付款金额 = 100   不找零
7. 货品价格 = 99, 付款金额 = 100    N1=1
8. 货品价格 = 96, 付款金额 = 100    N1=4
9. 货品价格 = 95, 付款金额 = 100    N5=1
10. 货品价格 = 91, 付款金额 = 100   N5=1, N1=4
11. 货品价格 = 90, 付款金额 = 100   N10=1
12. 货品价格 = 51, 付款金额 = 100   N10=4, N5=1,N1=4
13. 货品价格 = 50, 付款金额 = 100   N50=1
14. 货品价格 = 1, 付款金额 = 100    N50=1,N10=4,N5=1,N1=4

52softtesting 发表于 2010-3-24 23:19:39

http://b32.photo.store.qq.com/http_imgload.cgi?/rurl4_b=998f50c20fb50a1966082dcbb673e2b492fec982f42bf93a0a5160caf28234ec390fd54fbfc6cf0038ba525fa368ab705527ffb9b252ea75423fd332afe65facdb6f45d8c97a50967efe2e56cfb87e8e313b8f12&a=35&b=32
做成表格了,应该好懂些。希望有所帮助。
页: [1]
查看完整版本: 关于找零钱最佳组合--边界分析法的测试用例的疑问