桂林航天工业学院
信息工程系
2013学年第 二 学期
实 验 报 告
课程名称: 软件测试使用教程 实验名称: 实验一:黑盒测试(一) 实验二:黑盒测试(二) 实验三:白盒测试(一)
实验四:白盒测试(二) 实验五:音乐转换的黑盒测试
班 级 学 号 201102720132 学 生 姓 名 黄艺华 指 导 教 师 张亚红
黑盒测试(一)
一、实验目的
(1)能熟练应用黑盒测试技术进行测试用例设计;
(2) 对测试用例进行优化设计; 二.实验要求与内容
1.三角形问题的边界值分析测试用例
在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。
R1 = { : 边为a,b,c的等边三角形 } R2 = { : 边为a,b,c的等腰三角形 } R3 = { : 边为a,b,c的一般三角形 } R4 = { : 边为a,b,c不能组成三角形 } 用等价类划分和边界值分析测试技术设计测试用例。 程序代码:
#include
float a,b,c;
printf(\请输入三角形的三条边长a,b,c:\\n\scanf(\scanf(\scanf(\
if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {
if(a+b
else if((a==b&&(a!=c))||(a==c&&(b!=c))||(b==c&&(a!=c))) /*判断是否为等腰三角形*/
printf(\等腰三角形\\n\
else if(a==c && a==b) /*判断是否为等边三角形*/
printf(\等边三角形\\n\else
printf(\一般三角形!\\n\
} else
printf(\请输入1-100之间的数!\\n\}
2.等价类划分:
输入输出条件 是否三角形 有效等价类 (A>0) (1) (B>0) (2) (C>0) (3) (A+B>C) (4) (B+C>A) (5) (A+C>B) (6) (A=B) (13) (B=C) (14) (C=A) (15) (A=B)and(B=C)and (C=A) (17) 无效等价类 (A≦0) (7) (B≦0) (8) (c≦0) (9) (A+B≦C) (10) (B+C≦A) (11) (A+C≦B) (12) (A≠B)and(B≠C)and (C≠A) (16) (A≠B) (18) (B≠C) (19) (C≠A) (20) 是否等腰三角形 是否等边三角形 3.测试用例: 编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C 2,4,5 0,1,2 1,0,2 1,2,0 1,2,3 100,50,50 101,99,2 3,3,4 3,4,4 100,100,1 3,4,5 3,3,3 3,4,4 3,4,3 3,3,4 非等腰三角形 等边三角形 非等边三角形 等腰三角形 输出 一般三角形 不是三角形 4.边界值分析法测试用例: 测试用例 Test1 a 60 b 60 c 1 预期输出 等腰三角形 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 60 60 50 50 60 60 50 50 1 2 99 100 60 60 50 50 1 2 99 100 60 60 50 50 2 60 99 100 60 60 50 50 60 60 50 50 等腰三角形 等边三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形 5.找零钱最佳组合
假设商店货品价格(R)皆不大于100 元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?(货币面值50 元10 元,5 元,1 元四 种 )。 程序代码:
#include
int R;
cout<<\商品价格为:\int P;
cout<<\顾客付款为:\if(R<1||P<1||R>100||P>100||P unsigned int Z=P-R ; unsigned int N50 = 50; unsigned int N50_counter = 0; cout<<\您的输入有误,请重输!\ unsigned int N10 = 10; unsigned int N10_counter = 0; unsigned int N5 = 5; unsigned int N5_counter = 0; unsigned int N1 = 1; unsigned int N1_counter = 0; cout << \应找零钱为:\N50_counter = Z/N50; Z = Z%N50; N10_counter = Z/N10; Z = Z%N10; N5_counter = Z/N5; Z = Z%N5; N1_counter = Z; cout << \最佳找零方案:\张 50 元,\ << \张 10 元,\ << N5_counter << \张 5 元,\张 1 元。\} } ?分析输入的情形 R R>100 0 N50 N50=1 N50=0 N10 4>=N10>=1 N10=0 N5 N5=1 N5=0 N1 4>=N1>=1 N1=0 P P>100 R<=P<=100 P ?分析规格中每一决策点之情形, RR1,RR2,RR3 表示计算要找 50,10,5 元货币数时之剩 以 余金额。 R>100 R<=0 P>100 P