Design the test cases and test the program of Previous Date problem by using Boundary Value Analysis

In this, we will test our program to check whether it can give the previous date as an output or not. We are supposing interval [2000,2050]  for year, [1,31] days for date, [1,12] for month. If we observe closely, we require to figure out whether the year input is a leap year or not between the selected year interval.

We will be applying Boundary Value Analysis to generate test cases.  The expected output can be  [Invalid date, previous Date].

Program:

#include<conio.h>
#include<stdio.h>
void main()
{
	int month,date,year, valid=-1,leap_year=-1;
	printf("please enter a date = ");
	scanf("%d",&date);
		printf("please enter a month = ");
	scanf("%d",&month);
		printf("please enter a year = ");
	scanf("%d",&year);
	if((date>0 && date<=31)&&(month>=1 && month<=12)&&(year>=2000 && year<=2050))
	{
	// finding given input is a leap year or not
	if((year%4)==0)
	{
		leap_year=1;
    if((year%100)==0)
    {
	if((year%400)==0)
	{
		leap_year=1;	
	}
	else
	{
	leap_year=-1;	
	}
}
}
if(month==2 && leap_year==1 && date >29)
valid=-1;
else if(month==2 && leap_year==-1 && date >28)
valid=-1;
else 
valid=1;
}

if((month==6 || month==4||month==9||month==11) && date>30)
valid=-1;

// validating & finding output


if(valid==1)
{
	printf("Entered date = %d-%d-%d",date,month,year);

if(date==1)
{
if(month==1)
{
date=31;
month=12;
year--;
}
else if(leap_year=1 && month==3)
{
	date=29;
	month--;
}
else if(leap_year==-1 && month==3)
{
	date=28;
	month--;
}
else if(month==2||month==4||month==6||month==8||month==9||month==11){
	date=31;
	month--;
}else{
	date=30;
	month--;
}
}
else{
	
	date--;
}
printf("\nPrevious date = %d-%d-%d \n",date,month,year);
}
else
printf("\n Not a valid date");

getch();
}

So, there will be 4N+ 1 test cases that is 4*3 +1 =13 in this case as we are using boundary value analysis.

Test IDDateMonthYearExpected OutputProgram OutputTest Outcome
116202531-5-202531-5-2025Pass
22620251-6-20151-6-2015Pass
3306202529-6-201529-6-2015Pass
43162025Invalid DateInvalid DatePass
5151202514-1-202514-1-2025Pass
6152202514-2-202514-2-2025Pass
71511202514-11-202514-11-2025Pass
81512202514-12-202514-12-2025Pass
9156200014-6-200014-6-2000Pass
10156200114-2-200114-2-2001Pass
11156204914-6-204914-6-2049Pass
12156205014-6-205014-6-2050Pass
13156202514-6-202514-6-2025Pass

Testing the program:

Invalid Date:

previous date

Previous Date:

previous date 1

Leave a Reply