SlideShare a Scribd company logo
1 of 53
Download to read offline
Badoo:	
  Cross	
  pla,orm	
  mobile	
  test	
  
automa3on	
  and	
  con3nuous	
  delivery	
  	
  
Sathish	
  Gogineni	
  
Mobile	
  QA	
  Automa4on	
  Lead	
  
Raise	
  your	
  hands	
  if….	
  
•  You’re	
  working	
  in	
  Mobile	
  pla=orm?	
  
•  You	
  have	
  apps	
  on	
  mul4ple	
  mobile	
  pla=orms?	
  
•  You’re	
  aware	
  of	
  the	
  test	
  automa4on	
  tools	
  in	
  
Mobile?	
  
•  You	
  are	
  using	
  func4onal	
  test	
  automa4on?	
  
•  You’re	
  using	
  “Cross	
  pla=orm”	
  test	
  automa4on?	
  
A	
  bit	
  of	
  self	
  promo3on	
  
Who	
  is	
  Badoo?	
  
•  A	
  social	
  networking	
  service	
  
•  241	
  million	
  users	
  
•  Available	
  in	
  190	
  countries.	
  	
  
•  Support	
  45	
  languages	
  on	
  mobile	
  
•  250	
  employees	
  based	
  in	
  London	
  and	
  Moscow	
  
More	
  about	
  Badoo	
  
•  Badoo	
  has	
  2	
  popular	
  products	
  
	
  
	
  
•  Apps	
  support	
  4	
  mobile	
  pla=orms	
  
– Badoo	
  
– HotOrNot	
  
Mobile	
  Test	
  Automa3on	
  at	
  Badoo	
  
•  A	
  single	
  test	
  automa4on	
  code	
  base	
  
–  Run	
  across	
  two	
  products	
  
–  Run	
  on	
  three	
  pla=orms	
  
–  Run	
  on	
  phones	
  and	
  tablets	
  
	
  
•  We	
  have	
  
–  68%	
  func4onal	
  coverage	
  for	
  Badoo	
  in	
  Android	
  &	
  iOS	
  (	
  390	
  
scenarios	
  )	
  
–  76%	
  func4onal	
  coverage	
  for	
  HotOrNot	
  in	
  Android	
  &	
  iOS	
  (	
  250	
  
scenarios	
  )	
  
–  52%	
  func4onal	
  coverage	
  in	
  MobileWeb	
  (	
  165	
  scenarios	
  )	
  
–  And	
  in	
  Windows	
  pla=orm	
  we	
  have	
  0%	
  
A	
  bit	
  about	
  Cross	
  pla,orm	
  test	
  
Mobile	
  cross	
  pla,orm	
  test	
  automa3on?	
  
•  Write	
  once	
  ,	
  Run	
  anywhere(?)	
  
	
  
•  Write	
  test	
  specifica4ons	
  
	
  
•  Implement	
  the	
  tests	
  at	
  high	
  level	
  
	
  
•  Implement	
  the	
  pla=orm/applica4on	
  UI	
  
code	
  
	
  
Cross	
  pla,orm	
  stack	
  in	
  BDD	
  
Scenarios	
  
Feature	
  
Step	
  defini3ons	
  
Android	
  Page	
   iOS	
  Page	
  
Test	
  Specifica4on	
  
High	
  level	
  
implementa4on	
  
Pla=orm	
  specific	
  
Why	
  cross	
  pla,orm	
  test	
  automa3on?	
  
•  Business	
  logic	
  is	
  same.	
  It	
  is	
  only	
  
interac4on	
  with	
  UI	
  is	
  change	
  
	
  
•  Pooled	
  resources	
  
	
  
•  More	
  reusable	
  code.	
  Less	
  
maintenance	
  
	
  
What	
  should	
  be	
  considered?	
  
•  Who	
  is	
  wri4ng	
  the	
  test	
  cases?	
  	
  
	
  	
  	
  	
  App	
  developers	
  /	
  QA	
  developers?	
  
	
  
•  Which	
  mobile	
  pla=orms?	
  
•  Wri4ng	
  in	
  language	
  other	
  than	
  
pla=orm	
  specific	
  
A	
  bit	
  about	
  Cross	
  Pla,orm	
  test	
  tools	
  
