Properly Testing Android Apps
A checklist from the AGIMA team
In 2020, almost three million apps were available for Android devices (as of March 28, according to Appbrain). This number continues to grow as hundreds of new applications for the operating system are appearing every day. This is partly thanks to AGIMA. We develop a wide variety of Android apps, both simple and complex, highly specialized and suitable for everyone. And there’s a lot we can say about the ins and outs of their development.
Of course, the most important aspect of an Android app is functionality. Flaws in the layout are rarely obvious, but when it comes to product quality, the devil is in the details. That is why we always thoroughly test our applications before launching them. We have even developed a special checklist to make product testing as quick and informative as possible. Now we’re happy to share it with you!
But first, let’s discuss the six most common layout problems that our checklist will help you avoid.
1. Shifting page elements
When making a page layout, developers can apply three types of vertical alignment (Align Top, Align Middle, and Align Bottom) and three types of horizontal alignment (Align Left, Align Center, Align Right). However, if used inconsistently, the individual page elements begin to “slip” from their places.
The image on the left looks good, but as soon as the resolution is changed, the header shifts to the right.
2. Text trimming
This problem occurs when developers try to shrink GUI components so they fit on a small screen.
Everything is fine on the left, but when the orientation is changed on the right, some of the text is cut off.
3. Missing page elements
When the screen resolution is decreased, the elements increase in size. So, if the layout is wrong, some of these elements may simply “disappear.”
4. Intersection of elements
Sometimes, when decreasing the resolution or screen size, the GUI elements also “overlap.” This turns the page into a complete mess.
5. Out-of-bounds elements
This occurs for the same reason: when the resolution is changed, the elements of the page are enlarged and the screen is simply not big enough to display them. Best case scenario — this causes the page to look terrible. At worst, it becomes absolutely impossible to use.
6. Artifacts of adaptive design
When the screen resolution is increased, a reverse situation can arise, where the GUI elements and text can be reduced to completely unreadable sizes.
According to Material Design, the dimension of any element with which the user interacts should be at least 48 pixels, be it a button, a checkbox, or a radio button.
The guideline does not provide clear recommendations on text size. However, according to a study, fonts with a height of 16 pixels are considered comfortable, while fonts with a height of 12–14 pixels are considered suitable for reading.
The problems listed above are often “layered” on top of each other — as we all know, when it rains, it pours. And these combinations can be unpredictable. However, this is a topic for a separate post.
Now, let’s take a look at the checklist. Use the checklist when testing an Android app, and you won’t miss a single error!
- Installation from the distribution kit is performed without any error notifications.
- Installation from the app store is successful.
- Updates are installed without errors.
- Installation is cancelled without error, and all “traces” of the application are removed.
- Reinstallation after cancellation is possible and successful.
- When trying to install the application on an unsupported device or OS version, an incompatibility warning is displayed and the installation is properly cancelled.
Launching and exiting the application:
- The application is launched when the icon is tapped.
- The application is launched in a split screen mode.
- The application is launched after clicking on a notification from it.
- The application is launched from the links in other applications.
- The application is launched using a voice command.
- The application is launched at startup.
- The application is launched by gestures.
- The application is launched when associated files are opened.
- The application resumes after being minimized to the background.
- The application does not take too long to launch.
- The application can be exited normally.
- The application can be exited by pressing the Home button (the application is minimized to the background).
Ease of use:
- The application control is intuitive.
- The application’s navigation features meet customer needs.
- The application correctly handles screen orientation changes.
- The application correctly handles display scaling.
- The application correctly handles multitouch gestures.
- The keyboard is invoked correctly and does not cover the page element into which the text is entered.
- The controls correspond to the functions they perform.
- The battery discharge corresponds to the load generated by the application.
- Delays in transitions and/or openings are not critical.
- The application meets the usability requirements for the platform.
- There are no app crashes and/or unexpected pop-ups.
- (if stated in the terms of reference) The application contains help for new users.
Layout (for all devices and resolutions that are stated in the restrictions):
- There are no shifts of the page elements (the layout of the elements matches the initial layout).
- The text is not cut off on the pages.
- All the established elements are present on the pages.
- The elements do not overlap.
- Not a single element goes beyond the screen boundaries.
- There are no artifacts of adaptive design.
- Updates are correctly installed.
- When the application is launched, it checks for updates and the user is provided with information about the limitations of the current version.
- Notifications are displayed in the case of several missed updates.
- Notifications are displayed when critical updates are missed, preventing the application from operating.
- The application works after updating the OS.
- The application works after an interrupted or canceled update.
- Phone call interruptions are processed correctly.
- SMS interruptions are processed correctly.
- Interruptions from changing the screen orientation are processed correctly.
- Interruptions from locking or unlocking the screen are processed correctly.
- Interruptions by system notifications are processed correctly.
- Interruptions caused by the loss of internet connection are processed correctly.
- The application works with slow or unstable internet connections (depending on the requirements)
- The application works in power saving mode.
- The application is not interrupted when switching network connection.
- The application does not depend on background data transfer.
- There are no security alerts in the app store related to the application.
- There are no collisions when launching the application on the device (when using the most popular antivirus solutions).
- During the installation and use, the application requests the necessary permissions and can use them.
- The application works correctly with user sessions (according to the requirements).
And finally, we have an important question for all of our readers. What would you add to our checklist? We look forward to hearing your ideas!
This post was written in collaboration with Ramil Usmanov, Ex-Head of QA, AGIMA.