As the mobile application market evolves (and explodes) we have been working hard on expanding Awetest’s Mobile App Testing capabilities and that’s when we discovered Calabash. As documented on the Calabash Github page, Calabash is an automated testing technology for Android and iOS native and hybrid applications.

The creator of Calabash, Karl Krukow, has written a detailed post about the architecture and the relative benefits when compared to other popular Mobile automation tools like Frank, KIF, iCuke, FoneMonkey, etc. Here’s a simple diagram that Karl has on his post that explains the Calabash architecture.

Calabash Architecture

At 3Qi Labs, we have been working on extending Awetest’s capabilities to support Mobile App testing constantly evaluating and integrating some of the above mentioned technologies and always on the look out for better and faster ways to help customers facilitate and scale their Mobile Test Automation initiatives. To that end, Calabash was one of the first technologies we decided to support in the Awetest framework for a variety of reasons:

  1. Device Support: This was a big one. Today, Frank (which is another technology we support) works great on the iOS simulators but is somewhat limited when it comes to on-device test execution. Calabash allows for simple on-device execution of the cucumber scripts by sending the cucumber commands to the Calabash HTTP server sitting inside the app.
  2. Cucumber: The ability to write tests like “When I touch “A”, I should <expect> “B””. Simple to write, Simple to transfer, Simple to maintain. Simple and painless all around.
  3. Open Source: Since the time we started developing Awetest – We have always looked to support the latest and greatest open source technologies for obvious reasons – the large scale adoption, superior quality, active community and the price is obviously “right”. While Calabash doesn’t have the blue chip user base similar to more established technologies like Watir, Selenium (both of which we support), it has garnered a fair amount of usage and support and the technology itself seems to be scaling the adoption curve very quickly.
  4. No need for Jail-breaking the device: This is a huge benefit for enterprise users with stringent QA/Test Environment guidelines. The Calabash libraries can be easily inserted into your application and deployed on the emulator or device without the jail-breaking requirement that many other tools have.

Using Calabash in the Awetest context is very simple and straightforward. You can leverage Awetest to setup your devices/emulators as needed. You can “calabash” your application and deploy it on the emulator or device. After that you simply upload your Cucumber script on Awetest and Awetest will schedule, queue, deliver, execute & report the test results directly into the Awetest application.

Below is a simple diagram that illustrates the Awetest architecture as it is specifically used for Mobile App testing. You can always find more information on our support site.