Blog

Testing mobile apps: QA can make or break project’s success

QA should be involved in all stages of development, starting with concept creation and till the post-development review process, so as to ensure the success of an app.
26 November 2013
Mobile app testing
The article by a1qa
a1qa

Quality Assurance plays a vital role in the development of mobile applications, but many underestimate how critical mobile app testing services are to the overall success of the app development process.

QA should be involved in all stages of development, starting with concept creation and till the post-development review process, so as to ensure the success of an app. Let`s go through the phases.

Preparatory phase

The phase begins in between the end of app development and before the first assembly of a functioning app begins. During the phase you are to pay special attention to the points like identification of target devices, introduction of functional requirements, test documentation development, test environment preparation. The phase put you through some challenges, like determination of target devices.

Though, if you follow the guidelines the challenge becomes quite clear. So, start with figuring out the devices that the application supports (phones, tablets, other devices – players, navigation). Then you need to determine the earliest version of relevant operating systems that supports an app. Doing this you`ll have to choose between two options: a special restriction, which will further be reflected in installation requirements, or you should select the least productive OS that still can provide perfect app functioning.

For example, for iOS devices it should be the first iPad with iOS 5.1.1 (if the application has no performance problems on it, there should be no problems in later versions of the device); the iPhone 3GS only runs iOS 4.3.5, so it is the least-productive platform to develop for, but the device is still popular globally.

After all that, do not forget to identify the most popular models for the target audience for app verification, and then select additional devices with different screen sizes than the most popular models.

Functional requirements

The next step is introducing functional requirements. It is important to define whether the app is browser-based or installable. Whether it interacts with a Web site or database, other apps or social networks, or maybe it is completely self-contained (does not interact with the Internet and cellular network).The information collected at this stage should focus on important app functions.

Test documentation

Then it is time to develop test documentation. Many mobile apps need high-level documentation, as tasks within the app are typically executed with just a few clicks and do not involve complex tasks.

The simplicity means that there is no need for detailed testing instructions. For non-mobile apps as well, much depends on optimally partitioning app functionality into blocks while creating test documentation, allowing connections between different units to be tracked accurately, and moreover, it requires less time to verify various functions.

User feedback

If the app got updated version from AppStore or Google Play, it is useful to analyze user reviews and feedback that has been posted on social networks and the app marketplace. Problems are often found and documented in these environments by end users, and this information will help to identify and focus on the app’s most important shortcomings.

When new app versions are introduced, users expect to find that specific problems to be fixed. If they are not, it often causes negative reaction, especially if they and others have taken the time to document or report errors. It can be useful to add end-user concerns to the test checklist as a separate category of problems, and pay special attention to them during testing.

Test environment

Preparing test environment typically requires the installation of required apps on the mobile device and on a QA engineer’s computer, which can include apps such as the iPhone Configuration Utility and Android SDK.

Starting from here, the process becomes an iterative cycle. It begins after the integration of the first assembly and ends with the completion of product development, including testing multiple assemblies at regular intervals (once or twice a week, for example). Development and testing are carried out simultaneously after each new build of the app.

