We all make mistakes. That's why you need a QA team to double check your work, secure your health and life. If you are a surgeon, you have to count on yourself only, but our programmers have more luck. QA helps you to deliver high-quality products to your clients, and looks at the applications from a user's perspective.
Bugs that we find on a daily basis can be divided into three groups:
- App-specific bugs. They are related to business logic of the app. They might be pretty hard to detect so deep app knowledge may really help you. It is also very important to write down test cases for such type of bugs.
- Platform-specific bugs. Each mobile platform (Android, iOS) has its own bugs connected to the way the operating system works.
- Specific bugs related to the basic elements of the app architecture.
In this article, I want to focus on the third type of bugs. They're the most common and also easy to overlook. Let's have a closer look at some of them!
Possibility of tapping/clicking buttons repeatedly
Let me introduce you to the first sin of the programmer. A simple button can cause a serious problem if you do not handle the possibility of fast/rapid clicks. This case should be tested with particular care in those applications where we make payments or send messages, because the action could be repeated many times. Imagine a situation where you accidentally tapped "Pay" button twice and, as a result, you got charged twice.
It is also important to add a progress indicator to inform a user that an operation is in progress. There are many situations where actions last for a while and in order to inform a user that something is happening right now, it is very desirable to show a progress indicator. This includes such situations as screen/content loading, long network operations on button click like editing profile, uploading images, etc. Imagine user tapping on "upload" button in order to update their profile image. Without a progress indicator (during image upload process that may take a while) a user may tap this button a few times again, thinking that nothing has happened.
Crash after tapping on button
This one is like a "time-bomb" hidden in your app. Usually, this applies to buttons that are "hidden" deep inside the application (eg. inside settings) which are relatively easy to overlook. Clicking on such a button makes application crash.
Portrait/landscape orientation of the app
Have you ever tried changing orientation of the screen and the current state of the application was not saved? For example, in Android system, a particular screen element, called Activity, might be destroyed with screen rotations, losing its current state. So after the rotation, all previously selected checkboxes or dropdowns might get cleared. An increasing number of applications block the use of a landscape, however, this is still a problem in applications that allow the horizontal view.
It's hard to make them work for the first time, but they are a valuable communication and engagement channel between an application and a user. It's very important to make sure that they work correctly.
Specify the input type
First of all, we should always check if the right keyboard type was opened. It might be very helpful for a user to display a keyboard type adjusted to an input field type. For example, for a phone number text field, we'd like to show a user a numeric keyboard and for an email text field a keyboard having the "@" character. Believe it or not, users will be very thankful. We should also pay attention to another very important thing which is a password input type. It's just not safe to use a text field for a password. Reading a password over someone's shoulder is definitely much easier than reading their keystrokes.
No error handling
Another key thing to remember is that you should always display an error to a user. But remember, displaying errors straight from the server can bring important information for the programmer, but not always for the end user. In the end, we create the application for them (users, not programmers), so it's always better to show
invalid login credentials than
Page layout at different screen resolutions/densities
As you all may know, the number of requirements for the development of mobile applications is growing rapidly. Device models often differ in size, resolution and operating system versions. As a good QA, you are responsible for making sure that the application looks good on all of these devices.
Skipping selector on buttons
Remember, that all taps should have selectors. It helps a user to notice that an action has been performed. Otherwise, a click may be duplicated many times. Especially with a long-lasting action as described in #2 and #1 earlier in this article.
Repeated results on the list
This one is an Android specific and is related to how "ListView" on Android works. Basically each element that reveals at the bottom of a list during scrolling, reuses the view of the element that has just been scrolled off the screen. That may lead to a situation where both cells, the new one and the one that disappeared have the same data. It is worth understanding this mechanism as the issue is quite common.
All things considered, it seems reasonable to assume that bugs, which were included in the article, are very easy to detect, but also hard to remember about. It's vitally important to find and solve those problems before the app will be released to the final users. For the devs out there - I wish you would make a QA team's work easier and think of the above while creating software, for the QA people out there - I wish you wouldn't challenge the above too often ;p What's on your most-common bug list? Awaiting your comments!