Humans are going to use your app, and they are not going to get everything right every time. If and when they make a mistake, how does your app cope? This can be a fertile ground for testers looking for issues, as often the Happy Path case is written first and assumes everything is good, and then the conditions to catch and deal with exceptions are added onto this.
How might users make mistakes? Here are a few examples.
1. They Enter the Wrong Information
When creating an account, you might ask the user for their first and last name. They might rush through this as they are excited to get on with using your app—but if they make a mistake, are they stuck with this for the rest of the time they use it? If, thanks to auto-correct, their first name is now Fill instead of Phil, is there a place in the app where this can be corrected?
2. They Leave the Caps Lock Key On
Are your case-sensitive checks appropriate? (You do have case-sensitive checks, right?) If I’m logging in as PHIL, then I should still be able to get into the system. But if I’m busy creating data, don’t allow me to create a new entry of BACON when there is already a bacon in the system. (Yes, you can have too much bacon.)
For the first case, the user doesn’t need to know they are shouting. In the second case, it’s okay to let them know there is a problem.
3. They Make More Than One Click
If the next screen doesn’t appear immediately—or if the user clicks accidentally—the button to trigger the next step might get more than one press. This is not something the user needs to be made aware of, but it is something your app should deal with graciously.
4. They Enter Incorrect Data
After the user enters a screenful of data, some of which may be incorrect, do you let them know which fields are wrong and how to correct them? Or do you give them a blanket “Invalid Data on Form” message?
5. They Leave the WiFi Off
Has a user toggled the WiFI off or turned on airplane mode? If so, do you let them know, or do you just say, “Unable to Save Data”? Does the app take the extra step of saving data offline, then synching up when there is a connection?
These are just a few of the unexpected ways a user might interact with your system. There are plenty more, such as quitting the app halfway through a process, hitting refresh on a web page as you are getting the data, and opening the same page in another tab. Stay tuned–I’ll cover these in a future post.