GUI Testing Checklist
A checklist to help testers check gui screens
  
  CONTENTS:
1.1. Application 
1.2. For Each Window in the Application 
1.3. Text Boxes 
1.4. Option (Radio Buttons) 
1.5. Check Boxes 
1.6. Command Buttons 
1.7. Drop Down List Boxes 
1.8. Combo Boxes 
1.9. List Boxes
2.1. Aesthetic Conditions 
2.2. Validation Conditions 
2.3. Navigation Conditions 
2.4. Usability Conditions 
2.5. Data Integrity Conditions 
2.6. Modes (Editable Read-only) Conditions 
2.7. General Conditions 
2.8. Specific Field Tests 
       2.8.1. Date Field Checks 
       2.8.2. Numeric Fields 
       2.8.3. Alpha Field Checks
3.1. On every Screen 
3.2. Shortcut keys / Hot Keys 
3.3. Control Shortcut Keys
4.1. Document origin 
4.2. Sources of Inspiration & information 
4.3. Contacting the author. 
 
 
Section 1 - Windows Compliance Testing
1.1. Application
Start Application by Double Clicking on its ICON. The Loading message should show the application name, 
version number, and a bigger pictorial representation of the icon (a 'splash' screen). 
No Login is necessary 
The main window of the application should have the same caption as the caption of the icon in Program Manager. 
Closing the application should result in an "Are you Sure" message box 
Attempt to start application Twice 
This should not be allowed - you should be returned to main Window 
Try to start the application twice as it is loading. 
On each window, if the application is busy, then the hour glass should be displayed. If there is no hour glass 
(e.g. alpha access enquiries) then some enquiry in progress message should be displayed. 
All screens should have a Help button, F1 should work doing the same. 
  
  
1.2. For Each Window in the Application 
If Window has a Minimise Button, click it. 
Window Should return to an icon on the bottom of the screen 
This icon should correspond to the Original Icon under Program Manager. 
Double Click the Icon to return the Window to its original size. 
The window caption for every application should have the name of the application and the window name - 
especially the error messages. These should be checked for spelling, English and clarity , especially on the top 
of the screen. Check does the title of the window makes sense. 
  
If the screen has an Control menu, then use all ungreyed options. (see below) 
Check all text on window for Spelling/Tense and Grammar 
Use TAB to move focus around the Window. Use SHIFT+TAB to move focus backwards. 
Tab order should be left to right, and Up to Down within a group box on the screen. All controls 
should get focus - indicated by dotted box, or cursor. Tabbing to an entry field with text in it should highlight 
the entire text in the field. 
The text in the Micro Help line should change - Check for spelling, clarity and non-updateable etc. 
If a field is disabled (greyed) then it should not get focus. It should not be possible to select them with either 
the mouse or by using TAB. Try this for every greyed control. 
Never updateable fields should be displayed with black text on a grey background with a black label. 
All text should be left-justified, followed by a colon tight to it. 
In a field that may or may not be updateable, the label text and contents changes from black to grey depending 
on the current status. 
List boxes are always white background with black text whether they are disabled or not. All others are grey. 
In general, do not use goto screens, use gosub, i.e. if a button causes another screen to be displayed, the 
screen should not hide the first screen, with the exception of tab in 2.0 
When returning return to the first screen cleanly i.e. no other screens/applications should appear. 
In general, double-clicking is not essential. In general, everything can be done using both the mouse and 
the keyboard. 
All tab buttons should have a distinct letter. 
  
  
1.3. Text Boxes
Move the Mouse Cursor over all Enterable Text Boxes. Cursor should change from arrow to Insert Bar. 
If it doesn't then the text in the box should be grey or non-updateable. Refer to previous page. 
Enter text into Box 
Try to overflow the text by typing to many characters - should be stopped Check the field width with capitals W. 
Enter invalid characters - Letters in amount fields, try strange characters like + , - * etc. in All fields. 
SHIFT and Arrow should Select Characters. Selection should also be possible with mouse. Double Click should 
select all text in box. 
  
