Equivalence Class Testing- Next date problem

Equivalence class testing (Equivalence class Partitioning) is a black-box testing technique used in software testing as a major step in the Software development life cycle (SDLC). This testing technique is better than many of the testing techniques like boundary value analysis, worst case testing, robust case testing and many more in terms of time consumption and terms of precision of the test cases. Since testing is done to identify possible risks, equivalence class testing performs better than the other techniques as the test cases generated using it are logically identified with partitions in between to create different input and output classes. This can be shown from the next-date problem which is stated below:

Given a day in the format of day-month-year, you need to find the next date for the given date. Perform boundary value analysis and equivalence-class testing for this.

Conditions :

D:  1<Day<31
M:  1<Month<12
Y:  1800 <Year <2048 

Boundary Value Analysis:

No. of test Cases (n = no. of variables) = 4n+1 = 4*3 +1 =13 

Test Cases:



Test Case ID Day Month Year Expected Output
1

1

6

2000

2-6-2000
2

2

6

2000

3-6-2000
3

15

6

2000

16-6-2000
4

30

6

2000

1-7-2000
5

31

6

2000

Invalid Date
6

15

1

2000

16-1-2000
7

15

2



2000

16-2-2000
8

15

11

2000

16-11-2000
9

15

12

2000

16-12-2000
10

15

6

1800

16-6-1800
11

15

6

1801

16-6-1801
12

15

6

2047

16-6-2047
13

15

6

2048

16-6-2048

Equivalence Class Testing:

Input classes:

Day:
D1: day between 1 to 28
D2: 29
D3: 30 
D4: 31
Month:
M1: Month has 30 days
M2: Month has 31 days
M3: Month is February
Year:
Y1: Year is a leap year
Y2: Year is a normal year 

Output Classes:

Increment Day
Reset Day and Increment Month
Increment Year
Invalid Date

Strong Normal Equivalence Class Test Cases:



Test Cases:

Test Case ID Day Month Year Expected Output
E1

15

4

2004

16-4-2004
E2

15

4

2003

16-4-2003
E3

15

1

2004

16-1-2004
E4

15

1

2003

16-1-2003
E5



15

2

2004

16-2-2004
E6

15

2

2003

16-2-2003
E7

29

4

2004

30-4-2004
E8

29

4

2003

30-4-2003
E9

29

1

2004

30-1-2004
E10

29

1

2003

30-1-2003
E11

29

2

2004

1-3-2004
E12

29

2

2003

Invalid Date
E13

30

4

2004

1-5-2004
E14

30

4

2003

1-5-2003
E15



30

1

2004

31-1-2004
E16

30

1

2003

31-1-2003
E17

30

2

2004

Invalid Date
E18

30

2

2003

Invalid Date
E19

31

4

2004

Invalid Date
E20

31

4

2003

Invalid Date
E21

31

1

2004

1-2-2004
E22

31

1

2003

1-5-2003
E23

31

2

2004

Invalid Date
E24

31

2

2003

Invalid Date

So from this problem it is clearly seen that equivalence class testing clearly checks for many cases that boundary value did not considered like that of February which has 28-29 days, leap year which lead to variation in number of days in February and many more.

Hence the above example proves that equivalence partitioning generates more efficient test cases that should be considered during risk assessment.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.