bdt goes mobile
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
![Page 1: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/1.jpg)
Raman Kansal & Kriti Mehta
BDT goes Mobile!!!
![Page 2: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/2.jpg)
Evolution of test frameworks
Core Frameworks
Record & Playback
Optimized scripts
Behavior Driven Testing(BDT)
![Page 3: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/3.jpg)
Lets start with an example
USER ATM MONEY
![Page 4: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/4.jpg)
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 !!!
![Page 5: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/5.jpg)
Let's do it BDT way!
5
UserQA BA Dev
Functionality
Test Cases
BehaviorImplementation
![Page 6: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/6.jpg)
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.
![Page 7: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/7.jpg)
So the future is mobile!!
![Page 8: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/8.jpg)
BDT mobile testing tools
Calabash-iOSCalabash-Android
Frank(iOS)
Robotium(Android)
FoneMonkey(iOS)
Appium
SikuliEggPlant
![Page 9: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/9.jpg)
Calabash- iOS
Automated testing technology
For iOS native and hybrid applications
Cucumber based
![Page 10: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/10.jpg)
How it works?
![Page 11: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/11.jpg)
DEMOPre-Requisite – MacOS with xcode and Ruby
DEMO
Setup
Features
Execution
Steps
Query
![Page 12: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/12.jpg)
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
![Page 13: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/13.jpg)
Custom steps(.feature and .rb file)
![Page 14: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/14.jpg)
Pros
➢ Uniform interface across platforms
➢ Supports complex gestures
➢ Authenticity
➢ Cucumber
➢ Extensibility and community
![Page 15: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/15.jpg)
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
![Page 16: BDT goes mobile](https://reader036.vdocuments.mx/reader036/viewer/2022081807/554a175cb4c9055c598b50bd/html5/thumbnails/16.jpg)
Questions ??