实验一 黑盒测试
1.实验目的
(1)能熟练应用黑盒测试技术进行测试用例设计;
(2) 对测试用例进行优化设计
2.实验内容
找零钱最佳组合
假设商店货品价格(R)皆不大于100 元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?(货币面值50 元10 元,5 元,1 元四 种 )。
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 (R>100 || P>100 || R>P||P<=0||R<=)
{ printf("Wrong:输入大于100元或者商品总价大于所收的钱\n");}
else {
if (P-R>=50)
{ P=P-50; r50=r50+1; i++; }
while (P-R>=10)
{ P=P-10; r10=r10+1; i++; }
while (P-R>=5)
{ P=P-5; r5=r5+1; i++; }
while (P-R>=1){ P = P-1; r1 = r1 + 1; i++; }
printf("应该找:\n %d 张50块的\n %d 张10块的 \n %d 张5块的 \n %d 张1块的\n共找钱%d张总共%d元\n",r50,r10,r5,r1,i,k);
}
}
void main()
{do {main1();
printf("******************************\n");
printf("请按回车继续:\n");}
while (getch()==13);
}
4.写出划分的等价类
找零数额=P-R : 假设计算正确
一、 分 析 输 入 的 情 形 。
R > 100;0 < R < = 100;R <= 0;P > 100;R<= P <= 100
P < R
1.R无效: R > 100 R<=0 ;2.R有效: 0 < R < = 100
此种情况下再考虑P:
2_1. P无效:P > 100 (钱给多);
2_2. P无效:P < R (钱给少);
2_3. P有效:R<=P <= 100 //无效输出: 多找钱 少找钱
二、 分 析 输 出 情 形 。
r50 = 1; r50 = 0;
1<=r10 <4; r10 = 0;
r5 = 1; r5 = 0
1<=r1<4; 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; P < R
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<=RR<4; 5<=RR<10; 10<=RR<50; 50<=RR<100
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
注意:(测试用例必须包含测试用例编号,输入的数据,预期输出的结果,实际输出的结果,覆盖的等价类)
展开阅读全文