SlideShare a Scribd company logo
1 of 20
Download to read offline
Calabash
                                  Cross-Platform,
                            Automated Acceptance Testing
                                 for Mobile Apps




mandag den 5. november 12
Mobile Challenges




mandag den 5. november 12
Mobile Challenges
              • Many        devices, screens, resolutions, CPUs, OS’es,...

              • Varying    Conditions (network, location, rotation,
                  settings.)

              • In      practice, often
                   •   a manual process: repetitive, expensive, low coverage

                   •   insufficient device converage

                   •   regressions occur


mandag den 5. november 12
Automated Testing
                                Philosophy

   • We           recognize value in BDD (and TDD)

        • You          provide business readable specifications

        • Those   specifications can be executed as automated
            acceptance tests

        • Communication            and shared language


mandag den 5. november 12
Example
      Feature: Login
        As a user I'll be able to add wordpress hosted blogs.

          Scenario: Invalid login to WordPress.com blog
            Given I am about to login
            When I enter invalid credentials
            Then I am presented with an error message

          Scenario: Add a WordPress.com blog
            Given I am on the Welcome Screen
            When I add the WordPress.com blog
            Then I should be logged in




mandag den 5. november 12
What is Calabash?

   •   Tool for BDD-style acceptance testing, consisting of two projects:

        •   Calabash Android: https://github.com/calabash/calabash-android

        •   Calabash iOS: https://github.com/calabash/calabash-ios

   •   Core development by LessPainful, but Open-Source and Free
       (Eclipse Public License)

   •   Written in Objective C, Java and Ruby (and Clojure)

        •   Test written in Ruby but other languages are easy (e.g. Java/JVM is WIP).


mandag den 5. november 12
Features

   • Native                 and hybrid apps for Android and iOS

   • BDD             via the Cucumber tool

   • Cross-platform    testing: maximize sharing when developing the
       same (or similar) apps on multiple platforms.

   • Runs            on physical devices as well as simulators/emulators

   • Value-added                 options via LessPainful (e.g. support)

mandag den 5. november 12
Architecture

                                      Calabash
      Calabash Clients
                                       Server
                  Calabash
                  Android

            Calabash iOS                         Your App
                               HTTP
            Calabash JVM



mandag den 5. november 12
Calabash Android

   • Instrumentation-based

        • but         supports dynamic, interactive test-development

   • Has    the full power of Robotium, and adds additional methods
       for easing automation

   • Web-support              based on a shared (small) JavaScript library:
       calabash-js


mandag den 5. november 12
Calabash iOS
   •   App is built for testing by linking a static lib (calabash-server)
        •   Uses a combination of UIAutomation and other private APIs

   •   Supports interactive test-development

   •   Based on Frank, but changes some core parts
        •   view selection engine (web, reflective actions, predicates, visibility)

        •   touch synthesis engine allows generating of arbitrary touch gestures (extensible)

   •   Will be developed in coordination with Calabash Android

   •   Will be componentized in coordination with Frank



mandag den 5. november 12
Example
      Feature: Login
        As a user I'll be able to add wordpress hosted blogs.

          Scenario: Invalid login to WordPress.com blog
            Given I am about to login
            When I enter invalid credentials
            Then I am presented with an error message

          Scenario: Add a WordPress.com blog
            Given I am on the Welcome Screen
            When I add the WordPress.com blog
            Then I should be logged in




mandag den 5. november 12
IOS


                            VIDEO EXAMPLE

           https://github.com/LessPainful/mobilesummit2012/raw/
                      master/ios_example_wp_login.mov




mandag den 5. november 12
ANDROID


                             VIDEO EXAMPLE

               https://github.com/LessPainful/mobilesummit2012/raw/
                             master/android_sample.mov




mandag den 5. november 12
Future for Calabash

   • Unify APIs                cross Android and iOS.

   • Improve      hybrid support - low-level, CSS/XPath selectors,
       visibility ⟹ High-level webdriver-like API.

   • Official                Java clients (JVM really).

   • Unification                 and cross-pollination with all the other cool
       projects.


mandag den 5. november 12
mandag den 5. november 12
LessPainful
                              •   Support plans for Calabash + Training

                              •   Hosted test environment (shared or private)

                                  •   Hosted authentic (non jailbroken) devices

                                      •   tests in parallel

                                  •   Visual comparative test reports

                                  •   Continuous integration support

                              •   Exposure to differnet conditions.

                                      •   OS versions, languages, network throttling,...



mandag den 5. november 12
Visual Test Reports




                       https://www.lesspainful.com/instant/result/
                    ffxxcdtwxjjoctowngtedfamdwppezscnsuoimmi


