软件测试NextDate函数决策表测试法实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的:
掌握黑盒测试中的决策表测试法,并对被测程序设计测试用例。
二、实验环境
操作系统:Windows XP + SP2 /win7
三、实验内容
1、编写一个NextDate函数。
2、掌握黑盒测试中的决策表测试法的基本步骤。
3、使用决策表法设计测试用例,对编写的函数实施测试,总结分析测试结果。
四、实验步骤
1、编写一个NextDate函数。
(C语言、C++)
2、根据黑盒测试的决策表测试法设计测试用例。
3、根据测试用例实施测试,并记录测试结果。
五、实验代码
#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){
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){
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<<"输入不可能的日期, 请输入正确的日期"<<"\n"; return 1;}
if(m==4|m==6|m==9|m==11&&d==31) {
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n"; return 1;}
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);
cout<<"Next date is"<<a<<"."<<b<<"."<<c<<"\n"<<"\n"; return 0;}}
//main函数
int main()
{while(1){
cout << "请输入正确格式的日期."<<"\n";
cout << "年份范围是1960-2060"<<"\n";
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函数求解给定某个日期的下一个日期的动作桩如下:
变量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=<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函数决策表
NxetDate函数的测试用例组
测试用例month day year 预期输出Test Case 1~3 9 16 2001 2001-9-17 Test Case 4 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 2 30 2004 不可能的输入日期
七、测试用例执行结果
1、Test Case 1~3
3、Test Case 5
4、Test Case 6~9
5、Test Case 10
6、Test Case 11~14
8、Test Case 16
9、Test Case 17
10、Test Case 18
11、Test Case 19
13、Test Case 21~22
八、实验总结
1、通过本次实验,学会编写一个NextDate函数。
2、掌握了黑盒测试中的决策表测试法的基本步骤
3、实验过程中遇到了问题,通过查找资料和与同学讨论,得到了解决。