一、实验目的:
掌握黑盒测试中的决策表测试法,并对被测程序设计测试用例。
二、实验环境
操作系统:Windows XP + SP2 /win7
三、实验内容
1、编写一个NextDate函数。
2、掌握黑盒测试中的决策表测试法的基本步骤。
3、使用决策表法设计测试用例,对编写的函数实施测试,总结分析测试结果。
实验步骤
1、编写一个NextDate函数。(C语言、C++)
2、根据黑盒测试的决策表测试法设计测试用例。
3、根据测试用例实施测试,并记录测试结果。
五、实验代码
#include
using namespace std;
int a,b,c,y,m,d;
//判断是否为闰年
bool Feb(int y){
if((2060-y)%4==0)
return 1;
else
return 0;}
//年份的累加
int NextYear(int y){
a=y+1;
if(a>2060)
{cout<
return 1;}
else
return a;}
//月份的累加
int NextMonth(int m){
b=m+1;
if(b==13){
b=1;
NextYear(y);}
return b;}
//天数的累加
int NextDay(int d){
c=d+1;
//大月满32天月份加1
if(c==32){
if(m==1|m==3|m==5|m==7|m==8|m==10|m==12)
{c=1;
NextMonth(m);}}
//小月满31天月份加1
if(c==31){
if(m==4|m==6|m==9|m==11)
{c=1;
NextMonth(m);}}
//若为闰年,2月满30天,月份加1
if(c==30){
if(Feb(y)&&m==2){
c=1;
b=3;}}
//若不是闰年,2月满29天,月份加1
if(c==29){
if(!Feb(y)&&m==2){
c=1;
b=3;}}
return c;}
//NextDate函数
int NextDate ( int y, int m, int d){
if (y<1900|y>2060|m<1|m>12|d<1|d>31){
cout<
return 1;}
if(m==4|m==6|m==9|m==11&&d==31) {
cout<
return 1;}
if(Feb(y)&&m==2&&d>29) {
cout<
return 1;}
if(!Feb(y)&&m==2&&d>28)
{cout<
return 1;}
else{
NextDay(d);
cout<
return 0;}}
//main函数
int main()
{while(1){
cout << "请输入正确格式的日期."<
cout << "年份范围是1960-2060"<
cout<
cin >>y;
cout<
cin>>m;
cout<
cin>>d;
a=y;
b=m;
c=d;
NextDate ( y, m, d);}
return 0;}
六、测试用例表
NxetDate函数求解给定某个日期的下一个日期的动作桩如下:
变量day加1操作;
变量day复位操作;
变量month加1操作;
变量month复位操作;
变量year加1操作
NxetDate函数的求解关键是日和月的问题,所以可以在下面的条件桩的基础上建立决策表
M1={month:month有30天};
M2={month:month有31天,12月除外};
M3={month:month是12月};
M4={month:month是2月};
D1={day:1=
D2={day:day=28};
D3={day:day=29};
D4={day:day=30};
D5={day:day=31};
Y1={year:year是闰年};
Y2={year:year不是闰年}
NxetDa