当前位置:文档之家› 等价类划分

等价类划分

黑盒测试
(一)实验目的
1.掌握用边界值方法设计测试用例和执行测试的过程;
2.掌握用等价划分方法设计测试用例和执行测试的过程;
(二)实验内容
测试“NextDate ”函数。

NextDate 返回输入日期后面的那个日期。

变量年、月、日都具有整数值,且满足如下条件:
C1: 1912≤年份≤2050
C2: 1≤月份≤12
C3: 1≤日期≤31
(三)实验步骤
用熟悉的语言(如C 语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。

参考源代码:
#include <stdio.h>
int nextDate(int year,int month,int day);
void main()
{
//int year, month,day;
nextDate(2051,12,30);
}
int nextDate(int year,int month,int day)
{
/*如果还有明天,返回1;
如果输入不合法,返回-1;
*/
switch (month)
{
case 1: case 3:case 5:case 7:case 8:case 10 :
if(day==31)
{
day=1;
month=month+1;
}
else
day=day+1;
break;
case 4:case 6:case 9:case 11:
if(day==30)
{
day=1;
month=month+1;
}
else
day=day+1;
break;
case 12:
if(day==31)
{
day=1;
month=1;
year=year+1;
if(year==2012)
printf("2012 is over");
}
else if(day<31)
{
day=day+1;
}
break;
case 2:
{
if(day==28)
if(((year%4==0 && year%100!=0) || year%400==0)) {
day=29;
}
else
{
day=1;
month=3;
}
else if(day==29)
{
day=1;
month=3;
}
else if(day<28)
{
day=day+1;
}
else
printf("二月没有%d 号!\n",day);
}
break;
default:
;
}
if(year>=1912&&year<=2050&&month<=12&&month>=1&&day<=31&&day>=1) {
printf("下一天是%d 年%d 月%d 日\n", year,month,day) ;
return 1;
}
else if(year<1912||year>2050)
{
printf("请输入指定值内的年\n");
}
else if(month>12||month<1)
{
printf("请输入指定值内的月\n");
}
else if(day>31||day<1)
《软件测试》指导书
4
{
printf("请输入指定值内的日\n");
}
return -1;
}
1.用边界值方法设计测试用例,填写测试用例表;
根据输入变量取值范围,给出健壮性测试用例:
C1: 1912≤年份≤2050
C2: 1≤月份≤12
C3: 1≤日期≤31
2.用等价类划分方法设计测试用例,填写测试用例表;
假设如下的等价类
M1={月份:每月有30 天}
M2={月份:每月有31 天}
M3={月份:此月是2 月}
D1={日期:1<=日期<=28}
D2={日期:日期=29}
D3={日期:日期=30}
D4={日期:日期=31}
Y1={年:年是2000} Y2={年:年是闰年} Y3={年:年是平年}
(三)实验小结。

相关主题