等价类划分 下载本文

内容发布更新时间 : 2024/7/7 6:08:57星期一 下面是文章的全部内容请认真阅读。

黑盒测试

(一)实验目的

1.掌握用边界值方法设计测试用例和执行测试的过程; 2.掌握用等价划分方法设计测试用例和执行测试的过程; (二)实验内容

测试“NextDate”函数。NextDate返回输入日期后面的那个日期。变量年、月、日都 具有整数值,且满足如下条件: C1: 1912≤年份≤2050 C2: 1≤月份≤12 C3: 1≤日期≤31 (三)实验步骤

用熟悉的语言(如C 语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。参考源代码: #include

intnextDate(intyear,intmonth,int day); void main() {

//int year, month,day; nextDate(2051,12,30); }

intnextDate(intyear,intmonth,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(\}

else if(day<31) {

day=day+1; }

break; case 2: {

if(day==28)

if(((year%4==0 && year0!=0) || year@0==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\}

break; default: ; }

if(year>=1912&&year<=2050&&month<=12&&month>=1&&day<=31&&day>=1) {

printf(\下一天是%d 年%d 月%d 日\\n\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}