Systems Testing Logo

Checklist: Date Entry

The following edits, questions, and checks should be considered for all date fields. Be aware that many programming languages combine date and time into one data type.

Edit / Question Example
Required entry  
Century display 1850, 1999, 2001
Implied century Display last two digits of year (96,02). All dates are assumed to be between 1950 and 2049.
Date display format
  • mm-dd-yy (12/01/96)
  • mm-dd-ccyy (12/01/1996)
  • dd-mm-yy (01/12/96)
  • dd-mm-ccyy (01/12/1996)
  • dd-mmm-yy (01-Jan-96)
  • dd-mmm-ccyy (01-Jan-1996)
  • dd-mm (day and month only)
  • Complete date (December 1, 1996)
  • Date, abbreviated month (Dec 1, 1996)
  • Day included in date (Monday, November 7, 1996)
  • yymmdd (960105)
  • ccyymmdd (20011231)
  • No year, text month and day (May 30th)
  • Financial calculator (12.0196)
  • System format (provided through system)
Date separator
  • Slash (/), dash (-), Period (.), space
  • Enter separator fields
  • Move over separators
  • Automatic skip over separators
Leading zeros in day field 01, 02, 09 (12/05/96 vs 12/5/96)
Leading zeros in month field 01, 02, 09 (05/17/97 vs 5/17/97)
Abbreviate month name Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
Can day numbers exceed actual? May 32, Feb 30 (Accounting systems may use for adjusting transactions.)
Embedded spaces
  • No leading spaces
  • No trailing spaces
  • One space permitted after month and comma
Font attributes
  • Color
  • Italics
  • Bold
  • Size
  • Blink
  • Intensity
Leap year computations Any year number evenly divisible by 4, but not by 100, unless it is also divisible by 400.
  • 1996 leap year
  • 2000 leap year
  • 2004 leap year
  • 2100 not a leap year
Relational edits Compare hire date to birth date.
Use financial calendars
  • 30/360
  • 30 days per month, 360 days per year
  • Actual/360
  • actual days per month, 360 days per year
Entry mechanism
  • Display calendar
  • (+/-) to change day number
  • Function key / PF key
Default date
  • System date
  • Last date entered
  • Other date (order date, closing date, etc.)
Latest / earliest permissible date
  • Actual date
  • Computed date
Authorization / Security required
  • Add
  • Modify
  • Delete
  • View
Formats
  • Entry
  • Storage (date, or relative day number)
  • Print
  • Display
Null date
  • 00/00/00 zeros
  • bb/bb/bb spaces
Is the programming responsible for managing dates?  
Are autofill features utilized?  
Will the date field be used again elsewhere?  
Is this a standard date entry routine that is already tested?  
Are there other mechanisms to date stamp fields or records?  
Is the position of the date important?
  • On screen
  • In a report
Are other events triggered by this date?  
Permissible dates
  • Holiday
  • local, regional, national, international
  • Weekend
  • Specific day(s) of week
Is the Julian date required?  
Sorting requirements
  • Normal
  • Relative day number
  • Unusual
  • 9's compliment, yymmdd, ccyymmdd
Time zone issues  
Is system voice enabled for date entry?  
Is the date encrypted? Encryption technique
Testing Must entry dates correspond to dates in the test bed?
Risk factors What is the risk inherent in not entering the date correctly.
Edit date
  • On entry
  • When screen is complete
  • When record is complete
  • After other event
Are incomplete dates permissible?
  • 12/00/1996
  • 12/??/1996
  • 12/01/????
  • 12/01/??
Font
  • Acceptable fonts
  • Largest font size that will display properly
  • Default font
Correction Can erroneous dates be automatically corrected?
Error messages
  • Content
  • Placement
  • When displayed
  • Can processing continue with bad date?

Note the edits that are performed by the programming language, tests that should be handled during unit testing, and checks that should be done via integration or system testing.

Other issues:

  1. Can invalid dates be passed to this routine? Should they be accepted?
  2. Is there a standard date entry routine in the library?
  3. Can new date formats be easily added and edited?
  4. What is the source of the date: input documents, calendar on the wall, or field on another document?
  5. Are there other mechanisms to change dates outside of this program?
  6. Is this a date and time field?