1.4. Option (Radio Buttons)
Left and Right arrows should move 'ON' Selection. So should Up and Down.. Select with mouse by clicking. 
  
1.5. Check Boxes
Clicking with the mouse on the box, or on the text should SET/UNSET the box. SPACE should do the same. 
  
 
  
  
1.6. Command Buttons
If Command Button leads to another Screen, and if the user can enter or change details on the other screen then 
the Text on the button should be followed by three dots. 
All Buttons except for OK and Cancel should have a letter Access to them. This is indicated by a letter underlined 
in the button text. The button should be activated by pressing ALT+Letter. Make sure there is no duplication. 
Click each button once with the mouse - This should activate 
Tab to each button - Press SPACE - This should activate 
Tab to each button - Press RETURN - This should activate 
The above are 
VERY IMPORTANT, and should be done for 
EVERY command Button. 
Tab to another type of control (not a command button). One button on the screen should be default (indicated by 
a thick black border). Pressing Return in ANY no command button control should activate it. 
If there is a Cancel Button on the screen , then pressing 
 should activate it. 
If pressing the Command button results in uncorrectable data e.g. closing an action step, there should be a message 
phrased positively with Yes/No answers where Yes results in the completion of the action. 
  
1.7. Drop Down List Boxes
Pressing the Arrow should give list of options. This List may be scrollable. You should not be able to type text 
in the box. 
Pressing a letter should bring you to the first item in the list with that start with that letter. Pressing ‘Ctrl - F4’ 
should open/drop down the list box. 
Spacing should be compatible with the existing windows spacing (word etc.). Items should be in alphabetical 
order with the exception of blank/none which is at the top or the bottom of the list box. 
Drop down with the item selected should be display the list with the selected item on the top. 
Make sure only one space appears, shouldn't have a blank line at the bottom. 
  
1.8. Combo Boxes
Should allow text to be entered. Clicking Arrow should allow user to choose from list 
  
1.9. List Boxes
Should allow a single selection to be chosen, by clicking with the mouse, or using the Up and Down Arrow keys. 
Pressing a letter should take you to the first item in the list starting with that letter. 
If there is a 'View' or 'Open' button beside the list box then double clicking on a line in the List Box, should act in the same way as selecting and item in the list box, then clicking the command button. 
Force the scroll bar to appear, make sure all the data can be seen in the box. 
  
    
 
  
  
Section 2 - Screen Validation Checklist
  
2.1. Aesthetic Conditions:
- Is the general screen      background the correct colour? 
- Are the field prompts the      correct colour? 
- Are the field backgrounds the      correct colour? 
- In read-only mode, are the      field prompts the correct colour? 
- In read-only mode, are the      field backgrounds the correct colour? 
- Are all the screen prompts      specified in the correct screen font? 
- Is the text in all fields      specified in the correct screen font? 
- Are all the field prompts      aligned perfectly on the screen? 
- Are all the field edit boxes      aligned perfectly on the screen? 
- Are all groupboxes aligned      correctly on the screen? 
- Should the screen be      resizable? 
- Should the screen be      minimisable? 
- Are all the field prompts      spelt correctly? 
- Are all character or      alpha-numeric fields left justified? This is the default unless otherwise      specified. 
- Are all numeric fields right      justified? This is the default unless otherwise specified. 
- Is all the microhelp text      spelt correctly on this screen? 
- Is all the error message text      spelt correctly on this screen? 
- Is all user input captured in      UPPER case or lower case consistently? 
- Where the database requires a      value (other than null) then this should be defaulted into fields. The 
 user must either enter an alternative valid value or leave the default      value intact.
- Assure that all windows have      a consistent look and feel. 
- Assure that all dialog boxes      have a consistent look and feel. 
  
