当前位置:文档之家› 软件考试NextDate函数决策表考试法实验报告

软件考试NextDate函数决策表考试法实验报告

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);}}
a=y+1;
if(a>2060)
{cout<<"下一个日期已经超出了范围."<<"/n";
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){
cout<<"年"<<"\n";
cin >>y;
cout<<"月"<<"\n";
cin>>m;
cout<<"日"<<"\n";
cin>>d;
a=y;
b=m;
c=d;
NextDate ( y, m, d);}
return 0;}
六、测试用例表
NxetDate函数求解给定某个日期的下一个日期的动作桩如下:
M4={month:month是2月};
D1={day:1=<day<=27};
D2={day:day=28};
D3={day:day=29};
D4={day:day=30};
D5={day:day=31};
Y1={year:year是闰年};
Y2={year:year不是闰年}
NxetDate函数决策表
if (y<1900|y>2060|m<1|m>12|d<1|d>31){
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
if(m==4|m==6|m==9|m==11&&d==31) {
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
选项
规则
1,2,3
4
5
6,7
8,9
10
11,12
13,14
0
21,22
条件
C1:month在
M1
M1
M1
M2
M2
M3
M3
M3
M4
M4
M4
M4
M4
C2:day在
D1,D2
D3
D4
D5
D1,D2
D3,D4
D5
D1,D2
D3,D4
D5
D1
D2
D2
D3
D3
D4
D5
C3:year在








Y1
Y2
Y1
三、实验内容
1、编写一个NextDate函数。
2、掌握黑盒测试中的决策表测试法的基本步骤。
3、使用决策表法设计测试用例,对编写的函数实施测试,总结分析测试结果。
4ห้องสมุดไป่ตู้实验步骤
1、编写一个NextDate函数。(C语言、C++)
2、根据黑盒测试的决策表测试法设计测试用例。
3、根据测试用例实施测试,并记录测试结果。
软件测试NextDate函数决策表测试法实验报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
一、实验目的:
掌握黑盒测试中的决策表测试法,并对被测程序设计测试用例。
二、实验环境
操作系统:Windows XP + SP2 /win7
9
30
2001
2001-10-01
Test Case 5
9
31
2001
不可能的输入日期
Test Case 6~9
1
16
2004
2004-1-17
Test Case 10
1
31
2001
2001-2-01
Test Case 11~14
12
16
2004
2004-12-16
Test Case 15
12
31
2001
2002-1-01
Test Case 16
16
2001
2001-1-17
Test Case 17
2
28
2004
2004-2-29
Test Case 18
2
28
2001
2001-3-01
Test Case 19
2
29
2004
2004-3-1
Test Case 20
2
29
2001
不可能的输入日期
Test Case 21~22
cout<<"Next date is"<<a<<"."<<b<<"."<<c<<"\n"<<"\n";
return 0;}}
//main函数
int main()
{while(1){
cout << "请输入正确格式的日期."<<"\n";
cout << "年份范围是1960-2060"<<"\n";
五、实验代码
#include <iostream>
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){
//若为闰年,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(Feb(y)&&m==2&&d>29) {
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
if(!Feb(y)&&m==2&&d>28)
{cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
else{
NextDay(d);
Y2

动作
A1:不可能



A2:day加1





A3:day复位





A4:month加1




A5:month复位

A6:year加1

NxetDate函数的测试用例组
测试用例
month
day
year
预期输出
Test Case 1~3
9
16
2001
2001-9-17
Test Case 4
变量day加1操作;
变量day复位操作;
变量month加1操作;
变量month复位操作;
变量year加1操作
NxetDate函数的求解关键是日和月的问题,所以可以在下面的条件桩的基础上建立决策表
M1={month:month有30天};
M2={month:month有31天,12月除外};
M3={month:month是12月};
相关主题