Mobile app testing: An introduction
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:
Cons of testing on real devices:
Pros of testing on an emulator:
Cons of testing on an 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.