Being a mobile application tester for more than 5 years, I have learnt a lot about effective mobile testing. In this article, I am going to share my top 5 tips to successful mobile testing. Usually we followed the traditional V model software cycle in which the software was developed and unit tested by the developers before handing over to the test team. As soon as we used to get a new build, we used to run sanity test to make sure the build is stable to carry on the rest of the testing including regression, functional, non-functional and performance testing. Main testing was manual but performance was mainly done using automation.
Based on my experience, below are the 5 tips to successful mobile testing:
Thinking From User’s Perspective:
It is very important to think from the user’s perspective while testing the mobile applications. There could be different types of users using the same mobile for different purposes. For example, a small business owner would need all the apps related to his social accounts so that he can sell his products easily and conveniently whereas a student using the same mobile would prefer to have apps which are more on entertainment side. If you are clear on what your target users would be then thinking from their perspective would make your testing more focused and also would improve user’s experience. I would like to explain this with another small example, say I am testing an app which is mostly be used by user who loves music. I have to make sure that the user do not find any issues related to the quality of the music and the search of his favorite song. Also, I should make sure that playlist created should be saved properly and adding or removing songs should be easy. These were some of the cases when I am thinking from the end user’s perspective. This will not only give me proper directions to test but also help me in improving the overall quality.
Negative Testing Along With Exploratory Testing Is Important:
Before I explain this point, I want to mention the importance of the negative or boundary testing. If we are a mobile tester then we need to have test cases which test the breakpoints or the limit of the mobile device. For example, I had noticed this while testing a music application that after adding like 50 songs to the playlist, adding 51st song made the application crashed, so I knew that 50 is the limit which can be properly handled by the application but there was no notification for the user. Solution was either to increase the limit or notify user about the limit in advance so that he knows what to expect. Negative testing not only gives the clear idea about the expectations about the product but also, helps in knowing the product better and when it is combined with exploratory testing then quality would touch the sky. Exploratory testing gives the freestyle or freedom based approach where there are no pre-written test cases and you can test all the possible test scenarios based on your experience and thinking out of the box.
Mobile is something we carry with us all day along. It is very important to test the performance of the mobile. It includes load, stress, battery and other aspects. Performance is something which makes the major difference. Let me give you some examples, when you go to any online mobile shop and see the user’s reviews, you will find that there would be lot many complains related to battery heat up or device hang up on a particular screen which hugely affects the rating and ultimately the business. People prefer to pay more for a mobile which is high on performance and that makes performance a key factor to test. When you know how much load the device can take or what is the expected battery life then you will have a clear idea what to convey to the users beforehand so that they will not have any surprises afterwards. Loading the mobile memory by 80% and see how it behaves or pressing a key or two like 1000 times and see if mobile works fine under stress. There are many automated performance tools available in the market today which will not only save a lot of efforts of a tester but also gives him more time to focus on different testing areas to maximize the test coverage.
Detailed Bug Reports:
Bug reports are the most important documents when we talk about the quality bugs and fixes. An ideal bug report will have all the key details like severity of the issue, steps to reproduce, expected result, actual result and other details. I have seen bug reports which were not detailed and due to that development team wasted a lot of time in reproducing the issue. When everything is clearly mentioned in the bug report, it becomes easy to find out the root cause and hence, it helps in fixing the bug properly. It would also give an idea about the areas which could be affected by fixing a bug. In short, detailed bug report makes tasks easier for both testing and development teams.
Sanity or Smoke Testing:
We all know how important sanity testing is! While analyzing the requirements and creating test cases, it is very important to know all the key applications and areas which have the highest priority i.e. without which the mobile is useless. For example, start or home screen, power button, home button, volume up and down, scrolling are some of the major areas. If any or more than one area has any issue then the severity becomes the highest and should be fixed as soon as possible. Build should be returned to the development team to fix and no further testing should be performed until the new fixed build is built. To run sanity or smoke test is the first step and to choose proper test cases for the smoke or sanity suite is important.
Mobile testing is not as complex as it seems, important thing is to learn from your experiences and pay attention to details. Users play the most important part here so is the thinking out of the box approach of the tester.