实验一: 黑盒测试——边界值分析法
【开发语言及实现平台或实验环境】 C语言 【实验目的】 1.认识黑盒测试方法中边界值分析测试法原理 2.掌握黑盒测试方法中边界值分析测试法过程 【实验内容】 1.三角形问题 问题描述:三角形问题接受三个整数,a、b和c作为输入,用作三角形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。 作为输入:三角形的三条边必须满足如下条件: C1:1<=a<=100 C2:1<=b<=100 C3:1<=c<=100 C4:a<b+c C5:b<a+c C6:c<a+b 2.NextDate函数 问题描述:NextDate是一个由三个变量(月份、日期和年份)的函数。函数返回输入日期后边的那个日期。 作为输入:变量月份、日期和年都具有整数值,满足以下条件。 C1:1<=月份<=12 C2:1<=日期<=31 C3:1912<=年<=2050
【实验代码】 1.三角形问题 #include<bits/stdc++.h> using namespace std; int main(){ int a,b,c; while(cin>>a>>b>>c){ if(a>=b+c||b>=a+c||c>=a+b){ cout<<“not a triangle”<<endl; } else if (a>50||a<1||b>50||b<1||c>50||c<1){ cout<<“out of range!”<<endl; } else if(ab&&bc){ cout<<“Equilateral triangle”<<endl; } else if(ab||bc||ca){ cout<<“Isosceles triangle”<<endl; } else{ cout<<“normal triangle”<<endl; } } return 0; } 2.NextDay函数 #include<bits/stdc++.h> #include #include using namespace std; string date; int n=0; int main(){ int y,m,d; while(cin>>m>>d>>y){ if(m<1||m>12||d<1||d>31||y<1912||y>2050){ cout<<“结果:”<<“out of range!”<<endl; continue; } d=(d>30)?1:d+1; if(d1){ m=(m>11)?1:m+1; if(m==1){ y++; } } cout<<m<<"."<<d<<"."<<y<<endl; } return 0; } 【测试案例】 测试一: 边界值测试(4N+1) 序号 a b c 输出结果 1 50 50 1 等腰三角形 2 50 50 2 等腰三角形 3 50 50 99 等腰三角形 4 50 50 100 非三角形 5 50 1 50 等腰三角形 6 50 2 50 等腰三角形 7 50 99 50 等腰三角形 8 50 100 50 非三角形 9 1 50 50 等腰三角形 10 2 50 50 等腰三角形 11 99 50 50 等腰三角形 12 100 50 50 非三角形 13 50 50 50 等边三角形
健壮性测试(6N+1) 序号 a b c 输出结果 1 50 50 1 等腰三角形 2 50 50 2 等腰三角形 3 50 50 99 等腰三角形 4 50 50 100 非三角形 5 50 50 0 Out of range! 6 50 50 101 Out of range! 7 50 1 50 等腰三角形 8 50 2 50 等腰三角形 9 50 99 50 等腰三角形 10 50 100 50 非三角形 11 50 0 50 Out of range! 12 50 101 50 Out of range! 13 1 50 50 等腰三角形 14 2 50 50 等腰三角形 15 99 50 50 等腰三角形 16 100 50 50 非三角形 17 0 50 50 Out of range! 18 101 50 50 Out of range! 19 50 50 50 等边三角形 最坏情况(N^5) 序号 a b c 输出结果 1 50 50 1 等腰三角形 2 50 50 2 等腰三角形 3 50 50 99 等腰三角形 4 50 50 100 非三角形 5 50 50 0 Out of range! 6 50 50 101 Out of range! 7 50 1 50 等腰三角形 8 50 2 50 等腰三角形 9 50 99 50 等腰三角形 10 50 100 50 非三角形 11 50 0 50 Out of range! 12 50 101 50 Out of range! 13 1 50 50 等腰三角形 14 2 50 50 等腰三角形 15 99 50 50 等腰三角形 16 100 50 50 非三角形 17 0 50 50 Out of range! 18 101 50 50 Out of range! 19 50 50 50 等边三角形 20 1 1 100 非三角形 21 1 4 79 非三角形 22 50 3 100 非三角形 23 6 99 99 等腰三角形 24 47 100 99 不等边三角形 50 15 16 99 非三角形 最坏情况健壮性(7^N): 序号 a b c 输出结果 1 50 50 1 等腰三角形 2 50 50 2 等腰三角形 3 50 50 99 等腰三角形 4 50 50 100 非三角形 5 50 50 0 Out of range! 6 50 50 101 Out of range! 7 50 1 50 等腰三角形 8 50 2 50 等腰三角形 9 50 99 50 等腰三角形 10 50 100 50 非三角形 11 50 0 50 Out of range! 12 50 101 50 Out of range! 13 1 50 50 等腰三角形 14 2 50 50 等腰三角形 15 99 50 50 等腰三角形 16 100 50 50 非三角形 17 0 50 50 Out of range! 18 101 50 50 Out of range! 19 50 50 50 等边三角形 20 1 1 100 非三角形 21 1 4 79 非三角形 22 50 3 100 非三角形 23 6 99 99 等腰三角形 24 47 100 99 不等边三角形 50 15 16 99 非三角形 26 0 101 101 Out of range! 27 99 99 99 等边三角形
测试二: 边界性测试(4N+1): 序号 m d y 预期结果 1 6 15 1912 6.16.1912 2 6 15 1913 6.16.1913 3 6 15 2000 6.16.2000 4 6 15 2001 6.16.2001 5 6 1 2001 6.2.2001 6 6 2 2001 6.3.2001 7 6 30 2001 6.31.2001 8 6 31 2001 7.1.2001 9 1 15 2001 1.16.2001 10 2 15 2001 2.16.2001 11 11 15 2001 11.16.2001 12 12 15 2001 12.16.2001 13 6 15 2001 6.16.2001 健壮性测试(6N+1): 序号 m d y 预期结果 1 6 15 1912 6.16.1912 2 6 15 1913 6.16.1913 3 6 15 2000 6.16.2000 4 6 15 2001 6.16.2001 5 6 1 2001 6.2.2001 6 6 2 2001 6.3.2001 7 6 30 2001 6.31.2001 8 6 31 2001 7.1.2001 9 1 15 2001 1.16.2001 10 2 15 2001 2.16.2001 11 11 15 2001 11.16.2001 12 12 15 2001 12.16.2001 13 6 15 2001 6.16.2001 14 0 15 2001 out of range! 15 13 15 2001 out of range! 16 6 15 1911 out of range! 17 6 15 2050 out of range! 18 6 0 2001 out of range! 19 6 32 2001 out of range! 最坏情况(N^5): 序号 m d y 预期结果 1 6 15 1912 6.16.1912 2 6 15 1913 6.16.1913 3 6 15 2000 6.16.2000 4 6 15 2001 6.16.2001 5 6 1 2001 6.2.2001 6 6 2 2001 6.3.2001 7 6 30 2001 6.31.2001 8 6 31 2001 7.1.2001 9 1 15 2001 1.16.2001 10 2 15 2001 2.16.2001 11 11 15 2001 11.16.2001 12 12 15 2001 12.16.2001 13 6 15 2001 6.16.2001 14 0 15 2001 out of range! 15 13 15 2001 out of range! 16 6 15 1911 out of range! 17 6 15 2050 out of range! 18 6 0 2001 out of range! 19 6 32 2001 out of range! 20 2 31 1988 3.1.1988 21 4 14 1976 4.15.1976 22 13 6 2005 out of range! 23 4 17 1998 4.18.1998 最坏情况健壮性(N^7): 序号 m d y 预期结果 1 6 15 1912 6.16.1912 2 6 15 1913 6.16.1913 3 6 15 2000 6.16.2000 4 6 15 2001 6.16.2001 5 6 1 2001 6.2.2001 6 6 2 2001 6.3.2001 7 6 30 2001 6.31.2001 8 6 31 2001 7.1.2001 9 1 15 2001 1.16.2001 10 2 15 2001 2.16.2001 11 11 15 2001 11.16.2001 12 12 15 2001 12.16.2001 13 6 15 2001 6.16.2001 14 0 15 2001 out of range! 15 13 15 2001 out of range! 16 6 15 1911 out of range! 17 6 15 2050 out of range! 18 6 0 2001 out of range! 19 6 32 2001 out of range! 20 2 31 1988 3.1.1988 21 4 14 1976 4.15.1976 22 13 6 2005 out of range! 23 4 17 1998 4.18.1998 24 0 15 1999 out of range! 50 13 0 2004 out of range! 26 11 20 2010 11.21.2010 27 13 24 2023 out of range!
【测试结果及分析】 实验1:
本实验的条件较为完备,范围的设定合理,不会出现错误。 实验2:
本实验的范围设定有问题,如:6.30.2001的后一天应该是7.1.2001而不是6.31.2001.所以在设定数据范围时我们应该考虑现实情况。 【实验总结】 1.在具体进行测试时,边界性测试和健壮性测试都有不同的作用,随着测试复杂程度的提升,程序出错的可能性也就越小。 2.在设计数据范围时,要结合现实条件设计,比如第二个实验中没有考虑月份中的大小月以及闰年,在实际使用中就可能出现问题
|