关于找零钱最佳组合--边界分析法的测试用例的疑问
在网上看到了关于“找零钱最佳组合的测试用例”,以下是用例:假 设 商 店 货 品 价 格 (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:如果针对输出条件进行的等价类划分,应该如何考虑输入条件? http://www.51testing.com/html/5/1042.html
不知此文是否能解答第一个问题 看着挺晕的。 鱼鳞提供的链接中其实已经说明了这个用例的设计思路,即选择测试用例的原则。
一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多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、关于这个例子上,用因果图分析是否更合适一些? 这样一想,再加上对这些分析方法本来就学得不通透,晕了sdlkfj5 我觉得这道题等价类划分不是太完善
等价类+边界值结合的方法 这样效果好
我试着对等价类划分作补充
在网上看到了关于“找零钱最佳组合的测试用例”,以下是用例:
假 设 商 店 货 品 价 格 (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 这样再结合边界值的方法 就比较清晰了 如果要考虑输入值的边界 是不是测试程序的健壮性?
哦 再补充一下
看到书上说:健壮性测试是检查超过极限情况时系统的情况
还有:
多数情况下 是从输入域划分等价类的;但也可以从被测程序的输出域进行划分
我们这道题就是输出域划分
无效情况;还可以从输入域补充 sdlkfj4 同意楼上的观点
楼上分析的很不错啊
sdlkfj4 原帖由 tiger12310 于 2007-4-6 13:45 发表 http://bbs.51testing.com/images/common/back.gif
sdlkfj4 同意楼上的观点
楼上分析的很不错啊
sdlkfj4
谢谢鼓励:) 看晕了,太高深了 序号
原因(商品价格及付款金额)
中间步(需找零的金额)
序号
结果(最少找零的币数)
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 编辑 ] 原帖由 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么? 看得有点晕。。。 找零数额=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 http://b32.photo.store.qq.com/http_imgload.cgi?/rurl4_b=998f50c20fb50a1966082dcbb673e2b492fec982f42bf93a0a5160caf28234ec390fd54fbfc6cf0038ba525fa368ab705527ffb9b252ea75423fd332afe65facdb6f45d8c97a50967efe2e56cfb87e8e313b8f12&a=35&b=32
做成表格了,应该好懂些。希望有所帮助。
页:
[1]