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
UserQABA Dev
Functionality
Test Cases
Behavior
Implementation
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 languages
Example: Cucumber supports 30 different languages.
So the future is mobile!!
BDT mobile testing tools
Calabash-iOS
Calabash
-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?
DEMO
Pre-Requisite – MacOS with xcode and Ruby
DEMO
Setup
Features
Execution
Steps
Query
Useful calabash commands
cd 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-te
sting.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 ??

BDT goes mobile

  • 1.
    Raman Kansal &Kriti Mehta BDT goes Mobile!!!
  • 2.
    Evolution of testframeworks Core Frameworks Record & Playback Optimized scripts Behavior Driven Testing(BDT)
  • 3.
    Lets start withan example USER ATM MONEY
  • 4.
    Test cases: Valid card, Invalidcard, 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 !!!
  • 5.
    Let's do itBDT way! 5 UserQABA Dev Functionality Test Cases Behavior Implementation
  • 6.
    Why is BDTan 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 languages Example: Cucumber supports 30 different languages.
  • 7.
    So the futureis mobile!!
  • 8.
    BDT mobile testingtools Calabash-iOS Calabash -Android Frank (iOS) Robotium (Android) FoneMonkey (iOS) Appium SikuliEggPlant
  • 9.
    Calabash- iOS Automated testingtechnology For iOS native and hybrid applications Cucumber based
  • 10.
  • 11.
    DEMO Pre-Requisite – MacOSwith xcode and Ruby DEMO Setup Features Execution Steps Query
  • 12.
    Useful calabash commands cdpath-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
  • 13.
  • 14.
    Pros ➢ Uniform interfaceacross platforms ➢ Supports complex gestures ➢ Authenticity ➢ Cucumber ➢ Extensibility and community
  • 15.
    Useful links ➢ Calabashios 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-te sting.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
  • 16.