Mobile	
  Cross	
  Pla,orm	
  Tools	
  
•  Instrument	
  based	
  tools	
  
	
  
	
  
	
  
•  Image	
  Recogni4on	
  tools	
  
	
  
– Calabash	
  
– Appium	
  
– Monkey	
  Talk	
  
– eggPlant	
  
– seetest	
  
A	
  bit	
  about	
  Calabash	
  
What	
  is	
  Calabash?	
  
	
  
•  A	
  framework	
  wriben	
  in	
  “Ruby”	
  
	
  
•  Has	
  client-­‐server	
  architecture	
  using	
  JSON	
  
	
  
•  Integrated	
  with	
  cucumber	
  
	
  
•  Supports	
  Android	
  and	
  iOS	
  pla=orms	
  
Calabash	
  :	
  Pros	
  &	
  Cons	
  
•  Pros	
  
–  Has	
  well	
  structured	
  client	
  framework	
  
–  Supports	
  backdoor	
  opera4ons	
  to	
  interact	
  with	
  
Applica4on	
  code	
  
	
  
•  Cons	
  
–  Can’t	
  run	
  on	
  “Produc4on”	
  build	
  in	
  iOS	
  
–  Have	
  to	
  use	
  Ruby	
  programming	
  language	
  
–  Forced	
  to	
  write	
  test	
  cases	
  in	
  	
  BDD	
  (	
  ‘Given	
  When	
  
Then’	
  )	
  
A	
  bit	
  about	
  Appium	
  
What	
  is	
  Appium?	
  
•  Is	
  a	
  Server	
  wriben	
  in	
  Node.js	
  using	
  JavaScript	
  
	
  
•  Uses	
  pla=orm-­‐provided	
  frameworks	
  under	
  the	
  
hood	
  
•  Supports	
  Web	
  driver	
  JSONWire	
  protocol	
  
	
  
•  Supports	
  iOS,	
  Android,	
  Mobile	
  Web	
  and	
  Hybrid	
  
applica4ons	
  
	
  
	
  
Appium	
  :	
  Pros	
  &	
  Cons	
  
•  Pros	
  
– Tests	
  can	
  be	
  wriben	
  in	
  any	
  (	
  most	
  of	
  )	
  
programming	
  languages	
  
– Good	
  community	
  support	
  
– Can	
  use	
  same	
  produc4on	
  builds	
  for	
  tes4ng	
  
	
  
•  Cons	
  
– Lible	
  bit	
  “buggy”	
  
A	
  bit	
  about	
  Con4nuous	
  Delivery	
  
Con3nuous	
  Delivery	
  is…	
  
	
  
A	
  prac4ce	
  of	
  crea4ng,	
  tes3ng	
  
and	
  releasing	
  stable	
  applica4on	
  
frequently	
  in	
  smaller	
  chunks	
  
What	
  is	
  Con3nuous	
  Delivery?	
  
Con3nuous	
  	
  
Delivery	
  
=	
  
Con3nuous	
  
Integra3on	
  	
  	
  +	
  
Con3nuous	
  
Test	
  Automa3on	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Implement	
  	
  
Feature	
  tests	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Feature	
  
Tests	
  Implement	
  	
  
Feature	
  tests	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Feature	
  
Tests	
  
Smoke	
  
Tests	
  
Implement	
  	
  
Feature	
  tests	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Feature	
  
Tests	
  
Smoke	
  
Tests	
  
Implement	
  	
  
Feature	
  tests	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Feature	
  
Tests	
  
Smoke	
  
Tests	
  
Nightly	
  	
  
Builds	
  
Nightly	
  	
  
Builds	
  
Implement	
  	
  
Feature	
  tests	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Feature	
  2	
  
Feature	
  1	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Master	
  
Feature	
  2	
  
Feature	
  1	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  Branch	
  
Master	
  
Feature	
  2	
  
Feature	
  1	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  Branch	
  
Integra4on	
  
Tests	
  
Master	
  
Feature	
  1	
  
Feature	
  2	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  2	
  
Integra4on	
  1	
  
Master	
  Branch	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  2	
  
Integra4on	
  1	
  
Master	
  Branch	
  
Nightly	
  	
  
Builds	
  
