There are a lot of guides to general software testing methodologies, but there is a lack when it comes to testing for mobile apps.
Through the years I had with mobile application development, I have formed a habit of sort. It was always a undocumented habit, with improvements along the way.
When I read about QA without unit testing, it struck to me as a familiar process and methodology and I have used.
Therefore, here is my documented habit on how I do mobile application testing.
1. Unit Testing
Unit testing is the most frequently mentioned type of testing in software testing. That is because it is automated, and it is a good modular test on the methods/APIs. But a lot of time and cost could be wrongly spent on unit testing.
Instead, I choose to only do extensive test cases for very isolated and error-prone methods. And for all others, I would have only a few simple test cases, which serve more for the purpose of demonstrating how to use the methods.
Unit testing should be minimal for mobile application development, as a lot of mobile code comes from view controllers, which are unsuitable for unit testing.
2. Sanity Testing
Sanity testing refers to testing the normal scenarios. It is use cases that normal users would encounter when using the mobile app. It includes the user interface that users would see and interact with.
Manually testing of each of the test cases is needed, and it is very important that these test cases and their steps are documented. A tester must follow the documented steps.
3. Monkey Testing
Monkey testing covers the abnormal scenarios, or extreme cases. It is cases where a user would try to do unusual things with the app.
It is also essential to document these unusual test cases, but the steps need not be rigidly documented.
Moreover, the tester should test like a monkey, trying to break or crash the app.
4. Performance Testing
I always keep in mind:
Engineering is about doing the best you can with limited resources
And mobile phones have very limited resources. It is very common to see mobile application crash or slowed to a crawl due to unforeseen scenarios that depletes resources.
Performance testing is to test and ensure that the mobile app will stand the test of time..