Things to think about while developing and testing different software functionality. Primarily focusing on web applications.
General Design
- Does the page/component adapt to different screen sizes?
- Mobile phone
- Tablet
- Desktop monitor
- Smart watch (if applicable)
View Lists/Grids/Calendars
- Listing
- If no results are returned, show a message.
- If a massive number of results are returned, paginate the results.
- Extended information (drill down) or action controls on each result
- Filtering/Searching
- Sorting
- Pagination
- Allow the user to select the number of results to return in a page.
- Drilling Down
View a Single List Item
Forms: Edit a Single List Item
Forms: Bulk Edit a List of Items
Rendering data
– HTML encode (stop execution of injected scripts)
# Forms over Data Application
– List
– View
– Add
– Edit
– Delete
– Search, sort, filter
# General
– technical error screens in production
– attention to detail.
# Design
– Think like a user. Friendly error and message screen.
# Login & User management
– username (optional)
– email
– password
– salt and hash and algorithm
– Forgot password
– unknown username or password.
# Basic security
– sanatise and validate user input
– buffer overflow
– SQLi
– XSS
# Dashboard
Software
– Color blind/accessibility
– text alignment
– spacing
– spelling