Useful Test Cases for testing User Interfaces
- Required Fields – If the screen requires data entry on a specific field, it is good practice to identify the required fields with a red asterisk and to give a friendly warning if the data is left blank.
- Data Type Errors – If the screen contains dates, numeric, currency or other specific data types, ensure that only valid data can be entered.
- Field Widths – If the screen contains text boxes that allow data entry, ensure that the width of data entered does not exceed the width of the table field (e.g. a title that allows 100 characters in the database should not allow more than 100 characters to be entered from the user interface).
- Onscreen Instructions – Any screen that is not self-explanatory to the casual user should contain onscreen instructions that aid the user.
- Keep Onscreen Instructions Brief – While onscreen instructions are great, keep the wording informative, in layman’s terms, but concise.
- Progress Bars - If the screen takes more than 5 seconds to render results, it should contain a progress bar so that the user understands the processing is continuing.
- Same Document Opened Multiple Times – If your application opens the same document multiple times, it should append a unique number to the open document to keep one document from overwriting another. For example, if your application opens a document named Minutes.txt, if it opens the same document for the same user again, consider having it append the time to the document or sequentially number it (Minutes2.txt or Minutes_032321.txt).
- Cosmetic Inconsistencies – The screen look, feel and design should match the other screens in your application. Creating and using a style guide is a great way to ensure consistency throughout your application.
- Abbreviation Inconsistencies – If your screens contain abbreviations (e.g. Nbr for number, Amt for amount, etc), the abbreviations should be consistent for all screens in your application. Again, the style guide is key for ensuring this.
- Save Confirmations - If your screen allows changing of data without saving, it should prompt you to save if you move to another record or screen.
- Delete Confirmations – If a person deletes an item, it is a good idea to confirm the delete. However, if your user interface allows deleting several records in a row, in some cases you might consider allowing them to ignore the confirmation as it might get frustrating to click the confirmation over and over again.
- Type ahead - If your user interface uses combo boxes (drop down lists), be sure to include type ahead (if you have hundreds of items in a list, if you type in the first letter it will skip to the first item that begins with that letter).
- Grammar and Spelling – Ensure that you have test cases that look for grammar or spelling errors.
- Table Scrolling – If your application lists information in table format, if the data in the table extends past one page, the scrolling should scroll the data but leave the table headers in tact.
- Error Logging - If fatal errors occur as users use your application, ensure that your applications writes those errors to a log file, event viewer or a database table for later review. Log the routine the error was in, the person logged on, and the date/time of the error.
- Error Messages - Ensure that error messages are informative, grammatically correct, and not condescending.
- Shortcuts - If your application allows short cut keys (like CTRL+S to save), test each shortcut to ensure it works in all different browsers (if the application is web based).
- Invalid Choices – Do not include instructions for choices not available at the time. For example, if a screen cannot be printed due to the state of the data, the screen should not have a Print button.
- Invalid Menu Items – Do not show menu items that are not available for the context you are currently in.
- Dialog Box Consistency – Use a style guide to document what choices are available for dialog boxes. You should have not have Save/Cancel dialog on one screen and an OK/Cancel on another, this is inconsistent.