(a) Consider a very simple software program that takes a date (day, month, and year) as input and outputs the next day’s date. The requirements state that the valid input dates are between 1/1/1801 and 12/31/2000 and the valid output dates are between 1/2/1801 and 1/1/2001. Given this information, determine the equivalence classes from which to derive test cases for this problem – consider days of the month, months and years. Provide justification for your selection of the equivalence classes and any reasonable assumptions that you make (if any).
(b) Explain what happens in the following situations in relation to equivalence partitioning testing:
1) A tester thinks two classes are equivalent when they are not
2) A tester thinks two objects are different when they are not
Design a class known as Date that has integer data memberships to store month, day, year. The class must have three-parameter evasion constructor that allows the date to be set at the period a new Date object is shaped. If the user creates a Date thing without passing any arguments, or if slightly of the values passed are inacceptable, the default standards of 1, 1, 2001 (i.e January 1, 2001)should be rummage-sale. The class should have associate functions to print the date in the next format:
March 15, 1999
15 March 1999
Prove the class by writing a package that uses it.
The functions that container be used to create date standards include:
- date( ) revenues today’s date as a SAS date worth
- today( ) earnings today’s date as a SAS date value
- mdy(m,d,y) returns a SAS date value after the given month (m), day (d), then year (y) values
- datejul(juldate) adapts a Julian date (juldate) to a SAS date worth
- yyq(y, q) returns a SAS date price from the given year (y) and neighborhood (q) 1, 2, 3, or 4Input Validation: Only receive values between 1 and 12 for month, between 1 then 31 for days.
void set (int month, int day , int year);
The date( ) and today( ) purposes remain equivalent. That is, they together return the current date as clear as the date on which the SAS package is executed. You don’t need to place anything in amid the parentheses for persons two functions.