blog

Let's talk about testing

Mobile app testing: An introduction

This entry is part 1 of 1 in the series Mobile app testing

In the world we are living in, cell phones have become a big part of our lives. We are spending more time on mobile devices than with the people present around us. We want to do every possible thing on our cell phones. Big companies like Amazon are creating their own line of apps to make it easier for their customers to access their services. Now with the kind of priority a mobile app has, we need to make sure that the app works as intended without any issues.

As a testing company we see that most of our clients are concentrating on making apps for iOS and Android. A few clients ask us to test their Windows OS client too. So how are we going to test the different apps? Are we going to test on a real device or are we going to use an emulator?

Each technique has its own advantages and disadvantages, I will explain the pro’s and con’s of each technique below.

Pros of testing on real devices:

  • We can know whether the app is responsive enough or not.
  • We can know how the user feels about the navigation of the app. When we use an emulator we use the mouse to click on the options and we do not know how this feels for the user. As an example, on iOS we tend to keep the navigation icons at the bottom as it will be more handy for navigation rather than if the icons are at the top. We do not experience the real feel of an app if we use an emulator where we can easily click those buttons.
  • We are able to test on different networks and data speeds. So we can test how the app works at different network speeds like 2G, 3G and 4G.
  • We can check how the app works when we receive a call or notifications.
  • Cons of testing on real devices:

  • It is expensive to test on real devices as you need to buy and maintain most used devices in the current market – and there are a lot of them.
  • Pros of testing on an emulator:

  • Free and open source.
  • Can be connected to an IDE for early testing during development.
  • Cons of testing on an emulator:

  • Emulators can be a bit slow.
  • Emulators may be incompatible with the app or app elements, meaning that you will need to create patches here and there to be able to use the emulator.
  • Now we have a basic idea of which testing procedure we have to follow based on our app requirements. As we move further testing an app, we see that we will come across bugs which are reproducible and bugs which are not.

    To hunt reproducible bugs, we try to gather as much information as possible about the bug and we get the crash log for the crashes that occur randomly without persistent steps. The crash logs are recorded on the application we use to distribute the apps like HockeyApp or Crashlytics.

    For bugs that are not reproducible, or ‘ghost bugs’ as my client calls them, we follow a specific procedure for tracking purposes. When we come across these ghost bugs, we try to remember the last steps we have done and on which functional areas we saw the issue. We communicate with the other testers to keep an eye on that area by sharing the relative steps. When my fellow testers test the same functionality, it can happen that they come across the same bug but with one or two additional steps or even with lesser steps. We combine all the steps and figure out the best way to reproduce the issue. By working together, the probability of finding the exact steps for reproducing the issue gets higher and we are able to track out most of the issues.

    Testing is not only about testing the functionality of the app. We also need to make sure that the app is secure. We will get into this more about it in my next post regarding the security testing of mobile applications.


    Reputation. Meet spriteCloud

    Find out today why startups, SMBs, enterprises, brands, digital agencies, e-commerce, and mobile clients turn to spriteCloud to help improve their customer experiences. And their reputation. With complete range of QA services, we provide a full service that includes test planning, functional testing, test automation, performance testing, consultancy, mobile testing, and security testing. We even have a test lab — open to all our clients to use — with a full range of devices and platforms.

    Discover how our process can boost your reputation.