Calabash enables you to write and execute automated acceptance tests of mobile apps. Calabash is cross-platform, supporting Android and iOS native apps. It is open source and free, and has a company, Xamarin, backing and developing it.

With Xamarin Test Cloud you can automatically test your app on hundreds of mobile devices.

Calabash consists of libraries that enable test-code to programmatically interact with native and hybrid apps. The interaction consists of a number of end-user actions. Each action can be one of

Touches or gestures (e.g., tap, swipe and rotate).
For example: there should be a "Login" button or the web view should contain an "<h1>" element with the text "Hello".
screendump the current view on the current device model

Calabash could be compared to Selenium WebDriver. However, it is important to realize that interacting with a web app from a desktop computer is vastly different than interacting with a native app using a touch screen. Calabash provides APIs that are specialized to native apps running on touch screen devices.

Feature: Rating a stand
  Scenario: Find and rate a stand from the list
    Given I am on the foodstand list
    Then I should see a "rating" button
    And I should not see "Dixie Burger & Gumbo Soup"

    When I touch the "rating" button
    Then I should see "Dixie Burger & Gumbo Soup"

    When I touch "Dixie Burger & Gumbo Soup"
    Then I should see details for "Dixie Burger & Gumbo Soup"

    When I touch the "rate_it" button
    Then I should see the rating panel

    When I touch "star5"
    And I touch "rate"
    Then "Dixie Burger & Gumbo Soup" should be rated 5 stars

Although we focus on Cucumber, Calabash can be used to write automated functional and acceptance tests using any Ruby-based test framework, C# and JVM-based languages will be supported too!