软件测试等价类法nextday(含源程序)
等价类划分法
输入条件有效类无效类
输入年份1900
Y>2100[3]
输入非int[4]
输入月份1<=M<=12[5] M<1[6]
M>12[7]
输入非int[8]
输入日期1<=D<=31[9]D<1[10]
D>31[11]
输入非int[12]
测试用例:
序号Y,M,D覆盖等价类预期输出12015,11,171,5,92015,11,1821800,5,62,5,9输入不合法32200,5,63,5,9输入不合法4R,5,64,5,9输入不合法52015,0,96,5,9输入不合法62015,13,291,7,9输入不合法72015,t,291,8,9输入不合法82015,7,01,5,10输入不合法92015,7,371,5,11输入不合法102015,7,p1,5,12输入不合法
边界值分析法
测试用例:
序号Y,M,D预期输出11900,6,151900,6,1521901,6,151901,6,1532100,6,152100,6,1542099,6,152099,6,1552000,1,152000,1,1562000,2,152000,2,1572000,11,152000,11,1582000,12,152000,12,1592000,6,12000,6,1102000,6,22000,6,2112000,6,302000,6,30122000,6,31输入不合法
错误推测法
测试用例:
序号Y,M,D预期输出12000,4,31输入不合法22000,2,292000,2,2932000,2,30输入不合法42001,2,29输入不合法52000,6,31输入不合法62000,9,31输入不合法72000,11,31输入不合法
VC6.0:
#include
void main()
{
int year=0,month=1,day=1;
printf("请分别输入年月日,以空格隔开。\n");
scanf("%d%d%d",&year,&month,&day);
if(year<1900||year>2100)
printf("输入不合法!\n");
printf("输入日期为%d年%d月%d日\n",year,month,day);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if(day!=31)
printf("下一天为%d年%d月%d日\n",year,month,++day);
else
printf("下一天为%d年%d月1日\n",year,++month);
break;
case 2:
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day>29)
{
printf("输入不合法!\n");
break;
}
if(day!=29)
printf("下一天为%d年%d月%d日\n",year,month,++day);
else
printf("下一天为%d年%d月1日\n",year,++month);
}
else
{
if(day>28)
{
printf("输入不合法!\n");
break;
}
if(day!=28)
printf("下一天为%d年%d月%d日\n",year,month,++day);
else
printf("下一天为%d年%d月1日\n",year,++month);
}
break;
case 4:
case 6:
case 9:
case 11:
if(day!=30)
printf("下一天为%d年%d月%d日\n",year,month,++day);
else