App testing is an inexact science, especially when developers are the only ones responsible for testing. There’s a high degree of probability that developers will miss testing many of the same cases that they forgot to consider when implementing the app.

To avoid this situation, most software development organizations hire dedicated testers who understand how to exhaustively test an app’s user interface and functionality.

Today’s Complex App Testing Ecosystem

Even dedicated testers can fall short in today’s complex app ecosystem. It isn’t enough to perform cross-platform testing for Android, iOS and Windows.

There are also different operating system versions to consider as well as dozens of different mobile devices with different form factors and screen resolutions. The number of possible combinations seems astronomical, making it nearly impossible for app developers to interactively validate an app for every configuration.

Only very large software development organizations have the resources to purchase a wide range of test devices and ensure that the thorough app is tested on each device.

Xamarin Automated Testing

Xamarin provides a couple of very useful solutions for automated testing. The most important is the Xamarin Test Cloud, a framework that allows app developers to automatically perform cloud-based testing on more than 1,000 mobile devices.

These are not device simulators or emulators, but real devices located at a Xamarin facility in Aarhus, Denmark. According to Xamarin, more than 100 new devices are being added each month and Xamarin is open to device requested from customers.

Xamarin Test Cloud uses a proprietary test system called Calabash that allows developers and testers to create automated tests for Android and iOS that exercise the app from the user interface level down. Tests are written as interactive “stories” using Ruby Cucumber and then executed on multiple hardware devices via Test Cloud.

For developers who want to write acceptance tests using C#, Xamarin also provides an alternative test creation framework called Xamarin.UITest. This framework, allows user interface tests to be created via the popular NUnit test library.

Once developers or testers have written tests using either Calabash or Xamarin.UITest, they can be uploaded to the Test Cloud and scheduled for execution.

The app is automatically loaded, the test are run and the results are provided when all tests have completed. Organizations can even set up test runs to be executed automatically in the Test Cloud each time new code is integrated into the app.

The Real Benefits of Automated Testing

Xamarin’s automated testing tools allow smaller organizations to perform a level of testing previously only available to large organizations with deep pockets. Another benefit these tools provide to organizations of all sizes is support for continuous integration, a process that involves validating an app’s quality during each step of development.

Combining automated testing and continuous integration allows app developers to get immediate feedback as soon as a new piece of code is shown to “break” some part of an app’s already-implemented user interface or functionality.

This approach holds the promise of ensuring app quality, decreasing the chances of bugs being found in the field by app customers and improving the overall app experience.

Do you have any questions about app testing or would like to learn more about Xamarin, contact Seamgen today!