1. Screen sizes: With an advancement in technology, plethora of new devices are launched in the market – all varying in their screen sizes. It is extremely challenging to consider multiple screen sizes and test the product across different sizes.For example, iPhone 6 is 4.7 inches in size whereas the iPhone 6 Plus includes a 5.5-inch.
2. Display: Nowadays mobile phones are coming with colored displays however there are devices that have a white display and they are needed to be considered as well.
3. Operation system: There are numerous operating systems such as iOS, Android, Windows, Blackberry OS, Symbian, Maemo, MeeGo, and Bada. With multiple operating systems and various versions of each OS, it becomes difficult for testers to test the application and rule out bugs. Remember, it could work fine on one version but might not work uniformly on some other version of the same OS.
4. Device Memory: With new devices getting launched at a rapid pace, the problem of device memory is resolving eventually. However, not all devices have larger memory slots and a low device memory can surely impact the app’s performance. While engineering products, do not fret out on using memory when needed thinking about user experience, but at the same time ensure that you don’t load a whole lot more than what you actually require.
5. Network Challenges and Response Time: In order to work accurately, most mobile applications require excellent network connectivity. While testing mobile application, it is, therefore, imperative to test network impact on application response time. However, most development teams do not have an access to multiple networks for testing application’s response time. Moreover, there are nearly 400 mobile network operators present globally using different network infrastructure and this limits the flow of information. When a customer is traveling, he moves from one network coverage to other leading to a drop or change in the connectivity. This factor will have a direct impact on mobile application’s performance and behavior.
6. Complexity in application’s architecture – Applications are built using a variety of frameworks and architectures. The behavior of a native application might vary against a hybrid application practise regression testing,planning and coverage of different applications require a different thought process. This is quite challenging for most testing teams as they need to consider various questions such as:
· What are the risks if the foundational parts of the architecture go wrong?
· What are your key assumptions, and how will you test them?
· How would the bugs resolve? Would there be a need to refactor the design?
7. Regression Testing: Applications keep on enhancing with new features and functionalities. They also change on account of patches, configuration changes and so on. Testers find it difficult to practise regression testing and verify the previously tested application after the enhancements in the application. Some companies have started using automation testing tools to run test scripts after every build, but still, most developers who are not equipped with automation find it challenging to go through various releases and detect bugs.
8. Test Coverage: Test coverage is typically measured by mapping the requirements to the test cases, the status of the test case, and code coverage analysis. However, test coverage only covers the code which is written so far and it does not factor in the upcoming releases or planned builds. That said; one of the challenges that most teams face is of inadequate test coverage. This is mainly because either there are very few test cases written for each user story or there is an unexpected change in the code. At times,testing team and development team doesn’t work parallelly which further delays the testing of one particular feature after it is pushed to QA team.