mandag den 5. november 12
Announcement



       •   As of today, LessPainful fully embraces Frank

            •   Full commercial support option - same level as Calabash

            •   Execution of Frank tests in our hosted environments (private beta)

       •   Special thanks to Pete Hodgson from Thoughtworks!


mandag den 5. november 12
Questions?




                            Making App Testing
                               Less Painful

                                           http://www.lesspainful.com
mandag den 5. november 12
mandag den 5. november 12

More Related Content

Viewers also liked

Pruebas funcionales de Software
Pruebas funcionales de SoftwarePruebas funcionales de Software
Pruebas funcionales de SoftwareBrian Pando
 
Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013Brian Sam-Bodden
 
Three Uses Of JIRA Beyond Bug Tracking
Three Uses Of JIRA Beyond Bug TrackingThree Uses Of JIRA Beyond Bug Tracking
Three Uses Of JIRA Beyond Bug TrackingAtlassian
 
TestLink introduction
TestLink introductionTestLink introduction
TestLink introductionDavid Ionut
 
Introduction To Confluence
Introduction To ConfluenceIntroduction To Confluence
Introduction To ConfluenceHua Soon Sim
 
Jira as a Tool for Test Management
Jira as a Tool for Test ManagementJira as a Tool for Test Management
Jira as a Tool for Test ManagementMaija Laksa
 
Using JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingUsing JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingAnjali Rao
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To JiraHua Soon Sim
 
Calabash, an open-source automated testing technology for native mobile, by K...
Calabash, an open-source automated testing technology for native mobile, by K...Calabash, an open-source automated testing technology for native mobile, by K...
Calabash, an open-source automated testing technology for native mobile, by K...Codemotion
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkOleksiy Rezchykov
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerLuca Milanesio
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarPascal Larocque
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code qualityMani Sarkar
 
Design First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDesign First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDaniel Feist
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginLuca Milanesio
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)Dave Haeffner
 

Viewers also liked (20)

Pruebas funcionales de Software
Pruebas funcionales de SoftwarePruebas funcionales de Software
Pruebas funcionales de Software
 
Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013
 
Three Uses Of JIRA Beyond Bug Tracking
Three Uses Of JIRA Beyond Bug TrackingThree Uses Of JIRA Beyond Bug Tracking
Three Uses Of JIRA Beyond Bug Tracking
 
TestLink introduction
TestLink introductionTestLink introduction
TestLink introduction
 
Introduction To Confluence
Introduction To ConfluenceIntroduction To Confluence
Introduction To Confluence
 
Jira as a Tool for Test Management
Jira as a Tool for Test ManagementJira as a Tool for Test Management
Jira as a Tool for Test Management
 
Using JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingUsing JIRA Software for Issue Tracking
Using JIRA Software for Issue Tracking
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To Jira
 
Calabash, an open-source automated testing technology for native mobile, by K...
Calabash, an open-source automated testing technology for native mobile, by K...Calabash, an open-source automated testing technology for native mobile, by K...
Calabash, an open-source automated testing technology for native mobile, by K...
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium Framework
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
Automate you Appium test like a pro!
Automate you Appium test like a pro!Automate you Appium test like a pro!
Automate you Appium test like a pro!
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code quality
 
Design First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDesign First API's with RAML and SoapUI
Design First API's with RAML and SoapUI
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 

More from mobiletestsummit

Setting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with AppiumSetting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with Appiummobiletestsummit
 
MOET: Mobile End-to-End Testing
MOET: Mobile End-to-End TestingMOET: Mobile End-to-End Testing
MOET: Mobile End-to-End Testingmobiletestsummit
 
iOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and TricksiOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and Tricksmobiletestsummit
 
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank Cross-Platform Testing with Frank
Cross-Platform Testing with Frank mobiletestsummit
 
Calabash-Driver Lightning Talk by Dominik Dary
Calabash-Driver Lightning Talk by Dominik DaryCalabash-Driver Lightning Talk by Dominik Dary
Calabash-Driver Lightning Talk by Dominik Darymobiletestsummit
 

More from mobiletestsummit (7)

Setting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with AppiumSetting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with Appium
 
Sikuli for Mobile Testing
Sikuli for Mobile TestingSikuli for Mobile Testing
Sikuli for Mobile Testing
 
Automating Firefox OS
Automating Firefox OSAutomating Firefox OS
Automating Firefox OS
 
MOET: Mobile End-to-End Testing
MOET: Mobile End-to-End TestingMOET: Mobile End-to-End Testing
MOET: Mobile End-to-End Testing
 
iOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and TricksiOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and Tricks
 
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
 
