实验2、黑盒测试方法:等价类划分法+边界值分析方法
一、实验目的
- 掌握等价类、有效等价类、无效等价类、边界值等概念。
- 掌握边界值分析法、等价类划分法的测试用例设计方法。
- 能够将这两种方法结合起来,灵活运用
二、实验任务
以下三个任务、至少完成两个
1、对三角问题综合运用边界值分析方法、等价类划分方法设计测试用例。
三角形问题:void Triangle (int a, int b, int c)函数规定输入三个整数a、b、c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出。1<=a,b,c<=200。
实验步骤:
- 划分等价类,得到等价类表。等价类表格式如下:
输入变量 |
有效等价类 |
无效等价类 |
a,b,c |
<a,b,c>:边为a,b,c的一般三角形 |
a输出超出预定值 |
a,b,c |
<a,b,c>:边为a,b,c的等边三角形 |
b输出超出预定值 |
a,b,c |
<a,b,c>:边为a,b,c的等腰三角形 |
c输出超出预定值 |
a,b,c |
<a,b,c>:边为a,b,c不能组成三角形 |
- 综合运用这两种方法设测试用例,得到测试用例表:
边界值 |
a |
b |
c |
[1,200] |
[1,200] |
[1,200] |
[1,200] |
- 综合运用这两种方法设测试用例,得到测试用例表:
测试用例ID |
a |
b |
c |
预期输出 |
T1 |
5 |
5 |
5 |
等边三角形、等腰三角形 |
T2 |
2 |
2 |
3 |
等腰三角形 |
T3 |
3 |
6 |
5 |
一般三角形 |
T4 |
201 |
0 |
50 |
不构成三角形 |
T5 |
-1 |
30 |
-30 |
不构成三角形 |
T6 |
100 |
100 |
100 |
等边三角形 |
T7 |
20 |
18 |
29 |
一般三角形 |
T8 |
70 |
120 |
70 |
等腰三角形 |
- 根据上述测试用例表,能否进行优化,获得最小测试用例集合:
测试用例ID |
a |
b |
c |
预期输出 |
T1 |
5 |
5 |
5 |
等边三角形 |
T2 |
2 |
2 |
3 |
等腰三角形 |
T3 |
3 |
6 |
5 |
一般三角形 |
T4 |
201 |
0 |
50 |
不构成三角形 |
T5 |
100 |
100 |
100 |
等边三角形 |
测试过程:
这里只对一组用例进行了测试,如果需要可根据下面提供的测试代码进行其他测试用例的测试。
测试代码:
#include <stdio.h>
void triangle( int a, int b, int c ); // 函数声明 --- 作用域
int main(void)
{
int x,y,z;
printf("please input (length):\n");
printf("x:");
scanf("%d",&x);
printf("y:");
scanf("%d",&y);
printf("z:");
scanf("%d",&z);
triangle( x,y,z );//判断三角形类型
}
void triangle( int a, int b, int c )
{
int temp;
if( a > b )
{//如果a比较b大,就相互转换
temp = a;
a = b;
b = temp;
}
if( a > c )
{//如果a比较c大,就相互调换
temp = a;
a = c;
c = temp;
}
if( b > c )
{//如果b比较c大,就相互调换
temp = b;
b = c;
c = temp;
}
if( a+b <= c )
{
printf("不是三角形!!\n");
return ;
}
else
{
if( a == b )
{
if( a != c )
printf("等腰三角\n");
else
printf("等边三角\n");
}
else
{
printf("是个三角形\n");
}
}
}
2、对于找零钱最佳组合问题运用边界值分析法设计测试用例。
实验步骤:
- 分析边界值。
付款={-1,0,49,51,99,100}
总价={-1,0,50,55,100,101}
- 运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实验1)。
测试用例ID |
付款 |
总价 |
预期输出 |
T1 |
-1 |
0 |
不符合标准 |
T2 |
0 |
0 |
不用找零 |
T3 |
0 |
50 |
不能购买 |
T4 |
33 |
-1 |
不符合标准 |
T5 |
99 |
0 |
应找零钱99元 |
T6 |
100 |
51 |
应找零钱49元 |
T7 |
49 |
100 |
不能购买 |
T8 |
100 |
101 |
不用找零 |
T9 |
66 |
55 |
应找零钱11元 |
T10 |
51 |
-1 |
不符合标准 |
测试过程
这里只对一组用例进行了测试,如果需要可根据下面提供的测试代码进行其他测试用例的测试。
- 执行测试,填写软件缺陷报告。
简单软件缺陷报告格式如下:
测试模块: |
找零钱 |
开 发 者: | |
测 试 员: |
测试日期: |
2024.3.29 | |
软件缺陷列表 | |||
缺陷ID |
缺陷详细信息 | ||
BUG1 |
无 | ||
BUG2 |
无 | ||
BUG3 |
无 | ||
BUG4 |
无 |
测试代码:
#include <stdio.h>
#include<math.h>
int main()
{
double a,b;
printf("请输入付款金额:");
scanf("%lf",&a);
if(a<0||a>100){
printf("不符合标准。\n");
return 0;
}
printf("请输入物品价格:");
scanf("%lf",&b);
if(b<0||b>100){
printf("不符合标准。\n");
return 0;
}
printf("您的余额为:%lf\n",a-b);
if(a-b>0){
printf("应找零钱%lf\n",a-b);
}else if(a==a-b||a==b){
printf("不用找零\n");
}else{
printf("您付的金额不足以购买该产品。\n");
}
return 0;
}