With all the focus majorly being shifted to
Mobile platform a need, in fact, the necessity has arisen to test the mobile
applications effectively and extensively. Glitches in testing the application
effectively may result in failures leading to loss of audience, loss of revenue
and would definitely earn some dishonor to the brand name. To prevent this
effective testing process should be in place to eradicate all the vulnerabilities
in the mobile application.
No testing would ever guarantee a Zero Defect
release but Yes, testing should guarantee a product free from some obvious and
critical errors. Mobile testing is no different from this. So what constitutes
an effective testing process for mobile applications or what are the key things
we should ponder over when testing mobile-based applications?
Let's take a look at some of the deciding
factors or the "things to keep in mind" while testing mobile
applications:
Deciding Upon The Devices to Test – Breaking Into
Fragmentation
Device and OS fragmentation is one of the
biggest challenges when it comes to mobile testing. This problem pertains more
to the Android ecosystem as compared to the iOS family because of the wide range of
Android devices and manufacturers available in the market. It is hard to choose
between various combinations of mobile devices and platforms, screen sizes,
resolutions, hardware, etc.
It's freaking crazy testing an
application on the mobile platform, the reason being the overwhelming number of devices
available in the market and to complicate the things further there is a multitude of
manufacturers who keep on releasing new devices over the period of time. As a
test professional, it is important for you to come out with a list of devices
that would suffice your testing needs and would eliminate any possibility of
landing into big trouble when the app is launched in the market. Some of the
pointers that can help you isolate the list of devices are:
- Ask for the mobile usage statistics for the Application Under Test (AUT). The statistics should reveal the share of different devices that are accessing the app. Pick the devices which are majorly used for accessing your app. Ignore the ones that have a very little share, provided you are well aware of consequences for not selecting these devices.
- Interview the client or the owner of the app and determine the target audience location reason being different locations have an inclination towards the different families of devices. Next step, identify the majorly used devices or the family of the devices in those locations and incorporate those devices in your list.
- Determine and shortlist upon supported device features such as OS, Screen size, resolution, Form Factor, memory size model etc.
- If your app is backward compatible meaning it is interoperable with the legacy OS or legacy devices, then remember to test these combinations as well. Some users might still be on old devices/OS and you do not want to lose them.
- Last but not least do a market survey or have someone to provide you that statistics. Based on the stats plan to include some of the heavily used devices.
Should I Completely Go for Emulators Instead of Real Devices?
The answer can vary depending on the
situation or the phase of the application development. Many developers still prefer
to develop and unit test their applications on emulators reason being the
emulators are readily available and easy to configure. Furthermore, emulators
do not require a separate inventory to maintain which is quite handy when the
application is supported on multiple devices. Using emulators can significantly
bring down the cost but with one trade-off that the machines on which emulators
are to be used should have a good supporting underlying hardware.
Testing on the actual physical device, however, is
always Spot ON and none of the emulators can replace the worth and accuracy of
testing on the actual device. Testing on an actual device is similar to testing in the production environment i.e. the actual environment end users would be using the
app on. It gives access to real hardware, real network and practically a real-world to the application. Sometimes the issues found on devices are rare or
difficult to find in emulators.
Emulators are good to find straightforward or
common bugs whereas the actual device can actually uncover common plus not so
common bugs. To summarize make sure you have the right mix of emulators and
physical devices in place to deliver the best results in prescribed budget and
time.
Performance of The Application
In this fast-paced environment, no one wants
to wait whether it’s a shopping mall queue or accessing an app, imagine how
would you feel waiting for a page to load when you know you have the top-notch
bandwidth available, disgusting isn't it? Studies have shown that applications with
performance bottlenecks have the least number of recurring users. So It is always
recommended to performance test your application for better yield and fewer
performance issues.
With several paid and cheap cloud solutions and other storage mediums in place, users are showing the tendency to maintain
their data online and carry it over to the apps they use. Also depending upon
the type of app it may support communication of a large amount of data over the
network. To prevent the app from being bogged down because of the performance issue
make sure to test it properly with anticipated traffic levels.
Remember only the best ones will survive,
the bad ones would be swept away with the time.
Let’s Automate It, NO, Let It Be Manual !!! I am Confused...
With ever-growing automation these days can
we completely rule out manual testing? The answer can vary but the majority of
people would still say NO to this. There are plenty of factors when deciding
between automation and/or manual. Whatever be the approach be the end result
should be an application that is production-ready with planned test coverage
duly completed.
Automation can be done when:
- We have to execute the same test suite on multiple devices. This invariably saves a lot of time and effort and gives an extra cushion to support other testing activities in a time crunch situation.
- We have frequent releases.
- The regression suite is way big with hundreds and thousands of test cases.
- The app is built in an incremental way like in Agile. Automation can ensure that there is no impact on the previous unaltered functionalities.
- We have to daily test the application. E.g. of this is to do a health check on the live application daily to ensure there is no breakdown and it is accessible to all the users.
Manual testing, on the other hand, can
support by testing the features/functionalities not supported/automated by the
automation tool in place. For e.g. interruption testing, low battery, handling
alerts, notifications, varying network conditions, etc which can be tested manually
only.
Secure or Vulnerable?
What are the biggest concerns that come to
our mind before installing an application?
- Is it safe to use?
- Does it encrypt the data when transmitted over the web?
- Can it access, manipulate and use my personal information like Credit card info, wallet info, bank details etc?
- Does it have proper secured login process?
- Does it secretly install additional software (maybe some Viruses, Malware, etc)?
End users are always sensitive to their data and an application with security leaks would only add to their trouble. Make sure to properly address all the security concerns to gain the trust of your audience.
Networks
The network is one of the important factors
which affects the performance of the mobile application. The application should
be smart enough to identify between the signals of varying strength. The majority of the audience engages themselves with the app on the GO meaning they are totally
reliant on Mobile network so it is of utmost necessity to test the performance of
the app on various types of networks such as 2G,3G,4G, and No Network.
Offline mode, if supported should provide a
seamless (though limited) experience to the end-users. In Offline mode make
sure that the offline cache is refreshed or purged after a regular interval so
as to keep the performance of the app up to the mark.
Types of Testing
In addition to the basic functional testing
the testing professionals can add some more testing flavors to their bucket:
- Orientation Testing (Portrait/Landscape mode)
- Installation Testing
- Upgrade Testing
- Call/Traffic monitoring
- Interruption Testing
- Accessibility Testing
- Localization Testing
- Performance Testing
- Security Testing
Conclusion
Let’s admit that a hardcore strategy is
not available for mobile testing which might be true in some other platforms. So
for impeccable planning and execution, be sure to take into account all the
above listed factors and make mobile testing an “Easy to Accomplish” journey.
No comments:
Post a Comment