BDT goes mobile

Post on 06-May-2015

873 views 0 download

description

This talk was presented at VodQA Gurgaon 3rd edition (11 July 2013) Talk Abstract: Behavior driven testing is a renowned way of automation testing, which directly relates to user behavior of the applications. There are multiple open source tools available in market, which uses BDT for mobile automation testing like frank, calabash, appium, robotium etc. These tools can be used to test hybrid, native and web applications on various platforms like iOS, android. Lets review one of the commonly used tool Calabash for both iOS and Android with the help of live demo. The demo will include setup, writing tests, execution, reporting and the limitations of Calabash. Speakers: Raman Kansal: Raman is a Quality analyst in Thoughtworks Gurgaon. He has over 10 years of experience in manual and automation testing. His experience includes working in banking, finance, and insurance, publishing, and accounting domains. Kriti Mehta: Kriti is an enthusiastic quality analyst in Thoughtworks Gurgaon & working on mobile application testing for last 1 year. She is involved in analyzing different mobile automation tools.

Transcript of BDT goes mobile

Raman Kansal & Kriti Mehta

BDT goes Mobile!!!

Evolution of test frameworks

Core Frameworks

Record & Playback

Optimized scripts

Behavior Driven Testing(BDT)

Lets start with an example

USER ATM MONEY

Test cases:Valid card,Invalid card,Valid amount, Invalid amount etc

Methods:validate_card()verify_cash()debit_cash()

*Validating card*Verifying the account*Debit cash*Ensure correct balance in account

4

User

QA

BA

Developer

BUT I wanted to withdraw cash

from atm !!!

Let's do it BDT way!

5

UserQA BA Dev

Functionality

Test Cases

BehaviorImplementation

Why is BDT an advantage?

Usable domain language for team as well as domain experts/clients

Never have to rewrite specs, since the behavior does not change.

Fixing context implementations , less painful than to rewrite tests

Supports multiple languagesExample: Cucumber supports 30 different languages.

So the future is mobile!!

BDT mobile testing tools

Calabash-iOSCalabash-Android

Frank(iOS)

Robotium(Android)

FoneMonkey(iOS)

Appium

SikuliEggPlant

Calabash- iOS

Automated testing technology

For iOS native and hybrid applications

Cucumber based

How it works?

DEMOPre-Requisite – MacOS with xcode and Ruby

DEMO

Setup

Features

Execution

Steps

Query

Useful calabash commandscd path-to-my-ios-project (i.e. directory containing .xcodeproj file)

gem install calabash-cucumber

calabash-ios gen

calabash-ios setup

Cucumber /NO_LAUNCH=1 DEVICE=iphone OS=ios5 DEVICE_ENDPOINT=http://192.168.1.37:37265 cucumber

calabash-ios console

Custom steps(.feature and .rb file)

Pros

➢ Uniform interface across platforms

➢ Supports complex gestures

➢ Authenticity

➢ Cucumber

➢ Extensibility and community

Useful links➢ Calabash ios setup: https://github.com/calabash/calabash-ios

➢ Calabash android setup:https://github.com/calabash/calabash-android

➢ IOS - Application used in Demo:https://github.com/Frahaan/2012-Olympics-iOS--iPad-and-iPhone--source-code

➢ Calabash cucumber doc:https://github.com/calabash/calabash-ios/blob/0.9.x/calabash-cucumber/doc/x-platform-testing.md

➢ Calabash tests execution:https://github.com/calabash/calabash-ios/wiki/07-Testing-on-physical-iDevices

➢ Calabash landing page:http://calaba.sh/

➢ Less-Painful -Automated App testing:https://www.lesspainful.com/

➢ Pre-defined steps:https://github.com/calabash/calabash-ios/wiki/02-Predefined-steps

➢ Calabash iOS ruby API:https://github.com/calabash/calabash-ios/wiki/03.5-Calabash-iOS-Ruby-API

Questions ??