Nightly	
  	
  
Builds	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  2	
  
Integra4on	
  1	
  
Master	
  Branch	
  
Release	
  Branch	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  2	
  
Release	
  
Tests	
  
Integra4on	
  1	
  
Master	
  Branch	
  
Release	
  Branch	
  
Con3nuous	
  Test	
  Automa3on	
  
Development	
  Branch	
  
Integra4on	
  2	
  
Integra4on	
  1	
  
Master	
  Branch	
  
Release	
  Branch	
  
Release	
  
Tests	
  
Release	
  
Tests	
  
Scaling	
  build	
  infrastructure	
  
How	
  we	
  started?	
  
•  A	
  single	
  build	
  machine	
  with	
  Jenkins	
  
•  Running	
  on	
  Android	
  emulator	
  and	
  iOS	
  
simulator	
  
	
  
•  Run	
  the	
  	
  tests	
  only	
  on	
  “master”	
  branch	
  
every	
  night	
  
What	
  we	
  have	
  today?	
  
•  Distributed	
  CI	
  server	
  with	
  12	
  mac-­‐mini	
  
agents	
  	
  
	
  
•  Each	
  Agent	
  has	
  Android	
  and	
  iOS	
  device	
  
connected	
  
•  Running	
  the	
  tests	
  on	
  Real	
  devices	
  
•  Integrated	
  with	
  JIRA	
  
	
  
	
  
What	
  we	
  will	
  do	
  in	
  future?	
  
	
  
•  More	
  devices	
  to	
  each	
  agent	
  and	
  Parallelizing	
  
test	
  suite	
  
•  Using	
  VMs	
  for	
  scaling	
  build	
  agents	
  
	
  
	
  
Summary	
  
	
  
•  Worth	
  wri4ng	
  cross	
  pla=orms	
  tests.	
  It	
  Ensure	
  
behavior	
  is	
  same	
  in	
  every	
  pla=orm	
  	
  
	
  
•  Mobile	
  Test	
  Automa4on	
  tools	
  are	
  s4ll	
  evolving	
  
	
  
•  And,	
  they	
  have	
  limita4ons	
  
Nevertheless…	
  
	
  
•  We	
  reduced	
  Regression	
  tes4ng	
  to	
  a	
  day	
  for	
  
every	
  release	
  (	
  66%	
  4me	
  save	
  )	
  
•  3X	
  more	
  releases	
  to	
  the	
  app	
  stores	
  
•  More	
  stable	
  applica4on.	
  Crash	
  rate	
  reduced	
  
from	
  6%	
  to	
  2%	
  
hQps://techblog.badoo.com/	
  
	
  
Sathish	
  Gogineni	
  
sathish.gogineni@corp.badoo.com	
  
	
  

More Related Content

What's hot

Launch Better Apps, Faster - Perfecto & Orasi Joint Webinar Sldies
Launch Better Apps, Faster - Perfecto & Orasi Joint Webinar SldiesLaunch Better Apps, Faster - Perfecto & Orasi Joint Webinar Sldies
Launch Better Apps, Faster - Perfecto & Orasi Joint Webinar SldiesPerfecto by Perforce
 
Cloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More AccessibleCloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More AccessiblePerfecto by Perforce
 
Intro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabIntro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabLizzy Guido (she/her)
 
Speed upyourtest with_appium
Speed upyourtest with_appiumSpeed upyourtest with_appium
Speed upyourtest with_appiumVodqaBLR
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Frameworklaurent bristiel
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API TestingSauce Labs
 
API Test Automation Tips and Tricks
API Test Automation Tips and TricksAPI Test Automation Tips and Tricks
API Test Automation Tips and Trickstesthive
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile ReleasesDrew Hannay
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourcePerfecto by Perforce
 
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
 
Why Apps Succeed: 4 Keys to Winning the Digital Quality Game
Why Apps Succeed: 4 Keys to Winning the Digital Quality GameWhy Apps Succeed: 4 Keys to Winning the Digital Quality Game
Why Apps Succeed: 4 Keys to Winning the Digital Quality GameAustin Marie Gay
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Conference
 
Space Camp :: Introduction to API Security
Space Camp :: Introduction to API SecuritySpace Camp :: Introduction to API Security
Space Camp :: Introduction to API SecurityPostman
 
