We’ve all experienced opening up a mobile app only to be greeted with sluggish performance, poorly thought out user interface or experience and glaring errors that make you think ‘how on earth was this released?’
Nine times out of ten, when this happens the app in question didn’t go through any Quality Assurance or testing process.
Quality Assurance and testing, for those not in the know covers everything from the production of a clear specification of what the app should and shouldn’t do from a functional perspective and from an end user perspective.
What I mean by this is a product can functionally work, but may not be fit for purpose and may not hit the customers expectations as to what it is meant to do.
Studies show that buggy apps are typically deleted after being opened once, which is typically the best outcome you can hope for of a bad app. The worst outcome being that the developer of the application gets a 1 star review on the app store and backlash from potentially loyal users and customers.
This is illustrated in the graph below which shows a huge proportion of apps being used only once.
Data from Localytics
When testing a mobile application, test analysts and managers have a wide range of tools at their disposal – these tools are used at various points in the Quality Assurance process from testing the core functionality of a product to running a suite of fully automated tests for regression purposes. Quality Assurance performed in a project lifecycle brings several benefits to the end product such as;
1) Ensured functionality based on the business requirements of the product
2) Reduced defects
3) Improved user interface/user experience
The start of any Quality Assurance process should begin with business requirements and user stories. From these documents testers can create a test strategy. A test strategy is a document outlining how, what and when an app or feature will be tested during the course of the project lifecycle. Let’s break the test strategy down into some smaller parts;
1) Test Plan
The test plan is a strategic document created by the tester at the start of a project. It includes items to be tested, who they will be tested by, test environments (by this I mean operating systems, device specifications etc.) and entry/exit criteria. Entry criteria is defined as a set of guidelines that must be met before Quality Assurance can start on a project – for instance the test environments must be set up and the feature or application being tested must be code complete.
A test plan is important because it gives full visibility to the client and the project team about any challenges that may be faced. This is to avoid any potential future cost to the client by addressing any and all issues at the start of a project.
2) Test suites
A test suite is a series of test cases that make up a larger suite. An example would be that a test suite would be ‘Login’ and the individual cases would consist of various scenarios such as ‘what happens if the user attempts to login with invalid details’. Test suites are extremely important to both client and the internal project team as a series of tests ensure that 100% coverage of the application is covered during the QA process.
In addition to test suites, testers can also create automated regression issues for the purpose of maintaining 100% coverage during the project lifecycle and well after the application has been delivered. By simply running an automated regression test, reports can be provided to the client assuring them that no new bugs have been introduced when a change has been made.
3) Exit criteria
An exit criteria, similar to the entry criteria, is a set of guidelines that must be met before the application is released to the client. These guidelines are typically set internally with some input from the client. An example would be ‘the application cannot be released if any high priority bugs remain’ – when met, this exit criteria will provide assurance to the customer that they are receiving a product of high quality, that works and feels natural in an end users hands.
These are just some of the processes that go into a fully-fledged Quality Assurance procedure. A well tested product should feel natural and perform well in an end users hands, with 100% functionality and reduced defects.
To conclude, Quality Assurance can benefit the client hugely in two ways, firstly by ensuring what is delivered is of the client’s standards and requirements, and works and functions the way the client is expecting – potentially saving the client money due to a delivery that isn’t fit for purpose. Secondly, by catching potentially critical bugs that can impact a client’s existing and potential customer base – thus losing the client customers and damaging their reputation at the same time.