The main idea of testing is for the QA engineers to put themselves into the user`s shoes, but with a more profound knowledge of the settings and the principles of a particular device and the features of the app being tested.

Here are the characteristics of different types of apps and operating platforms, along with areas that require special attention when it comes to testing for various mobile operating systems.

Apple iOS testing

  1. Verify compliance with UI Guidelines from Apple
  2. Apps must be backward-compatible with the OS (a new version of the OS is expected to maintain full functionality of the app)
  3. When multitasking, all settings and current progress of the app must be preserved when the app is minimized or when the user switches between apps
  4. You must be able to debug the app and collect logs via a USB cable connection without additional operations being performed on the device
  5. There is no need to reboot the device while testing

Google’s Android testing

  1. The app must support running multiple apps in the background
  2. For debugging via USB, you must first select “Enable USB Debugging” in the device settings, and then connect the device to the computer
  3. When using the hardware “Back” button, the app should be minimized, not closed. Otherwise, the device may require rebooting to run the app again. You can also use an app such as Task Killer as an alternative to rebooting.

Windows mobile testing

  1. The app must support multiple apps running in the background
  2. You must be able to close the app through the task manager
  3. You must connect the device to a computer via USB to debug the app.

Check these, regardless of the device/OS

  1. Input methods, devices and form factors (number pad, qwerty-keyboard, touch screen, side panel, external devices)
  2. Different networks (WiFi, Edge, 3G, 4G, GSM / CDMA), including unstable networks
  3. GPS functionality
  4. Energy consumption
  5. Accelerometer
  6. Standards Compliance mobile development (AppleHIG, Android principles)
  7. External interrupts (calls, SMS, stability in the event of a shortage of disk space, installation and restoration in the background)
  8. Memory cards
  9. Stability after a crash
  10. Using data on the device (address book, calendar)
  11. Access rights apps
  12. Social networks and other third-party apps
  13. Interface (animations, icons, portrait/landscape orientation, Retina (for iOS), the visibility of labels, size, ease of use)
  14. Time (server time/phone time, time zones)
  15. Redirections (Web → app, app → Web)

Control phase

The control phase is where you prepare the draft for release after product development ends.

This phase includes detailed and complete testing (during early iterative phases, a full test might not have been performed, or more regression tests may be required) to stabilize the app and uncover minor defects.

These are also tests for loss of auxiliary modules (testing in the app can present opportunities to check subsidiary functions such as Log Collector and artificial recharge of game balance, which were added to facilitate or reduce testing time, but that should not appear in the final product).

The approach typically used for testing in this control phase is somewhat like using scaffolding when constructing a building.

We can add features and change settings for the sake of development and testing that will not be in the final version of the app.

For example, an app undergoing control phase testing might be set to provide endless lives or infinite ammunition for the tester.

Once the building is complete, the scaffolding is taken away – much like how settings and features used to test and develop the final version of the app are then taken away before it is made available to the public.

Acceptance testing

The final phase is acceptance testing. The focus here is to check, if the app matches the acceptance criteria (which was defined at the start of the development cycle) or not.

Acceptance testing is performed based on a set of typical test cases and scenarios that are created based on the app requirements. It may specify “no major defects exist in the application,” or “all application labels and functions fully correspond to the rules of the target language.”

This phase of testing is also typically the most important, especially when further support of the app is not provided once it is made public.

Acceptance testing is used to ensure the quality of the app is perfect – or near perfect – and to ensure that the customer is happy with the results of the development process.

At this step, the customer decides if the app is excellent enough to accept it as final, and that decision is primarily based on the test results.

AFTER CAREFULLY tailoring these test phases to the app being developed and meticulously carrying them out, you are certain to end up with functional product.

More Posts

Mobile app compatibility_mini
14 October 2021,
by a1qa
4 min read
Compatibility testing: 5 key tips to ensure high quality of mobile apps
Billions of mobile solutions and portable devices. Can you imagine that? Learn how to ensure robust software compatibility with accurate testing.
Mobile app testing
5G impact
31 May 2021,
by a1qa
4 min read
5G network impact on mobile app testing
Check out what 5G connectivity will bring to the IT world and how it will modify mobile app testing.
Cybersecurity testing
Mobile app testing
Performance testing
15 March 2021,
by a1qa
4 min read
Mobile app performance testing: getting high software efficiency
Explore 3 cornerstones of mobile app performance testing and QA steps on how to execute it successfully.
Mobile app testing
Performance testing
29 January 2021,
by a1qa
4 min read
3 do’s and 3 don’ts in BFSI software testing
Considering BFSI to be a fast-paced industry, how to keep up with such velocity? We’ve prepared 3 do’s and 3 don’ts that help sustain the rush and high software quality.
Functional testing
Mobile app testing
Test automation
13 November 2020,
by a1qa
5 min read
QA for media and entertainment
Read the article to explore why QA is a must for the media and entertainment sector and how to perform software testing effectively.
Functional testing
Mobile app testing
Performance testing
Test automation
Usability testing
24 July 2020,
by a1qa
4 min read
OWASP as a guide to mobile apps security testing
More apps, more sensitive data, higher security levels... Learn how companies address the challenge of providing secure solutions harnessing unbiased safety recommendations.
Cybersecurity testing
Mobile app testing
12 December 2018,
by a1qa
3 min read
Benefits of native mobile app testing on real devices
At the early stage of every QA project, the team should make a choice: run tests on emulators, simulators, or real devices.
Mobile app testing
14 November 2018,
by a1qa
4 min read
How to use computer vision to improve your test automation
Learn how computer vision helps automate Android and iOS mobile application testing.
Mobile app testing
Test automation
20 July 2018,
by a1qa
4 min read
How QA providers help telecom companies overcome 21st century challenges
Let's examine the most vital telecom challenges and ways to overcome them with the help of Software Testing and QA companies.
Mobile app testing
Quality assurance

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.