Monkey runner & Monkey testing
Monkey runner & Monkey testingMonkey runner & Monkey testing
Monkey runner & Monkey testingSWAAM Tech
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Rami Rantala
 

What's hot (20)

Launch Better Apps, Faster - Perfecto & Orasi Joint Webinar Sldies
Launch Better Apps, Faster - Perfecto & Orasi Joint Webinar SldiesLaunch Better Apps, Faster - Perfecto & Orasi Joint Webinar Sldies
Launch Better Apps, Faster - Perfecto & Orasi Joint Webinar Sldies
 
Cloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More AccessibleCloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More Accessible
 
Intro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabIntro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ Lab
 
Postman
PostmanPostman
Postman
 
Speed upyourtest with_appium
Speed upyourtest with_appiumSpeed upyourtest with_appium
Speed upyourtest with_appium
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Framework
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
API Test Automation Tips and Tricks
API Test Automation Tips and TricksAPI Test Automation Tips and Tricks
API Test Automation Tips and Tricks
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
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
 
Intro To AOP
Intro To AOPIntro To AOP
Intro To AOP
 
Why Apps Succeed: 4 Keys to Winning the Digital Quality Game
Why Apps Succeed: 4 Keys to Winning the Digital Quality GameWhy Apps Succeed: 4 Keys to Winning the Digital Quality Game
Why Apps Succeed: 4 Keys to Winning the Digital Quality Game
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
 
Space Camp :: Introduction to API Security
Space Camp :: Introduction to API SecuritySpace Camp :: Introduction to API Security
Space Camp :: Introduction to API Security
 
Monkey runner & Monkey testing
Monkey runner & Monkey testingMonkey runner & Monkey testing
Monkey runner & Monkey testing
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
 

Similar to Badoo: Cross platform Mobile Test Automation and Continuos Delivery

Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 
Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Thoughtworks
 
Mobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large ScaleMobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large ScaleSathish Gogineni
 
Mobile automation using appium.pptx
Mobile automation using appium.pptxMobile automation using appium.pptx
Mobile automation using appium.pptxSai Krishna
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 
Cross platform mobile approaches
Cross platform mobile approachesCross platform mobile approaches
Cross platform mobile approachesPhuong Hoang Vu
 
Automating Mobile Applications
Automating Mobile ApplicationsAutomating Mobile Applications
Automating Mobile ApplicationsApril Luk
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev opsAgile Montréal
 
Continuous testing on emulators using the espresso test automation framework
Continuous testing on emulators using the espresso test automation frameworkContinuous testing on emulators using the espresso test automation framework
Continuous testing on emulators using the espresso test automation frameworkSauce Labs
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, UkraineJustin Ison
 
Shailaja_SoftwareEngineerQA_4.9Exp
Shailaja_SoftwareEngineerQA_4.9ExpShailaja_SoftwareEngineerQA_4.9Exp
Shailaja_SoftwareEngineerQA_4.9ExpShailaja Chundru
 
App Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by LeawareApp Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by LeawareLeaware.com
 
Launch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyLaunch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyManish Lachwani
 
Dev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teamsDev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teamsMahesh Arali
 
IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps Sanjeev Sharma
 
Raj Subramanian - Mobile Web Testing
Raj Subramanian - Mobile Web TestingRaj Subramanian - Mobile Web Testing
Raj Subramanian - Mobile Web TestingQA or the Highway
 

Similar to Badoo: Cross platform Mobile Test Automation and Continuos Delivery (20)

Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015
 
Mobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large ScaleMobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large Scale
 
Mobile automation using appium.pptx
Mobile automation using appium.pptxMobile automation using appium.pptx
Mobile automation using appium.pptx
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
Cross platform mobile approaches
Cross platform mobile approachesCross platform mobile approaches
Cross platform mobile approaches
 
Automating Mobile Applications
Automating Mobile ApplicationsAutomating Mobile Applications
Automating Mobile Applications
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Continuous testing on emulators using the espresso test automation framework
Continuous testing on emulators using the espresso test automation frameworkContinuous testing on emulators using the espresso test automation framework
Continuous testing on emulators using the espresso test automation framework
 
