5 mobile testing challenges and resolutions

5 mobile testing challenges and resolutions

Mobile testing is becoming a fast paced industry that is driven by constant evolution. The increasing adoption of mobile devices and changing technologies have brought a whole new set of challenges for the testing world. End users of apps aren’t forgiving and even the most minor issue will lead to customers switching to a different app immediately. Consequently, every mobile website and app placed in the market needs to be “rock solid” in terms of looks and performance. Smartphones have become the primary tool of communication for both individuals and businesses, across the globe.

According to Cap Gemini’s Quality Report on Mobile Testing, about 18% companies feel that they don’t have the time to test their mobile apps and further, about 65% say that they don’t have adequate tools for testing. Every week, new devices are being launched into the market and newer applications are designed to deliver complex set of functionalities over simple platforms. This diversity and increasing expectations present unique challenges for mobile testers.

1.       A multitude of devices

Since Google launched the Android 1.0, more than 500m devices have been shipped. For Apple, the numbers close in to more than 220m. Smart devices capable of running applications span across smartphones, tablets, iPad, watches and each of these categories further include thousands of devices, each with different screen sizes, operating systems, and other capabilities. It is a real challenge to be able to create an app that would run smoothly across devices and platforms as you never know which device your target user is on.

2.       Device fragmentation / different OS platforms

Device fragmentation is probably the most challenging aspect of mobile testing. The iOS device matrix has been growing but when it comes to Android devices (which again have a larger share in the market), fragmentation can be a major issue. In July 2013, OpenSignal, an analytical firm reported more than 12,000 Android devices as opposed to just 4,000 in 2012. It is not just the changing hardware but also the constant upgrades and different mobile operating systems that add to the challenge.

3.       Types of mobile apps

Mobile apps can be categorized as being native, hybrid or web apps. Both the implementation and testing process of each app category is different than the other.

4.       Varied test interfaces

Mobile simulators and emulators are crucial testing tools as they help verify regular regression tests and general app functionalities. However, the advantages are limited in scope and would never be a substitute for real world scenarios.

5.       Varied testing tools

If the complexity of automation wasn’t enough, testing labs are also challenged by the variety of testing tools spanning across free/paid, native/web, android/iOS, etc.

The solutions

  •   Mobile test labs: Cloud testing labs like SauceLabs, MobileLabs and Xamarine Test Cloud have been able to create effective sampling and cover a large segment of devices. They also cater well to the changing OS, screen, memory, fragmentation and device types.
  •  The perfect testing solution: Solutions like Appium, Robotium and Calabash are open source platforms for app testing. Commercial alternatives include perfecto, eggplant, etc.

However, it finally depends upon the app strategy, the target market and the quality of app to be able to create a successful campaign.

iOS App Approval Process

iOS app approval process

Apple is well known for the exacting standards of quality that they have made an integral part of their work ethic. This standard of quality is clearly discernible from the classy elegance and finesse of Apple products and the kind of immersive user experience that they routinely provide millions of people.

These same stringent standards are also a part of their approval process for apps to be features on the Apple App Store. Many iOS developers remain wary of their apps being rejected while under review by Apple, owing to the fact that the Apple App Store remains a realm where it is difficult and painstaking for developers to enter and be recognized.

If you are an iOS developer, you can do your work without the anxiety if you develop a deep understanding of the iOS app approval process, and design your apps with the process in mind from the ground up. Having this understanding helps you to see the challenges, be in tune with the standard requirements, and create apps which easily pass the test with Apple.

Getting Apps for iOS Approved the Right Way

Since its inception, the Apple App Store has had a strict approval process in place to control the quality of the apps that they make available to their users. Here is a brief step-by-step outline of the approval process –

  1. Submission – As a developer, you need to first read and understand the app review guidelines that Apple has in place. Keeping them in mind from the start is a more efficient way of doing things than developing first and making tweaks later. When your app is complete, debugged and performing the way you want it to, it is time to submit it to the Apple App Store for review. During submission, you need to furnish all the information that Apple requires in an accurate manner.
  2. Guidelines – Apple has compiled a detailed and exhaustive list of guidelines for developers. Once you submit your app, it is time for them to review it based on those guidelines. The guidelines involve all possible aspects and factors relating to mobile apps, including metadata, notifications, data storage, API use, content, design and user interface, transactions, privacy issues, legal implications and more. Apple reviews your app based on the totality of this list of criteria, and when the approval process is through, informs you about their decision.
  3. Communication – Apple provides you with detailed review data throughout their review duration. If your app is rejected or close to rejection, they provide you with a list of factors and reasons which you can use to correct your mistakes and resubmit your app for further review. The key is to communicate transparently with Apple regarding your development project, to pay heed to their feedback and suggestions, and to fine-tune your app so that it meets the stringent guidelines Apple have set to maintain their standards. Once you are through with this process, your app gets released for public use and you get featured as an iOS developer on the Apple App Store.

Hope this interesting read will help you in your iOS app approval process in the near future. All the best!

Mobile App Testing for iOS

Mobile app testing for iOS

Mobile app testing for iOS

After you have finished developing the mobile app for iOS, you have to test it to ensure all the functionalities and capabilities are working properly. This will ensure two critical successes –

  1. The app will pass Apple’s stringent app store release guidelines
  2. Post release, the app will have better chances of success.

You have the option of testing the app in the iOS simulator and your own handheld device, but it makes sense to run the app on compatible devices and in real world conditions rather than simulated ones. This will ensure your app works perfectly when you launch it for users.

Beta Mobile App Testing

If you want to run your mobile app in actual conditions, you have to perform beta testing. While you can use the iOS simulator to run preliminary tests, remember the simulator doesn’t run similar threads as the devices and unfortunately Xcode tends to disable watchdog timers.

The only way to truly test the app is to use it in different devices and get actual users to use it. As a result, you will have an accurate picture of the performance of the app and how it behaves in the real world in terms of looks, navigation and functionalities.

Using Beta Testers

In the Developer Account, create an ad-hoc provisioning profile. You can get the instructions for this from the iOS Developer Library. Ensure the testers use the latest firmware for the device and get them to perform usability testing. Once they finish testing, ask for a comprehensive test report.

The beta testing phase costs money. So, do create a budget for it. On the other hand, if funds are tight, you may want to find testers through sites, like TaskRabbit and Craigslist. It is important to screen potential testers to shortlist the ones you want.

Self-Testing

There are many app developers, who prefer performing the tests themselves on multiple iOS-enabled devices. However self-testing is not recommended, as you may overlook characteristics that could cause problems to users when they use your app.

Unit Testing

This type of testing ensures that smallest element or units are tested for functionality, navigation, and look and feel.

Functional Testing

It is a system level comprehensive testing that checks for proper functioning of app from a user perspective. Tests written in JavaScript are executed as a part of the QA process to check test cases, call flows and user interface.

Third-Party App Testing Tools and Services

There are several third-party services that you can use. You also can implement an SDK, if you like. These tools and services offer a much better alternative than testing the app yourself. You can glean a lot of important information on how beta testers use the application.

Some of the information you can get using third-party testing tools and services include:

  • The actual person who installed the application
  • The number of beta testers you managed to get through the checkpoints you had established
  • Getting feedback via the application from the testers
  • Crash reports

If you are keen on implementing SDK, there are free SDKs, such as TestFlight, that offer detailed reports on users’ interaction with the app and ways to improve the application. Free SDK is the perfect choice if you are on a budget. However, do remember you would have to find the beta testers first.

Mobile app testing for iOS can sound ominous and time consuming. However, testing your app before the big launch will help you fix all bugs and develop a user-friendly app.

Ready to start building your next technology project?