2.2. Validation Conditions:
- Does a failure of validation      on every field cause a sensible user error message? 
- Is the user required to fix      entries which have failed validation tests? 
- Have any fields got multiple      validation rules and if so are all rules being applied? 
- If the user enters an invalid      value and clicks on the OK button (i.e. does not TAB off the field) is the      invalid entry identified and highlighted correctly with an error message.?      
- Is validation consistently      applied at screen level unless specifically required at field level? 
- For all numeric fields check      whether negative numbers can and should be able to be entered. 
- For all numeric fields check      the minimum and maximum values and also some mid-range values allowable? 
- For all      character/alphanumeric fields check the field to ensure that there is a      character limit specified and that this limit is exactly correct for the      specified database size? 
- Do all mandatory fields      require user input? 
- If any of the database      columns don't allow null values then the corresponding screen fields must      be mandatory. (If any field which initially was mandatory has become      optional then check whether null values are allowed in this field.) 
  
2.3. Navigation Conditions:
- Can the screen be accessed      correctly from the menu? 
- Can the screen be accessed      correctly from the toolbar? 
- Can the screen be accessed      correctly by double clicking on a list control on the previous screen? 
- Can all screens accessible      via buttons on this screen be accessed correctly? 
- Can all screens accessible by      double clicking on a list control be accessed correctly? 
- Is the screen modal. i.e. Is      the user prevented from accessing other functions when this screen is      active and is this correct? 
- Can a number of instances of      this screen be opened at the same time and is this correct? 
  
2.4. Usability Conditions:
- Are all the dropdowns on this      screen sorted correctly? Alphabetic sorting is the default unless otherwise      specified. 
- Is all date entry required in      the correct format? 
- Have all pushbuttons on the      screen been given appropriate Shortcut keys? 
- Do the Shortcut keys work      correctly? 
- Have the menu options which      apply to your screen got fast keys associated and should they have? 
- Does the Tab Order specified      on the screen go in sequence from Top Left to bottom right? This is the      default unless otherwise specified. 
- Are all read-only fields      avoided in the TAB sequence? 
- Are all disabled fields      avoided in the TAB sequence? 
- Can the cursor be placed in      the microhelp text box by clicking on the text box with the mouse? 
- Can the cursor be placed in      read-only fields by clicking in the field with the mouse? 
- Is the cursor positioned in      the first input field or control when the screen is opened? 
- Is there a default button      specified on the screen? 
- Does the default button work      correctly? 
- When an error message occurs      does the focus return to the field in error when the user cancels it? 
- When the user Alt+Tab's to      another application does this have any impact on the screen upon return to      The application? 
- Do all the fields edit boxes      indicate the number of characters they will hold by there length? e.g. a      30 character field should be a lot longer 
  
2.5. Data Integrity Conditions:
- Is the data saved when the      window is closed by double clicking on the close box? 
- Check the maximum field      lengths to ensure that there are no truncated characters? 
- Where the database requires a      value (other than null) then this should be defaulted into fields. The      user must either enter an alternative valid value or leave the default      value intact. 
- Check maximum and minimum      field values for numeric fields? 
- If numeric fields accept      negative values can these be stored correctly on the database and does it      make sense for the field to accept negative numbers? 
- If a set of radio buttons      represent a fixed set of values such as A, B and C then what happens if a      blank value is retrieved from the database? (In some situations rows can      be created on the database by other functions which are not screen based      and thus the required initial values can be incorrect.) 
- If a particular set of data      is saved to the database check that each value gets saved fully to the      database. i.e. Beware of truncation (of strings) and rounding of numeric      values. 
  
2.6. Modes (Editable Read-only) Conditions:
- Are the screen and field      colours adjusted correctly for read-only mode? 
- Should a read-only mode be      provided for this screen? 
- Are all fields and controls      disabled in read-only mode? 
- Can the screen be accessed      from the previous screen/menu/toolbar in read-only mode? 
- Can all screens available      from this screen be accessed in read-only mode? 
- Check that no validation is      performed in read-only mode. 
  
