If you are building a mobile app, one of the biggest concerns you might have is overall app quality. After all, the least desirable scenario would be having the latest app that is crashing or misbehaving for your users. In this article, we will present some basic strategies that app developers would use to ensure the quality of the app.
Cooperation between product owners and developers
Before we’ll jump to some technical solutions, let’s for a minute focus on a rule that is very important for any software product. It’s good cooperation between product owners, stakeholders who decide what features app should have, and the development team that will be working on the product. For any app, the better the input development team would get, the better the results they might achieve.
Consider an example when an app development team would be building sign up flow for your users. And for your business model you need certain legal agreements from user side – for data processing and GDPR, accepting your Terms and Conditions and so on. As an owner of the product that’s your responsibility to provide an exact description of those features, including the process of providing approval (Is pressing a button enough? Or maybe users should be required to select a checkbox?), wording, and overall experience.
In our company, Handcrafted Mobile, we’re always encouraging our clients to be engaged in the product development process. It’s always good when you, a person with knowledge of your business, can answer questions about product features and verify that the final product is working as expected.
Testing small parts of the code (unit testing)
Often, when asked about quality, developers of your software product would mention that they have unit tests or even the whole unit test suite. A unit test is typically created to ensure that some small part of the code works as expected. To give an example, withing an e-commerce solution, the unit test could verify that you are calculating tax value properly for products in your basket.
However, given its nature, such a unit test suite could not only ensure that those small parts are working as expected. They don’t give information if the whole app works as expected, or not. For that, we need integration testing features.
Testing whole functions (integration testing)
Integration tests determine if independently developed units of software work correctly when they are connected to each other. It is performed by activating many modules and running higher-level tests against all of them to ensure they operated together. These modules could part of a single executable, or separate.
Getting back to our e-commerce example, an integration test would be able to check if whole flow – from adding products to the cart, through order confirmation, payment, and product status update after payment works as expected. However, it won’t check every detail – like a tax value mentioned above – leaving that to the unit testing mechanism.
Using issue & crash detection mechanisms
While the testing suite helps greatly with ensuring product quality, it still does not answer the question: is my app working as expected for my users? It might be annoying to constantly ask the users about that, fortunately – there are tools & solutions allowing app developers to measure & check app behavior on user phones.
One such solution is Firebase Crashlytics, a part of Firebase toolkit responsible for providing insight into mobile app behavior. It can report every crash that happened for any of your users, on both iOS and Android, in an automatic way. With a little effort it can also be used to provide information on unexpected, but non-crash issues that users might be facing – to give an example, that could be an issue with finalizing product order.
In Handcrafted Mobile, we’re taking app quality seriously. It means that we use unit & integration testing techniques, as well as automatic crash detection mechanisms. We do that to ensure products built with Handcrafted Platform meet the highest quality standards.
If you are interested more in those topics, here are few links to resources on:
– Unit testing: https://www.martinfowler.com/bliki/UnitTest.html
– Integration testing: https://www.martinfowler.com/bliki/IntegrationTest.html
– Firebase Crashlytics: https://firebase.google.com/docs/crashlytics