Here’re the fields and respective input values against which the Date to Day convertor can be tested (left-side-table):
Month | Day | Year | Month | Day | Year | |||
1 | 1 | 2010 | 2 | 28 | 2010 | |||
2 | 2 | 2011 | 4 | 29 | 2011 | |||
3 | 3 | 2012 | 12 | 30 | 2012 | |||
4 | 4 | 31 | ||||||
5 | 5 | |||||||
6 | 6 | |||||||
7 | 7 | |||||||
8 | 8 | |||||||
9 | 9 | |||||||
10 | 10 | |||||||
11 | 11 | |||||||
12 | 12 | |||||||
13 | ||||||||
14 | ||||||||
15 | ||||||||
16 | ||||||||
17 | ||||||||
18 | ||||||||
19 | ||||||||
20 | ||||||||
21 | ||||||||
22 | ||||||||
23 | ||||||||
24 | ||||||||
25 | ||||||||
26 | ||||||||
27 | ||||||||
28 | ||||||||
29 | ||||||||
30 | ||||||||
31 |
However, to break the software, a smaller set of values is sufficient enough!
We can apply Boundary Value Analysis method at the upper end of days range to consider:
- 1 case of a month having max 30 days
- 1 case of a month having max 31 days
- 2 cases for the month of February (max 28, 29 days)
Thus, our set of values reduces to the second table shown above. Here we have randomly picked months 4, 12 and 2 respectively.
Let’s take a closer look!
To consider both positive and negative test scenarios, we consider:
- An even numbered year (2010)
- An odd numbered year(2011)
- A leap year(2012)
Now even this reduced set of values for Year, Month and Days of Month can lead to an overwhelming set when we consider the possible combinations that can be used to input data in the form. The number would be
= (Number of Month Values) * (Number of Year Values) * (Number of Day Value)
= 3 * 3 * 4
= 36
However, there’s a more efficient scientific technique available!
So, let’s feed the reduced set of data to the All Pairs program from satisfice.com
Here’s the raw set of test cases derived by the program:
Month | Day | Year |
2 | 28 | 2010 |
4 | 28 | 2011 |
12 | 28 | 2012 |
2 | 29 | 2011 |
4 | 29 | 2010 |
12 | 29 | 2010 |
2 | 30 | 2012 |
4 | 30 | 2010 |
12 | 30 | 2011 |
4 | 31 | 2012 |
2 | 31 | 2010 |
12 | 31 | 2011 |
~2 | 29 | 2012 |
Categorize it:
Test generation method | Month | Day | Year | Test type |
Program generated | 2 | 28 | 2010 | +ive |
Program generated | 4 | 28 | 2011 | not required |
Program generated | 12 | 28 | 2012 | not required |
Program generated | 2 | 29 | 2011 | -ve |
Program generated | 4 | 29 | 2010 | not required |
Program generated | 12 | 29 | 2010 | not required |
Program generated | 2 | 30 | 2012 | -ve |
Program generated | 4 | 30 | 2010 | +ve |
Program generated | 12 | 30 | 2011 | not required |
Program generated | 4 | 31 | 2012 | -ve |
Program generated | 2 | 31 | 2010 | -ve |
Program generated | 12 | 31 | 2011 | +ve |
Program generated | ~2 | 29 | 2012 | consider as additional case for Month value 2 only |
Additional cases | 2 | 29 | 2012 | +ve |
Filter it:
Test generation method | Month | Day | Year | Test type |
Program generated | 2 | 28 | 2010 | +ive |
Program generated | 2 | 29 | 2011 | -ve |
Program generated | 2 | 30 | 2012 | -ve |
Program generated | 4 | 30 | 2010 | +ve |
Program generated | 4 | 31 | 2012 | -ve |
Program generated | 2 | 31 | 2010 | -ve |
Program generated | 12 | 31 | 2011 | +ve |
Additional cases | 2 | 29 | 2012 | +ve |
Execute these and report the bugs!
Comments
Post a Comment