Learn more about mobile localization practices, benefits and how to create a localization strategy.
You’re in the process of building your app, and you’ve got all the necessary requirements down. At this point, you’ll want to start thinking about quality assurance and doing extensive testing in order to make sure that you deliver the best possible experience to future users.
In this article, we’ll present an extensive list to consider if you’re looking to do in-depth manual testing of your app’s functionality and features. We’ll also address the various approaches you can take to testing and their inherent benefits and risks.
Testing requirements and planning app tests
Testing is an essential part of any app development process, but it’s also the most extensive and detailed one. After all, you’ll want to make sure your app is bug-free before you release it. That’s why companies usually run closed alpha and beta tests, thereby lowering the chance of anything going wrong once the app goes live.
Having said that, testing is not a spontaneous process and requires both preparation and extensive planning. You’ll do well if you do both upfront, so here’s a list to consider:
- How many mobile devices and tablets do I need?
- Which Android and iOS versions is the app compatible with?
- Are there any special test cases I need to try out?
- Do I have an effective way to report bugs I find?
- Is the infrastructure set up to support testing and delivery?
- Do I want the testing process to scale up at some point?
Once that’s done, it’s time to create a testing plan. Here’s how:
- Define the extent of testing You’ll want to set a clear roadmap of what you want to focus on during the testing period. For example, app functionality or its UX.
- Define a clear testing timetable Decide how long it will take to complete the testing process and stick to it no matter what.
- Define the goal of the testing process Define what you aim to achieve.
- Define acceptance criteria Be clear about what’s acceptable and what’s not when it comes to issues you might discover.
Getting into the tester mindset
Before we get to the checklist, let’s take a moment and get into the right mindset. Testing often involves dedicated and meticulous work, if you want to do it right. This means you’ll want to take your time when it comes to approaching each individual test. Every detail counts.
Moreover, it’s essential to have the right tools for the job. That means you’ll have to make sure all the tools are at your disposal before you start. If you’re testing an app, one of the most important tools you want to get is a bug reporting tool. Don’t waste time writing each bug report individually.
Not all of your work needs to be done manually. Automating your testing process will increase efficiency. Automation also helps when testing larger features, as you’ll be able to scale up much more quickly than before. Test smarter, not harder.
Last but not least, you’ll want to take multitasking to the next level. Most app testing will require that you try out certain cases on more than one device. This is the perfect chance to implement a systemic approach, testing the same test case on multiple devices at once. That way there’s no need to go over the same case multiple times.
If you’re a tester:
- Take your time and be meticulous.
- Always have the right tools for the job.
- Test smarter, not harder.
- Organize your work and multitask efficiently.
There are also a lot of tips and tricks you’re bound to pick up along the way. QA testing doesn’t have to be boring unless you make it so. Keep an eye out for different variations and edge cases that are bound to pop up sooner or later. Everything you catch at this point is one less thing to worry about later on. Aim for a balance between quality and quantity.
The mobile app checklist
Here’s a detailed list of things to look for when testing your app, divided into categories.
E.g. sign up with an empty username, try changing an email to the one that doesn’t contain @, or try entering only 10 characters to a credit card field.
E.g. in Settings, try entering a birthdate that’s in the future.
E.g. if you select to only see restaurants in your vicinity, other venue types should not be shown.
E.g. if the field requires a number, a numerical keyboard should open up, not the default one.
E.g. is an input read-only or editable? Is it a single line of text, text area, dropdown, choice (and if so, multi-choice or single-choice), time, date, number etc.
E.g. a password might be limited to a minimum of 8 characters without spaces and with a minimum of one number and one capitalized letter.
E.g. in Settings, change your name to a common French name Naël or Ukrainian name Альберт.
E.g. try setting status or sending a message “Hey Mark 🙋♂️”
E.g. you can upload, crop and remove your profile picture. Also, always try uploading various filetypes: JPG, PNG, WEBP, SVG, PDF, DOC, DOCX, PAGES, MP3, VAW, MP4, RAR, ZIP and similar. Try uploading a massive file (a few GB) and notice what happens.
E.g. some lists should be sorted alphabetically, some chronologically, some by file size etc.
E.g. if you zoom out a lot on a map view, the pins don’t remain separate but start clustering together.
E.g. on a conversations list screen, if you swipe a conversation left, you get options to Mute and Delete it.
App speed, size and backward compatibility
E.g. it has to be compatible with devices running Android 9 or newer.
E.g. it has to be compatible with devices running iOS 11 or newer.
App flow and state changes
E.g. when your invitee accepts an invitation, you receive an email about that.
E.g. you start typing into a chat message input and force close the app. Will the text wait for you?
E.g. after the signup, you are supposed to go through 4 welcome tutorial slides. You’re looking at the 2nd one and force close the app. When you open the app again, which slide should you be on? Is the behavior as expected?
E.g. change the username while the airplane mode is turned on. Will the app allow saving it anyway and sync it later? Or, does it warn you that you can’t do it in the first place because you’re offline?
E.g. if you open a camera when taking a new profile photo, the status bar at the top of the screen shouldn’t be shown (ie. the camera screen should be in a full-screen mode).
E.g. when you select a file to upload to the app, the file appears in the list with an animated spinner next to its name. Then the spinner disappears and the message “Uploading X / Y MB” appears. Eventually, the text changes to either “Uploaded successfully” or “Upload failed”.
E.g. if you start following someone, do they immediately see that you’re following them? If you leave a group, do all the members immediately see that? When you start typing something, does the other person see that in real-time?
Content, descriptions and translations
E.g. the app name should be “Gentoo®”, not “Gentoo”.
E.g. in a fintech app a number of how much money you have is pulled from the server. Let’s say it’s $5,000.00. But what if you have $5,000,000,000.00? Will the UI falls apart, or can it handle those longer numbers, too? Should the font size become a bit smaller in those cases to allow for more numbers? Is everything according to the documentation?
E.g. if you expect a list of users to be shown under Friends, what does that screen look like when you have no friends yet?
E.g. sign up with Facebook.
Signing in and out
E.g. sign in with Facebook but do not allow access to your date of birth. Will the app expect mandatory data and run into an error state because of that?
E.g. should you automatically get redirected to the sign in screen?
Forgot password process
E.g. the app doesn’t ask for the camera permission as soon as the app is installed, but only if and when you tap “Take a photo” on the Settings screen. If you deny the permission, the app shows a modal “To take a photo, you have to allow the camera permission first.“
What’s more important: testing speed or quality?
This one might be a classic dilemma. There’s no right or wrong answer though, as it depends on the situation you’re currently in. If you’re taking things slow and there’s no deadline you’re eager to meet, really taking your time testing is the safest possible solution — but is it the best?
Things move fast in the IT world, and any company would do well to remember that. You either go with the flow or get lost somewhere along the way. That’s something along the lines of Facebook’s original motto: Move fast and break things. Such an approach values speed over stability, but it also embraces the possibility of mistakes along the way.
Breaking stuff can be fun, but how does it affect end-users? Most of the time, very poorly. That’s why any app will have to make certain compromises if they are to be sustainable. Somewhere in the gap between delivery that’s too slow and delivery that’s too fast lies that middle ground that’s worth aiming for when testing. Don’t underpromise and overdeliver, and vice versa.
How to speed up the testing process without losing quality?
- Establish a bulletproof bug reporting process.
- Make sure each test case is well documented and described.
- Include reproduction steps for all issues.
- Estimate the complexity of your work beforehand and try to anticipate challenges.
- Define issue priority and delivery expectations.
Manual vs. automated testing?
Let’s just go ahead and say both. There really isn’t any reason to include any form of tests, however, other factors may come into play. For instance, automated tests require a decent amount of coding knowledge. If you’re missing that, trying to write and implement them may prove quite difficult.
Are automated tests generally a good idea? Well, it depends on the maturity of your product and the size of your team. The other option is manual testing, which takes time but yields very actionable results and insights. In comparison, automated tests will only take you as far as the point where a mistake might occur. In any case, both are valid options depending on the situation you’re in.
Appium An example of an open source mobile app test automation framework.
A lot of work and effort goes into making beautiful and functional apps. Whatever your role might be in creating an app, there’s no skipping ahead when it comes to quality assurance. In fact, it requires both careful planning and resources.
We’ve tested a lot of apps, and one thing is certain. You can never have too many tests. The more ground you cover, the easier it will be down the road. However, watch out for pitfalls like overpolishing or overtesting. They can easily slow the entire project down, so it’s very important to find that middle ground between two possible extremes – speed and quality.