Automating android
Automating androidAutomating android
Automating android
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
Shailaja_SoftwareEngineerQA_4.9Exp
Shailaja_SoftwareEngineerQA_4.9ExpShailaja_SoftwareEngineerQA_4.9Exp
Shailaja_SoftwareEngineerQA_4.9Exp
 
App Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by LeawareApp Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by Leaware
 
Launch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyLaunch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with Appurify
 
Dev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teamsDev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teams
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Raj Subramanian - Mobile Web Testing
Raj Subramanian - Mobile Web TestingRaj Subramanian - Mobile Web Testing
Raj Subramanian - Mobile Web Testing
 

More from CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

More from CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

Badoo: Cross platform Mobile Test Automation and Continuos Delivery

  • 1. Badoo:  Cross  pla,orm  mobile  test   automa3on  and  con3nuous  delivery     Sathish  Gogineni   Mobile  QA  Automa4on  Lead  
  • 2.
  • 3. Raise  your  hands  if….   •  You’re  working  in  Mobile  pla=orm?   •  You  have  apps  on  mul4ple  mobile  pla=orms?   •  You’re  aware  of  the  test  automa4on  tools  in   Mobile?   •  You  are  using  func4onal  test  automa4on?   •  You’re  using  “Cross  pla=orm”  test  automa4on?  
  • 4. A  bit  of  self  promo3on  
  • 5. Who  is  Badoo?   •  A  social  networking  service   •  241  million  users   •  Available  in  190  countries.     •  Support  45  languages  on  mobile   •  250  employees  based  in  London  and  Moscow  
  • 6. More  about  Badoo   •  Badoo  has  2  popular  products       •  Apps  support  4  mobile  pla=orms   – Badoo   – HotOrNot  
  • 7. Mobile  Test  Automa3on  at  Badoo   •  A  single  test  automa4on  code  base   –  Run  across  two  products   –  Run  on  three  pla=orms   –  Run  on  phones  and  tablets     •  We  have   –  68%  func4onal  coverage  for  Badoo  in  Android  &  iOS  (  390   scenarios  )   –  76%  func4onal  coverage  for  HotOrNot  in  Android  &  iOS  (  250   scenarios  )   –  52%  func4onal  coverage  in  MobileWeb  (  165  scenarios  )   –  And  in  Windows  pla=orm  we  have  0%  
  • 8.
  • 9. A  bit  about  Cross  pla,orm  test  
  • 10. Mobile  cross  pla,orm  test  automa3on?   •  Write  once  ,  Run  anywhere(?)     •  Write  test  specifica4ons     •  Implement  the  tests  at  high  level     •  Implement  the  pla=orm/applica4on  UI   code    
  • 11. Cross  pla,orm  stack  in  BDD   Scenarios   Feature   Step  defini3ons   Android  Page   iOS  Page   Test  Specifica4on   High  level   implementa4on   Pla=orm  specific  
  • 12. Why  cross  pla,orm  test  automa3on?   •  Business  logic  is  same.  It  is  only   interac4on  with  UI  is  change     •  Pooled  resources     •  More  reusable  code.  Less   maintenance    
  • 13. What  should  be  considered?   •  Who  is  wri4ng  the  test  cases?            App  developers  /  QA  developers?     •  Which  mobile  pla=orms?   •  Wri4ng  in  language  other  than   pla=orm  specific  
  • 14.
  • 15. A  bit  about  Cross  Pla,orm  test  tools  
  • 16. Mobile  Cross  Pla,orm  Tools   •  Instrument  based  tools         •  Image  Recogni4on  tools     – Calabash   – Appium   – Monkey  Talk   – eggPlant   – seetest  
  • 17. A  bit  about  Calabash  
  • 18. What  is  Calabash?     •  A  framework  wriben  in  “Ruby”     •  Has  client-­‐server  architecture  using  JSON     •  Integrated  with  cucumber     •  Supports  Android  and  iOS  pla=orms  
  • 19. Calabash  :  Pros  &  Cons   •  Pros   –  Has  well  structured  client  framework   –  Supports  backdoor  opera4ons  to  interact  with   Applica4on  code     •  Cons   –  Can’t  run  on  “Produc4on”  build  in  iOS   –  Have  to  use  Ruby  programming  language   –  Forced  to  write  test  cases  in    BDD  (  ‘Given  When   Then’  )  
  • 20. A  bit  about  Appium  
  • 21. What  is  Appium?   •  Is  a  Server  wriben  in  Node.js  using  JavaScript     •  Uses  pla=orm-­‐provided  frameworks  under  the   hood   •  Supports  Web  driver  JSONWire  protocol     •  Supports  iOS,  Android,  Mobile  Web  and  Hybrid   applica4ons      
  • 22. Appium  :  Pros  &  Cons   •  Pros   – Tests  can  be  wriben  in  any  (  most  of  )   programming  languages   – Good  community  support   – Can  use  same  produc4on  builds  for  tes4ng     •  Cons   – Lible  bit  “buggy”  
  • 23.
  • 24. A  bit  about  Con4nuous  Delivery  
  • 25. Con3nuous  Delivery  is…     A  prac4ce  of  crea4ng,  tes3ng   and  releasing  stable  applica4on   frequently  in  smaller  chunks  
  • 26. What  is  Con3nuous  Delivery?   Con3nuous     Delivery   =   Con3nuous   Integra3on      +   Con3nuous   Test  Automa3on  
  • 27. Con3nuous  Test  Automa3on   Development  Branch  
  • 28. Con3nuous  Test  Automa3on   Development  Branch  
  • 29. Con3nuous  Test  Automa3on   Development  Branch   Implement     Feature  tests  
  • 30. Con3nuous  Test  Automa3on   Development  Branch   Feature   Tests  Implement     Feature  tests  
  • 31. Con3nuous  Test  Automa3on   Development  Branch   Feature   Tests   Smoke   Tests   Implement     Feature  tests  
  • 32. Con3nuous  Test  Automa3on   Development  Branch   Feature   Tests   Smoke   Tests   Implement     Feature  tests  
  • 33. Con3nuous  Test  Automa3on   Development  Branch   Feature   Tests   Smoke   Tests   Nightly     Builds   Nightly     Builds   Implement     Feature  tests  
  • 34. Con3nuous  Test  Automa3on   Development  Branch   Feature  2   Feature  1  
  • 35. Con3nuous  Test  Automa3on   Development  Branch   Master   Feature  2   Feature  1  
  • 36. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  Branch   Master   Feature  2   Feature  1  
  • 37. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  Branch   Integra4on   Tests   Master   Feature  1   Feature  2  
  • 38. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  2   Integra4on  1   Master  Branch  
  • 39. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  2   Integra4on  1   Master  Branch   Nightly     Builds   Nightly     Builds  
  • 40. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  2   Integra4on  1   Master  Branch   Release  Branch  
  • 41. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  2   Release   Tests   Integra4on  1   Master  Branch   Release  Branch  
  • 42. Con3nuous  Test  Automa3on   Development  Branch   Integra4on  2   Integra4on  1   Master  Branch   Release  Branch   Release   Tests   Release   Tests  
  • 43.
  • 45. How  we  started?   •  A  single  build  machine  with  Jenkins   •  Running  on  Android  emulator  and  iOS   simulator     •  Run  the    tests  only  on  “master”  branch   every  night  
  • 46.
  • 47. What  we  have  today?   •  Distributed  CI  server  with  12  mac-­‐mini   agents       •  Each  Agent  has  Android  and  iOS  device   connected   •  Running  the  tests  on  Real  devices   •  Integrated  with  JIRA      
  • 48.
  • 49.
  • 50. What  we  will  do  in  future?     •  More  devices  to  each  agent  and  Parallelizing   test  suite   •  Using  VMs  for  scaling  build  agents      
  • 51. Summary     •  Worth  wri4ng  cross  pla=orms  tests.  It  Ensure   behavior  is  same  in  every  pla=orm       •  Mobile  Test  Automa4on  tools  are  s4ll  evolving     •  And,  they  have  limita4ons  
  • 52. Nevertheless…     •  We  reduced  Regression  tes4ng  to  a  day  for   every  release  (  66%  4me  save  )   •  3X  more  releases  to  the  app  stores   •  More  stable  applica4on.  Crash  rate  reduced   from  6%  to  2%  
  • 53. hQps://techblog.badoo.com/     Sathish  Gogineni   sathish.gogineni@corp.badoo.com