实验用黑匣子测试
1 .实验目的
1 )能够熟练应用黑匣子测试技术进行测试用例设计;
)2)测试用例的优化设计
2 .实验内容
寻找零钱的最佳组合
假设店里的物品价格(r )都在100元以下且为整数),如果客人的支付在100元以内(p ),客人会要求最低货币个(张)的数量吗? )面额50元(10元、5元、1元4种)。
3 .程序代码
#include'stdio.h '
#include 'conio.h '
void main1() )
{int P; //收到的钱总数
int R; //商品价格总数
int i=0,k=0,r50=0,r10=0,r5=0,r1=0;
请输入printf (“商品总价格:”);
scanf('%d ',r );
请输入printf ('收到的钱是: );
scanf('%d ',p );
k=P-R;
if (R100 || P100 || RP||P=0||R=)
{printf(wrong:输入大于100元或商品总额大于所收款项(n ) ); }
else {
if(p-r=50 ) )
{ P=P-50; r50=r50 1; I; }
wile(p-r=10 ) ) ) )。
{ P=P-10; r10=r10 1; I; }
wile(p-r=5) ) ) ) ) ) ) )。
{ P=P-5; r5=r5 1; I; }
wile(p-r=1) { P=P-1; r1=r1 1; I; }
printf (要查找的(n%d张50张) (n%d张10张(n%d张5张) n%d张) n共计找零%d张(d元(n )、r50、r10、r5、r1、I、k
}
}
void main () )
{do {main1(;
printf (* * * * * * * * * * * * * * * * * * * * * * * * * * (n () ) ) );
按printf ()回车:(n ) ); }
wile(getch(==13 );
}
4 .写出分区等价类
找零金额=P-R :假设计算是正确的
一.分析输入情况。
R 100; 0 R=100; R=0; P 100; R=P=100
公关
1.R无效: R 100 R=0; 2.R有效: 0 R=100
这种情况下就考虑一下p吧。
2_1. P无效: P 100 (多给钱);
2_2. P禁用:公关(钱少);
2_3. P有效: R=P=100 //无功输出:找得多找得少
二、分析输出情况。
r50=1; r50=0;
1=r10 4; r10=0;
r5=1; r5=0
1=r14; r1=0
输出——考虑找零的个数
这里是有效数据,关于“给顾客的最低货币张数”的有效可取值
R50(0/1; r10(0/1/2/3/4); r1(0/1/2/3/4) )。
三、分析规格中各决策点情况,表示用RR1、RR2、RR3计算50、10、5元货币时的余额。
R 100; R=0; P 100; 公关
RR1=50; RR2=10; RR3=5
——考虑输出找零金额(RR表示找零金额) ) ) ) ) ) ) ) ) ) —— ) ) ) —— ) ) ) —— )。
无效输入(找不到零钱) :
R 100; R=0;
0 R=100,P 100;
0 R=100,P R
输出对应的错误消息
有效输入(找零) :
0 R=100; R=P=100
此时考虑的输出: (假设RR=P-R计算正确,不考虑此时的无效输出) ) ) ) ) ) )。
0=RR4; 5=RR10; 10=RR50; 50=RR100
RR:0、1、4、5、9、10、49、50、99
5 .基于等价类设计的测试用例。
序列号
测试输入r
测试输入p
预期输出
实际输出
C1
101
101
错误提示
C2
0
0
错误提示
C3
-1
-1
错误提示
C4
100
101
错误提示
C5
100
98
错误提示
C6
100
100
不用找零了
C7
96
100
r1=4
C8
99
100
r1=1
C9
95
100
r5=1
C10
91
100
r5=1,r1=4
C11
90
100
r10=1
C12
51
100
r10=4,r5=1,r1=4
C13
50
100
r50=1
C14
1
100
r50=1,r10=4,r5=1,r1=4
注:(测试用例必须包含测试用例编号、输入的数据、预期输出结果、实际输出结果以及涵盖的等效项。) )。
展开全文