Android application testing – best practices
We live in the world of Smartphone, It is impossible to imagine our life without a Smartphone. At the same time, when business is growing for rapid mobile application development, so is the competition. We live in a competitive market and hence one must focus on all the aspects for mobile application testing.
Mobile application testing has some of the challenges which we don’t see for other platforms. Say it is Operating systems, different versions for OS, broad range of devices, sizes, orientation, network, ways of communication and list will keep adding more parameters based on product, services and user experience.
We have to keep doing traditional testing practices but at the same time it is equally important to perform other testing so as to ensure application is best in terms of quality and user experience. Technology is always changing & evolving, so are the methodologies to test them. We need to consider all the factors to define best practices – for example – Development practices, Business or say key functionalities which applications are meant to offer for all end user, Timelines, resources, cost, skills, technology stack and so on. Holistic approach with great adaptability & flexibility is key for any team to ensure product is best in terms of quality assurance.
So, let me put some of the pointers so that depending upon the project and context one can decide and start to implement the same as a testing practice.
It is very important to benchmark devices with the combination of OS, various versions, Memory, CPU, RAM & performance. Once you have such an inventory then ensure to test application on all listed devices. Also ensure category of devices like Smartphone, Tablet, Firestick, etc. One good factor to also consider for bench-marking the
Devices which often an individual neglect is upcoming Smartphone, Existing Smartphone with respect to market share, it is always good to know popular devices and ensure application is tested on it.
Apart from core functionality, User experience is a key for success. If your app does not work or say crashed saying any ANR (Application not responding), users will not give a second thought to uninstall it and switch to the next best app.
So, we need to ensure using different tools so as to confirm performance, stress testing and overall user experience is good. One thing to worth mention, apart from just a quality gate keeper tester should also feed project team with feedback w.r.t. user experience, say navigation is confusing, error message are not descriptive for end user and so on.
Team should encourage positive & constructive feedback to come from team and take them in a positive manner.
Scope for Testing
This is very important part to baseline overall testing for application under test (AUT).
Team should look for overall technology stack & architecture, for example , If the application is client – server based, web services and micro services involved, third party API interaction, Cloud based hosting, timeline. All such things well help to define clear scope for testing.
Functional testing is an integral part for mobile application testing but one cannot neglect non-functional testing.
Performance testing, Interrupt testing, Stress testing, Static and dynamic code analysis, security testing are all equally important. Team should ensure to perform non-functional testing for mobile application.
API testing is very important to ensure APIs does not break for any releases and they are backward compatible. So many tools are available to perform API testing, micro-services testing and third party interaction validation. This will also ensure less maintenance for automated test cases and help to foresee vulnerable areas for product & so areas to work and focus for overall testing.
It is very important to plan well before implementing automation testing, automation testing without ROI is of no value and hence it is very important to do a great research for overall automation strategy, have a POC, Decide a tool keeping long term vision in mind, ensure automation is adding value to testing with CI-CD in place and it is getting used apart from just a pass rate. Purpose of automation testing should be to save time and find bugs and framework should be simple so that anyone can use it and add value to project.