Decision Table
| number_of_items |
total_cost |
delivery_time |
cost |
| <= 3 |
<= 100 |
NEXT_DAY |
25 |
| <=3 |
<= 100 |
SECOND_DAY |
10 |
| <= 3 |
<= 100 |
THIS_WEEK |
number_of_items * 1.50 |
| <= 3 |
> 100 |
NEXT_DAY |
35.00 |
| <= 3 |
> 100 |
SECOND_DAY |
15.00 |
| <= 3 |
> 100 |
THIS_WEEK |
10.00 |
| > 3 |
<= 100 |
NEXT_DAY |
number_of_items * 6.00 |
| > 3 |
<= 100 |
SECOND_DAY |
number_of_items * 2.50 |
| > 3 |
<= 100 |
THIS_WEEK |
0.00 |
| > 3 |
> 100 |
NEXT_DAY |
number_of_items * 7.50 |
| > 3 |
> 100 |
SECOND_DAY |
number_of_items * 3.50 |
| > 3 |
> 100 |
THIS_WEEK |
number_of_items * 2.50 |
time take to generate this : 14.20 min (including song selection 😜 )
Equivalance testing:
Input parameters:
- number of item
- Positive integers are the valid values.
- total cost
- Positive numbers are the valid values.
- delivery time
- NEXT_DAY , SECOND_DAY and THIS_WEEK are the valid values.
Equivalance partitions
| Input |
Partition Type |
Partition Condition |
Selected Value |
| number_of_items |
Valid |
<= 3 |
3 |
|
Valid |
> 3 |
4 |
|
Invalid |
<= 0 |
-1 |
| total_cost |
Valid |
<= 100 |
100 |
|
Valid |
> 100 |
101 |
|
Invalid |
< 0 |
-2 |
| delivery_time |
Valid |
NEXT_DAY, SECOND_DAY, THIS_WEEK |
SECOND_DAY |
|
Invalid |
Null or unsupported value |
null |
Test cases
| number_of_items |
total_cost |
delivery_time |
Partition Type |
Expected Outcome |
| 3 |
100 |
NEXT_DAY |
All Valid |
25.00 |
| 3 |
150 |
SECOND_DAY |
All Valid |
15.00 |
| 4 |
100 |
THIS_WEEK |
All Valid |
0.00 |
| 4 |
150 |
NEXT_DAY |
All Valid |
30.00 |
| -1 |
100 |
NEXT_DAY |
Invalid Items |
Exception |
| 3 |
-50 |
SECOND_DAY |
Invalid Cost |
Exception |
| 3 |
100 |
null |
Invalid Delivery |
Exception |
Boundary Value
| Input |
Boundaries |
| number_of_items |
-1 |
|
0 |
|
1 |
|
3 |
|
4 |
| total_cost |
-1 |
|
0 |
|
1 |
|
100 |
|
101 |
| delivery_time |
n/a |