2.7. General Conditions:
- Assure the existence of the      "Help" menu. 
- Assure that the proper      commands and options are in each menu. 
- Assure that all buttons on      all tool bars have a corresponding key commands. 
- Assure that each menu command      has an alternative(hot-key) key sequence which will invoke it where      appropriate. 
- In drop down list boxes,      ensure that the names are not abbreviations / cut short 
- In drop down list boxes,      assure that the list and each entry in the list can be accessed via      appropriate key / hot key combinations. 
- Ensure that duplicate hot      keys do not exist on each screen 
- Ensure the proper usage of      the escape key (which is to undo any changes that have been made) and      generates a caution message "Changes will be lost - Continue      yes/no" 
- Assure that the cancel button      functions the same as the escape key. 
- Assure that the Cancel button      operates as a Close button when changes have be made that cannot be      undone. 
- Assure that only command      buttons which are used by a particular window, or in a particular dialog      box, are present. - i.e make sure they don't work on the screen behind the      current screen. 
- When a command button is used      sometimes and not at other times, assure that it is grayed out when it      should not be used. 
- Assure that OK and Cancel      buttons are grouped separately from other command buttons. 
- Assure that command button      names are not abbreviations. 
- Assure that all field      labels/names are not technical labels, but rather are names meaningful to      system users. 
- Assure that command buttons      are all of similar size and shape, and same font & font size. 
- Assure that each command      button can be accessed via a hot key combination. 
- Assure that command buttons      in the same window/dialog box do not have duplicate hot keys. 
- Assure that each      window/dialog box has a clearly marked default value (command button, or      other object) which is invoked when the Enter key is pressed - and NOT the      Cancel or Close button 
- Assure that focus is set to      an object/button which makes sense according to the function of the      window/dialog box. 
- Assure that all option      buttons (and radio buttons) names are not abbreviations. 
- Assure that option button      names are not technical labels, but rather are names meaningful to system      users. 
- If hot keys are used to      access option buttons, assure that duplicate hot keys do not exist in the      same window/dialog box. 
- Assure that option box names      are not abbreviations. 
- Assure that option boxes,      option buttons, and command buttons are logically grouped together in      clearly demarcated areas "Group Box" 
- Assure that the Tab key      sequence which traverses the screens does so in a logical way. 
- Assure consistency of mouse      actions across windows. 
- Assure that the color red is      not used to highlight active objects (many individuals are red-green color      blind). 
- Assure that the user will      have control of the desktop with respect to general color and highlighting      (the application should not dictate the desktop background      characteristics). 
- Assure that the screen/window      does not have a cluttered appearance 
- Ctrl + F6 opens next tab      within tabbed window 
- Shift + Ctrl + F6 opens      previous tab within tabbed window 
- Tabbing will open next tab      within tabbed window if on last field of current tab 
- Tabbing will go onto the      'Continue' button if on last field of last tab within tabbed window 
- Tabbing will go onto the next      editable field in the window 
- Banner style & size &      display exact same as existing windows 
- If 8 or less options in a      list box, display all options on open of list box - should be no need to      scroll 
- Errors on continue will cause      user to be returned to the tab and the focus should be on the field      causing the error. (i.e the tab is opened, highlighting the field with the      error on it) 
- Pressing continue while on      the first tab of a tabbed window (assuming all fields filled correctly)      will not open all the tabs. 
- On open of tab focus will be      on first editable field 
- All fonts to be the same 
- Alt+F4 will close the tabbed      window and return you to main screen or previous screen (as appropriate),      generating "changes will be lost" message if necessary. 
- Microhelp text for every      enabled field & button 
- Ensure all fields are      disabled in read-only mode 
- Progress messages on load of      tabbed screens 
- Return operates continue 
- If retrieve on load of tabbed      window fails window should not open 
  
2.8. Specific Field Tests
  
2.8.1. Date Field Checks
- Assure that leap years are      validated correctly & do not cause errors/miscalculations 
- Assure that month code 00 and      13 are validated correctly & do not cause errors/miscalculations 
- Assure that 00 and 13 are reported      as errors 
- Assure that day values 00 and      32 are validated correctly & do not cause errors/miscalculations 
- Assure that Feb. 28, 29, 30      are validated correctly & do not cause errors/ miscalculations 
- Assure that Feb. 30 is      reported as an error 
- Assure that century change is      validated correctly & does not cause errors/ miscalculations 
- Assure that out of cycle      dates are validated correctly & do not cause errors/miscalculations 
  
