2、找零钱最佳组合
假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。
请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
实验步骤:
① 设计程序
② 划分等价类,得到等价类表。等价类表格式如下:
输入条件 |
有效等价类 |
唯一标识 |
无效等价类 |
唯一标识 |
商品价格 |
0<=R<=100 |
(1) |
R<0或R>100 |
(3) |
|
|
R非数字 |
(4) |
|
顾客付款 |
0<=P<=100 |
(2) |
P<0或P>100 |
(5) |
|
|
P非数字 |
(6) |
|
|
|
|
R>P |
(7) |
③ 运用等价类划分法设计测试用例,得到测试用例表。测试用例表格式如下:
序号 |
输入数据 |
覆盖等价类 |
输出 |
1 |
R=60,P=80 |
1,2 |
10元两张 |
2 |
R=a,P=10 |
4,2 |
输入价格无效 |
3 |
R=10,P=a |
1,6 |
输入支付金额无效 |
4 |
R=78,P=25 |
1,7 |
无效,顾客付款小于商品价格 |
5 |
R=60,P=1000 |
1,5 |
输入支付金额无效 |
6 |
R=101,P=65 |
2,3 |
输入价格无效 |
④ 运用边界值法设计测试用例。
测试编号 |
输入数据 |
覆盖等价类 |
输出 |
1 |
R=99,P=100 |
1,2 |
1元一张 |
2 |
R=101,P=102 |
3,5 |
无效输入 |
3 |
R=-1,P=1 |
2,3 |
无效输入 |
① 程序测试示例