桂林航天工业学院 课程设计报告
课程名称: 软 件 测 试
专 业: 软 件 技 术 学 号: 201102520xxx 姓 名: 指导教师:
实验一 黑盒测试
一.实验目的
(1)能熟练应用黑盒测试技术进行测试用例设计; (2)对测试用例进行优化设计;
二.实验内容
1.三角形问题的边界值分析测试用例
在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。
R1 = { : 边为a,b,c的等边三角形 } R2 = { : 边为a,b,c的等腰三角形 } R3 = { : 边为a,b,c的一般三角形 } R4 = { : 边为a,b,c不能组成三角形 }
2. 找零钱最佳组合
假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,
现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。请结合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。
三、程序代码
1.三角形问题程序。
#include
int a,b,c;//定义三个整数a,b,c
printf(\请输入1到100的三个整数:\ scanf(\
if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(b>=1&&b<=100))//判断取值范围 {
if((a+b>c)&&(a+c>b)&&(b+c>a))//判断是否构成三角形 {
if(a==b&&b==c)
printf(\等边三角形\\n\ else if(a==b||a==c||b==c) printf(\等腰三角形\\n\ else
printf(\一般三角形\\n\
} else
printf(\不能组成三角形\\n\ } else
printf(\输入1到100的三个整数!\\n\ return 0; }
2.找零钱最佳组合问题程序。 #include\
void calc(int);//计算找钱 int main(void){ int R,P; while(1){
printf(\请输入商品的价格:\ scanf(\ if(0 printf(\请输入支付的金额:\ scanf(\ if(0 R=P-R; if(R<0) printf(\不够钱支付!\\n\ else if(R==0) printf(\不用找零钱!\\n\ else printf(\ calc(R); printf(\ } else printf(\支付金额大于0不大于100!\\n\ } else printf(\价格应大于0不大于100!\\n\ } return 0; } void calc(int R) { int N50,N10,N5,N1; N50=N10=N5=N1=0; printf(\找零钱:¥%d\\n\ while(R-50>=0){ N50+=1; R-=50; } while(R-10>=0){ N10+=1; R-=10; } while(R-5>=0){ N5+=1; R-=5; } while(R-1>=0){ N1+=1; R-=1; } printf(\ printf(\¥50x %d\\n\ printf(\¥10x %d\\n\ printf(\¥ 5x %d\\n\ printf(\¥ 1x %d\\n\ printf(\ printf(\} 四、写出划分的等价类 1.三角形问题划分等价类 有效等价类 ① a,b,c为整数。 ② a,b,c的取值范围在[1,100]。 ③ 任意两边的和大于第三边。 无效等价类 ⑦ a,b,c的取值范围不在[1,100]。 ⑧ 任意两边的和小于第三边。 2.找零钱最佳组合问题划分等价类 有效等价类 ① 0 ⑦ R≤0 ⑧ R>100 ④ 三条边相等。 ⑤ 任意两边相等。 ⑥ 一般三角形。 ⑨ 不是整数(字母、字符、小数) ④ 0≤N5≤1 ⑤ 0≤N10≤4 ⑥ 0≤N50≤1 ⑨ P≤0 ⑩ P>100 五、根据等价类设计的测试用例 三角形问题等价类测试用例: 输入的数据 用例编号 a 1 2 3 4 5 6 7 8 50 50 3 b 50 50 4 c 50 2 5 1 1 y @ 等边三角形 等腰三角形 一般三角形 等边三角形 等腰三角形 一般三角形 预期输出 实际输出 价类 ①?? ③④ ①②③⑤ ①②⑥ 覆盖的等101 2 3 z ! 2 x * 输入1到100的三个整数 输入1到100的三个整数 ⑦ 不能组成三角形 不能组成三角形 ①②⑧ 输入1到100的三个整数 输入1到100的三个整数 ⑨ 输入1到100的三个整数 输入1到100的三个整数 ⑨ 0.1 0.8 0.3 输入1到100的三个整数 输入1到100的三个整数 ⑨ 找零钱最佳组合问题等价类测试用例: 输入的数据 用例编号 R 1 2 3 4 5 6 1 5 10 50 4 32 P 2 10 50 100 10 50 N1=1 N5=1 N10=4 N50=1 N5=1,N1=1 N10=1,N5=1,N1=3 N1=1 N5=1 N10=4 N50=1 N5=1,N1=1 N10=1,N5=1,N1=3 ⑤ ①②③④7 8 9 10 11 12 34 0 3 5 100 101 100 100 2 5 0 100 N50=1,N10=1,N5=1,N1=1 价格应大于0不大于100 不够钱支付 不用找零钱 N50=1,N10=1,N5=1,N1=1 ⑤⑥ 价格应大于0不大于100 不够钱支付 不用找零钱 ②⑦ ①② ①② 预期输出 实际输出 价类 ①②③ ①②④ ①②⑤ ①②⑥ ①②③④ ①②③④覆盖的等支付金额大于0不大于100 支付金额大于0不大于100 ①⑨ 价格应大于0不大于100 价格应大于0不大于100 ②⑧