- Published on
Bugs that should never have been missed by developers
- Authors
- Written by :
- Name
- Aashish Dhawan
Overview
When developers finish their work and submit builds to testers or designers, they start to get a lot of objections from QA and designers on small things like spacing, error messaging, alignment, text sizes etc. This is because they are not aware of the small things that can make a big difference in the user experience. This not only wastes their time but QA also start to focus on minor things rather than testing the actual workflows of application. If few things can be taken care at develooper's end before giving builds to testers, a lot of time can be saved. This article is a list of things that should never have been missed by developers.
- General Checks
- GUI and Aesthetics Checks
- Filter and Search Result feature Checks
- Windows size and resizing Checks
- Database Checks
- Image (or file) upload Checks
- Sending emails feature checks
- Export to Excel feature checks
- Performance checks
- Security Checks
- IMAGE Loading Checks
- LINKS and navigation Checks
- UI AND FONTS Checks
- Error Messages Checks
- TEXT and FORM FIELDS Checks
General Checks
- All mandatory
fields should be validated
and indicated by an asterisk (*) symbol or as per design guidelines it should reflect which is optional and which is required. - If presented, tooltips text should be meaningful.
- Drop-down fields should have the first entry as blank (to unselect if needed) or text like ‘Select'.
Delete functionality
for any record on a page should ask for a confirmation.- Amount values should be displayed with correct currency symbols.
- Default
page sorting
should be provided whenever applicable. - Reset button functionality should set default values for all fields. If applicable.
- All numeric values should be formatted properly with comma etc
- Input fields should be checked for the
max field value
. Input values greater than specified max limit should not be accepted or stored in the database. - Check all input fields for special characters.
- Field labels should be standard e.g. field accepting user's first name should be labeled properly as ‘First Name'.
- Check page sorting functionality after add/edit/delete operations on any record.
- Application crash or unavailable pages should be redirected to the error page or at least user centric error message should have been presented.
- Check numeric input fields with character input values. Proper validation message should appear.
- Check for negative numbers if allowed for numeric fields.
- Check amount fields with decimal number values. Allow only 2 digits after decimal.
- The user should not be able to submit page twice by pressing submit button in quick succession.
Divide by zero errors
should be handled for any calculations.- First letter should be capital whenever required, specially names, Sentence first word etc
- Zip code should be valid 5 digit or depending on your country code.
GUI and Aesthetics Checks
- All fields on a page (e.g. text box, radio options, drop-down lists) should be aligned properly.
- Numeric values should be justified correctly unless specified otherwise.
Consistent space
should be provided between field labels, columns, rows, error messages etc.- The scrollbar should be enabled only when necessary.
- Font size, style, and color for headline, description text, labels, infield data, and grid info should be
standard as specified in design system
. - Description text box should be multi-lined.
- Disabled fields should be greyed out and users should not be able to set focus on these fields.
- Upon click of an input text field, mouse arrow pointer should get changed to the cursor.
- The user should not be able to type in drop down select lists.
- Information filled by users should remain intact when there is an error message on page submit. The user should be able to submit the form again by correcting the errors.
- Check if proper field labels are used in error messages.
- Drop-down field values should be displayed in a
defined sort order
. - Tab and Shift+Tab order should work properly.
- Default radio options should be
pre-selected
on the page load. - Field-specific and page level help messages should be available.
- Check if the correct fields are highlighted in case of errors.
- Check if the drop-down list options are readable and not truncated due to field size limit.
- All buttons on a page should be accessible by keyboard shortcuts and the user should be able to perform all operations using a keyboard. This is especially important for users with disabilities who cannot use a mouse.
- Check all pages for broken images.
- Check all pages for broken links.
- All pages should have a title.
Confirmation messages
should be displayed before performing any update or delete operation.- Hourglass/loading should be displayed when the application is busy.
- Page text should be left justified.
- The user should be able to select only one radio option and any combination for checkboxes.
- Every where when server takes time to respond, loader shoould be present and handled properly
Filter and Search Result feature Checks
- The user should be able to filter results using all parameters on the page.
- Refine search functionality should load the search page with all user-selected search parameters.
- When there is at least one filter criteria required to perform the search operation, make sure proper error message is displayed when the user submits the page without selecting any filter criteria.
- When at least one filter criteria selection is not compulsory, the user should be able to submit the page and the default search criteria should get used to query results.
- Proper validation messages should be displayed for all invalid values for filter criteria.
- Page loading symbol should be displayed when it's taking more than default time to load the result page.
- Check if all the search parameters are used to fetch data shown on the result grid.
- The total number of results should be displayed in the result grid.
- Search criteria used for searching should be displayed in the result grid.
- Result grid values should be sorted by default column.
- Sorted columns should be displayed with a
sort icon
. - Result grids should include all the specified columns with correct values.
- Ascending and descending sorting functionality should work for columns supported by data sorting.
- Result grids should be displayed with proper column and row spacing.
Pagination
should be enabled when there are more results than the default result count per page.- Check for Next, Previous, First and Last page pagination functionality.
- Duplicate records should not be displayed in the result grid.
- Check if all the columns are visible and horizontal scrollbar is enabled if necessary.
- Check the data for dynamic columns (columns whose values are calculated dynamically based on the other column values).
- For result grids showing reports, check
Total row
and verify the total for every column. - For result grids showing reports, check
Total row
data when pagination is enabled and the user gets navigated to the next page. - Check if proper symbols are used for displaying column values e.g. % symbol should be displayed for percentage calculation.
- Check result grid data to know if the date range is enabled.
Windows size and resizing Checks
- Check if default window size is correct.
- Check if child window size is correct.
- Check if there is any field on the page with default focus (in general, the focus should be set on the first input field of the screen).
- Check if child windows are getting closed on closing parent/opener window.
- If the child window is opened, the user should not be able to use or update any field in the background or parent window
- Check window minimize, maximize, and close functionality.
- Check if the window is re-sizable.
- Check scroll bar functionality for parent and child windows.
- Check cancel button functionality for the child window.
Database Checks
- Check if correct data is getting saved in the database upon successful page submit.
- Check values for columns which are not accepting null values.
- Check for data integrity. Data should be stored in single or multiple tables based on the design.
- Index names should be given as per the standards e.g.
IND_<Tablename>_<ColumnName>
- Tables should have a primary key column.
- Table columns should have description information available (except for audit columns like created date, created by etc.)
- For every database add/update operation log should be added.
- Required
table indexes
should be created. - Check if data is committed to the database only when the operation is successfully completed.
- Data should be rolled back in case of failed transactions.
- Database name should be given as per the application type i.e. test, UAT, sandbox, live (though this is not a standard it is helpful for database maintenance)
- Database logical names should be given according to the database name (again this is not standard but helpful for DB maintenance).
- Stored procedures should not be named with a prefix “sp_”
- Check if values for table audit columns (like created date, created by, updated, updated by, is deleted, deleted data, deleted by etc.) are populated properly.
- Check if input data is not truncated while saving. Field length shown to the user on the page and in database schema should be the same.
- Check numeric fields with minimum, maximum, and float values.
- Check numeric fields with negative values (for both acceptance and non-acceptance).
- Check if radio button and drop-down list options are saved correctly in the database.
- Check if the database fields are designed with the correct data type and data length.
- Check if all the
table constraints
like a Primary key, Foreign key etc. are implemented correctly. - Test stored procedures and triggers with sample input data.
- Input field leading and trailing spaces should be truncated before committing data to the database.
- Null values should not be allowed for the Primary key column.
Image (or file) upload Checks
- Check for uploaded image path.
- Check image upload and change functionality.
- Check image upload functionality with image files of different extensions (e.g. JPEG, PNG, BMP etc.)
- Check image upload functionality with images having space or any other allowed special character in the file name.
- Check duplicate name image upload.
- Check image upload with
image size greater than the max allowed size
. The Proper error message should be displayed. - Check image upload functionality with file types other than images (e.g. txt, doc, pdf, exe etc.). A proper error message should be displayed.
- Check if images of specified height and width (if defined) are accepted otherwise rejected.
- The image upload progress bar should appear for large size images.
- Check if cancel button functionality is working in between upload process.
- Check if file selection dialog shows only supported files listed.
- Check multiple images upload functionality.
- Check
image quality
after upload. Image quality should not be changed after upload. Unless needed. - Check if the user is able to use/view the uploaded images.
Sending emails feature checks
- Email template should use standard CSS for all emails.
- Email addresses should be validated before sending emails.
- Special characters in the email body template should be handled properly.
- Language specific characters (e.g. Russian, Chinese or German language characters) should be handled properly in the email body template.
- Email subject should not be blank.
- Placeholder fields used in the email template should be replaced with actual values e.g.
FirstName
,LastName
should be replaced with individuals first and last name properly for all the recipients. - If reports with
dynamic values
are included in the email body and report data should be calculated correctly. - Email sender name should not be blank.
- Emails should be checked in different email clients like Outlook, Gmail, Hotmail, Yahoo! mail etc.
- Check to send email functionality using TO, CC and BCC fields.
- Check plain text emails.
- Check HTML format emails.
- Check email header and footer for company logo, privacy policy and other links.
- Check emails with
attachments
. - Check to send email functionality to single, multiple or distribution list recipients.
- Check if a reply to email address is correct.
- Check to send the high volume of emails.
Export to Excel feature checks
- The file should get exported in the proper file extension.
- The file name for the exported Excel file should be as per the standards e.g. if the file name is using the timestamp, it should get replaced properly with an actual timestamp at the time of exporting the file.
- Check for date format if exported Excel file contains the date columns.
- Check number formatting for numeric or currency values. Formatting should be the same as shown on the page.
- The exported file should have columns with proper column names.
- Default page sorting should be carried in the exported file as well.
- Excel file data should be formatted properly with header and footer text, date, page numbers etc. values for all pages.
- Check if the data displayed on a page and exported Excel file is the same.
- Check export functionality when pagination is enabled.
- Check if the export button is showing proper icon according to the exported file type E.g. Excel file icon for xls files
- Check export functionality for files with a very large size.
- Check export functionality for pages containing special characters. Check if these special characters are exported properly in the Excel file.
Performance checks
- Check if the page load time is within the acceptable range.
- Check the page load on slow connections.
- Check the response time for any action under a light, normal, moderate, and heavy load conditions.
- Check performance of
database stored procedures and triggers
. - Check the database query execution time.
- Check for load testing of the application.
- Check for stress testing of the application.
- Check CPU and memory usage under peak load condition.
Security Checks
- Check for
SQL injection attacks
. - Secure pages should use the HTTPS protocol.
- Page crash should not reveal application or server info. Error page should be displayed for this.
- Escape special characters in the input.
- Error messages should not reveal any sensitive information.
- All credentials should be transferred over an encrypted channel.
- Test password security and password policy enforcement.
- Check application logout functionality.
- Check for Brute Force Attacks.
- Cookie information should be stored in encrypted format only.
- Check session cookie duration and session termination after timeout or logout.
- Session tokens should be transmitted over a secured channel.
- The password should not be stored in cookies.
- Test for Denial of Service attacks.
- Test for memory leakage.
- Test unauthorized application access by manipulating variable values in the browser address bar.
- Test file extension handing so that exe files are not uploaded and executed on the server.
- Sensitive fields like passwords and credit card information should not have to autocomplete enabled.
- File upload functionality should use file type restrictions and also anti-virus for scanning uploaded files.
- Check if directory listing is prohibited.
- Password and other sensitive fields should be masked while typing.
- Check if forgot password functionality is secured with features like temporary password expiry after specified hours and security question is asked before changing or requesting a new password.
- Verify CAPTCHA functionality.
- Check if important events are logged in log files.
- Check if access privileges are implemented correctly.
IMAGE Loading Checks
- When image is loading from network, a loading indicator needs to be shown telling user that image is loading.
- There should be a good placeholder always at the place where image needs to be shown if image fails to load.
- Image should not be distorted, stretched etc. It should cover the box assigned to it fully.
LINKS and navigation Checks
- Check that the link takes you to the page it said it would.
- Ensure to have no orphan pages (a page that has no links to it)
- Check all of your links to other websites which take user to different site than you are testing.
- Are all referenced web sites or email addresses should be hyperlinked
- Make sure if links are not working there should be 404 page at least.
- Check all mailto links and whether it reaches properly
UI AND FONTS Checks
- All the buttons should be in standard format and Size
- All the colours are standard and are used only what was given in
design specs
? - All fonts need to be same as defined in design spec.
- Fonts should not be too large or too small to read.
- Never use Abbreviations in Button text or other places unless required.
- There should only be 3 or 4 different size of fonts should be available. Fonts should not be used randomly.
Error Messages Checks
- Check proper error messages are present or not. For example for input validations, network error.
- Error messages should be shown where the error is form. Position of validation error message needs to be correct.
- There should be no gramatical and spelling mistake in error messages.
- Never throw
technical error message
to user. Like server JSON dump etc. - All error messages should be displayed in the same CSS style (e.g. using red color)
- Error message should make sense to a general, non-technical user and user should be able to firgure out what needs to be done next.
TEXT and FORM FIELDS Checks
- All texts should be properly aligned.
- All texts should be gramatically correct and should have no spelling mistake.
- Make sure first letter is capital whenver required. For example while filling form, name, start of sentence, heading etc.
- All the form fields should be spelt properly.
- Text should not overlap when it is big.
- Text should not get truncated when it is big.