Calabash-Driver Lightning Talk by Dominik Dary
Calabash-Driver Lightning Talk by Dominik DaryCalabash-Driver Lightning Talk by Dominik Dary
Calabash-Driver Lightning Talk by Dominik Dary
 

Calabash: Cross-Platform Automated Acceptance Testing for Mobile Apps

  • 1. Calabash Cross-Platform, Automated Acceptance Testing for Mobile Apps mandag den 5. november 12
  • 3. Mobile Challenges • Many devices, screens, resolutions, CPUs, OS’es,... • Varying Conditions (network, location, rotation, settings.) • In practice, often • a manual process: repetitive, expensive, low coverage • insufficient device converage • regressions occur mandag den 5. november 12
  • 4. Automated Testing Philosophy • We recognize value in BDD (and TDD) • You provide business readable specifications • Those specifications can be executed as automated acceptance tests • Communication and shared language mandag den 5. november 12
  • 5. Example Feature: Login As a user I'll be able to add wordpress hosted blogs. Scenario: Invalid login to WordPress.com blog Given I am about to login When I enter invalid credentials Then I am presented with an error message Scenario: Add a WordPress.com blog Given I am on the Welcome Screen When I add the WordPress.com blog Then I should be logged in mandag den 5. november 12
  • 6. What is Calabash? • Tool for BDD-style acceptance testing, consisting of two projects: • Calabash Android: https://github.com/calabash/calabash-android • Calabash iOS: https://github.com/calabash/calabash-ios • Core development by LessPainful, but Open-Source and Free (Eclipse Public License) • Written in Objective C, Java and Ruby (and Clojure) • Test written in Ruby but other languages are easy (e.g. Java/JVM is WIP). mandag den 5. november 12
  • 7. Features • Native and hybrid apps for Android and iOS • BDD via the Cucumber tool • Cross-platform testing: maximize sharing when developing the same (or similar) apps on multiple platforms. • Runs on physical devices as well as simulators/emulators • Value-added options via LessPainful (e.g. support) mandag den 5. november 12
  • 8. Architecture Calabash Calabash Clients Server Calabash Android Calabash iOS Your App HTTP Calabash JVM mandag den 5. november 12
  • 9. Calabash Android • Instrumentation-based • but supports dynamic, interactive test-development • Has the full power of Robotium, and adds additional methods for easing automation • Web-support based on a shared (small) JavaScript library: calabash-js mandag den 5. november 12
  • 10. Calabash iOS • App is built for testing by linking a static lib (calabash-server) • Uses a combination of UIAutomation and other private APIs • Supports interactive test-development • Based on Frank, but changes some core parts • view selection engine (web, reflective actions, predicates, visibility) • touch synthesis engine allows generating of arbitrary touch gestures (extensible) • Will be developed in coordination with Calabash Android • Will be componentized in coordination with Frank mandag den 5. november 12
  • 11. Example Feature: Login As a user I'll be able to add wordpress hosted blogs. Scenario: Invalid login to WordPress.com blog Given I am about to login When I enter invalid credentials Then I am presented with an error message Scenario: Add a WordPress.com blog Given I am on the Welcome Screen When I add the WordPress.com blog Then I should be logged in mandag den 5. november 12
  • 12. IOS VIDEO EXAMPLE https://github.com/LessPainful/mobilesummit2012/raw/ master/ios_example_wp_login.mov mandag den 5. november 12
  • 13. ANDROID VIDEO EXAMPLE https://github.com/LessPainful/mobilesummit2012/raw/ master/android_sample.mov mandag den 5. november 12
  • 14. Future for Calabash • Unify APIs cross Android and iOS. • Improve hybrid support - low-level, CSS/XPath selectors, visibility ⟹ High-level webdriver-like API. • Official Java clients (JVM really). • Unification and cross-pollination with all the other cool projects. mandag den 5. november 12
  • 15. mandag den 5. november 12
  • 16. LessPainful • Support plans for Calabash + Training • Hosted test environment (shared or private) • Hosted authentic (non jailbroken) devices • tests in parallel • Visual comparative test reports • Continuous integration support • Exposure to differnet conditions. • OS versions, languages, network throttling,... mandag den 5. november 12
  • 17. Visual Test Reports https://www.lesspainful.com/instant/result/ ffxxcdtwxjjoctowngtedfamdwppezscnsuoimmi mandag den 5. november 12
  • 18. Announcement • As of today, LessPainful fully embraces Frank • Full commercial support option - same level as Calabash • Execution of Frank tests in our hosted environments (private beta) • Special thanks to Pete Hodgson from Thoughtworks! mandag den 5. november 12
  • 19. Questions? Making App Testing Less Painful http://www.lesspainful.com mandag den 5. november 12
  • 20. mandag den 5. november 12