2.8.2. Numeric Fields
- Assure that lowest and      highest values are handled correctly 
- Assure that invalid values      are logged and reported 
- Assure that valid values are      handles by the correct procedure 
- Assure that numeric fields      with a blank in position 1 are processed or reported as an error 
- Assure that fields with a      blank in the last position are processed or reported as an error an error 
- Assure that both + and -      values are correctly processed 
- Assure that division by zero      does not occur 
- Include value zero in all      calculations 
- Include at least one in-range      value 
- Include maximum and minimum      range values 
- Include out of range values      above the maximum and below the minimum 
- Assure that upper and lower      values in ranges are handled correctly 
  
2.8.3. Alpha Field Checks
- Use blank and non-blank data      
- Include lowest and highest      values 
- Include invalid characters      & symbols 
- Include valid characters 
- Include data items with      first position blank 
- Include data items with last      position blank 
  
  
 
  
  Section 3 - Validation Testing - Standard Actions
3.1. Examples of Standard Actions - Substitute your specific commands
Add 
View 
Change 
Delete 
Continue - (i.e. continue saving changes or additions)
Add 
View 
Change 
Delete 
Cancel - (i.e. abandon changes or additions)
Fill each field - Valid data 
Fill each field - Invalid data 
Different Check Box / Radio Box combinations 
Scroll Lists / Drop Down List Boxes 
Help 
Fill Lists and Scroll 
Tab 
Tab Sequence 
Shift Tab 
3.2. Shortcut keys / Hot Keys 
Note: The following keys are used in some windows applications, and are included as a guide. 
  
   | Key | No Modifier | Shift | CTRL | ALT | 
   | F1 | Help | Enter Help Mode | n\a | n\a | 
   | F2 | n\a | n\a | n\a | n\a | 
   | F3 | n\a | n\a | n\a | n\a | 
   | F4 | n\a | n\a | Close Document / Child window. | Close Application. | 
   | F5 | n\a | n\a | n\a | n\a | 
   | F6 | n\a | n\a | n\a | n\a | 
   | F7 | n\a | n\a | n\a | n\a | 
   | F8 | Toggle extend mode, if supported. | Toggle Add mode, if supported. | n\a | n\a | 
   | F9 | n\a | n\a | n\a | n\a | 
   | F10 | Toggle menu bar activation. | n\a | n\a | n\a | 
   | F11, F12 | n\a | n\a | n\a | n\a | 
   | Tab | Move to next active/editable field.  | Move to previous active/editable field.  | Move to next open Document or Child window. (Adding SHIFT   reverses the order of movement). | Switch to previously used application. (Holding down the   ALT key displays all open applications). | 
   | Alt | Puts focus on first menu command (e.g. 'File'). | n\a | n\a | n\a | 
  3.3. Control Shortcut Keys
 
3.3. Control Shortcut Keys 
  
   | Key | Function | 
   | CTRL + Z | Undo | 
   | CTRL + X | Cut | 
   | CTRL + C | Copy | 
   | CTRL + V | Paste | 
   | CTRL + N | New | 
   | CTRL + O | Open | 
   | CTRL + P | Print | 
   | CTRL + S | Save | 
   | CTRL + B | Bold* | 
   | CTRL + I | Italic* | 
   | CTRL + U | Underline* | 
* These shortcuts are suggested for text formatting applications, in the context for 
which they make sense. Applications may use other modifiers for these operations. 
  
  4. Origin & Inspiration
I first conceived this checklist for training testers who were going to be working on a new PowerBuilder 
application (on a Windows for Workgroups platform) to be used in the initial screen validation testing phase. 
The initial input for the list came from a site I found on the web, 
(see below) the remainder of the 
checklist I made up from internal & external design standards, and experience gained over the last few 
years working in QA. 
A long ago I replied to a query (on comp.software.testing) regarding gui/client-server testing and when I 
mentioned this checklist I got quite a few requests for copies, and as a result I decided to publish it on the 
web. I hope it can be of some use to you, and if you have any suggestions - or if anyone wants to update 
this to Win95/98/NT/XP standards (or even Mac) I'd love if they'd send me a copy !