GeeksforGeeks App
Open App
Browser
Continue

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 IDDayMonthYearExpected 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 IDDayMonthYearExpected 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.

My Personal Notes arrow_drop_up