SlideShare a Scribd company logo
1 of 34
Matan Goren and Yehuda Miller
QA Engineers
Test Automation in a
Continuous Deployment
Environment
• More than 80 million registered users
• 28 million family trees
• Website, mobile apps (iOS and Android),
desktop apps (windows and Mac)
• 2.5 billion profiles (names in family trees)
• 4.5 billion historical documents and records.
Including the world’s largest collection of
newspapers
• 200 million photos
• 42 languages
• 215 employees
Who we are
Where we were
• All manual QA
• Repetitive tasks
• Time consuming
• Two service packs a week
• Holding back development
• SPC size limits error handling
• Number of tests
• Desktop: 538 (469)
• Mobile-web 50 (0)
• Runtime of full suite: 37 min (51 min)
• RND size
• Number of testers: 13 (7 automations)
• Developers: 50
• Grids: 4 (1)
• Tests run on prod and semi staging env.
• Continuous Deployment
Where we are today:
Gray Area for full image
“You don't have to be a genius or a visionary or
even a college graduate to be successful. You
just need a framework and a dream.”
- Michael Dell
• Ruby
• Watir-webdriver
• Cucumber.io
• Page-Object Gem
• Grid Grouper
• Selenium Grid/Grid Extras
• Jenkins
Framework
• Easy language for inexperienced
developers
• Open source community is very active
• It ain’t Java!
Ruby
• Native to Ruby
• Cleaner than Selenium
• Adds methods not native to Selenium
• “Being able to select an element by a explicit
identifier” –watirmelon.com
Watir-webdriver
Selenium:
Watir:
Why Watir is cleaner!
• Provides a simple interface to the
define and interact with elements on a
page.
• Works with both Watir and Selenium.
• Simple way of introducing OOP
without a lot of technical knowledge
required
• Page factory module handles common
page classes action.
Page-Object gem
• BDD tool
• Tests are written in plain English
• Makes for easy debugging
• Easy move from Manual test to automatic test
• Helps soften the introduction to
programming
• “Top down” programming
• Write a step
• Define the step
• Make it work
• Pre and post test hooks
Cucumber.io
Cucumber Feature
Directly with Watir-Webdriver
Using page-object
Tags specify the suites
Step Definitions
Directly with Watir-Webdriver
Using page-object
Page-object example
Using page-object
Defining page-object
Verify page loaded with
page-object
• Homegrown tool
• Takes a given suite and distributes the
test across several groups
• Utilizes open-source code from
cucumber and parallel_tests gems
• Multiple reports problem is solved by a
report merger tool that was developed
in house.
Grid Grouper
• Chuck Norris!
• Was already in use by RND
• Open source (lot’s of available plugins)
• Schedule automated builds
• Kick off manual builds with a few clicks
• Control build parameters (server, suite, etc).
• Can build in any of our environments with any
combination of tags
• Holds build history for a specified amount of
time
• Merged report is stored in each build.
• HipChat and email notifications
Jenkins
Daily Build
Merged Report
Failed scenario
• Comprised of Selenium Grid and
Selenium-Grid-Extras
• Selenium-Grid-Extras makes the basic
setup streamlined
• Gives extra features such as:
• Pulling in updated drivers for all browsers
• Also for Selenium itself
The Grids
• We have 4 grids
• Each grid has 4 VMs
• The VMs include 1 hub-node and 3 other nodes
• The hubs are Jenkins slaves
• Each node can run 4 parallel tests on Chrome
• One grid is dedicated to CD
• We can pull a grid “offline” for testing infra
upgrades
• Ability to have multiple test runs in parallel on
different environments and tags
• Only runs through Jenkins
• Jenkins selects grids automatically based on availability
and run history
How we use the grids
“How long does it take you to get one line of
code into production?”
- Wisdom of the Internet ;)
• We moved to CD in the last 6 months
• On average we distribute code to
production 20 times per day.
• Comes with challenges
• Automated test on every code release
• Only minimal tests on each release
• Dev is responsible to run appropriate
tests PRE-RELEASE in staging
The CD mindset
• Risk reduction to production
• Small incremental changes are easier to
monitor and revert in necessary
• Has lower impact on the system
• Increasing R&D velocity
• Avoiding wasted time on merges and complex
coordination before dist.
• Allow R&D and product to experiment
and innovate more frequently.
RND Goals
• Provide a safety net
• Avoid the bottleneck of manual sanity
testing
• Reliability
• No flaky tests
• No false failures
• QA E2E test should not be the new
bottleneck
QA Goals
• QA are responsible for E2E tests only.
• Dev write and maintain Unit tests
• E2E tests are written during
development process
• All QA members monitor CD suite
results.
• CD E2E tests are NOT acceptance
tests
Responsibilities
• CD flow from commit to prod is ~25
minutes
• Current QA CD suite takes 1.5 minute
in best case scenario.
• Runs in parallel to some of the jobs in
the CD flow
• Limited by time frame of parallel jobs
• Still have room for further growth
Timing
• Minimal suite – No full regression on
commit
• Occasional false failures due to
env/site performance/human error
Risks
• Reliability
• Velocity of tests
• Pinpointing the failure
• CD halt on failure.
• Large scale tests refactoring due to
changes.
Challenges of CD
“A challenge only becomes an obstacle
when you bow to it.”
- Ray A. Davis
• Maintaining production data integrity
• Reliance on pre-existing data
• Running on local staging env
• Fast adaptation to feature flags
• Identifying failure reasons
• Need a true BDD/TDD mindset
Challenges QA faces
• Testing on more browsers
• IE
• Spartan
• Firefox
• Suites for our native apps
• iOS
• Android
• Upgrading the infra
• Gems, grids, Ruby…
The road ahead…
Questions?
AA Milne
Thanks!
We are hiring

More Related Content

What's hot

CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CloudBees
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
IP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryIP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryMandi Walls
 
Docker and Jenkins Pipeline
Docker and Jenkins PipelineDocker and Jenkins Pipeline
Docker and Jenkins PipelineMark Waite
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...Puppet
 
Leveraging HP Performance Center
Leveraging HP Performance CenterLeveraging HP Performance Center
Leveraging HP Performance CenterMartin Spier
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 
Gradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhereGradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhereStrannik_2013
 
Gradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypesGradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypesStrannik_2013
 
Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Provectus
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for NetworkDamien Garros
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an IntroductionSanjeev Sharma
 
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...Puppet
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps worldBert Jan Schrijver
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamDeborah Schalm
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3Ahmed Misbah
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps TransformationDevOps.com
 

What's hot (20)

CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
IP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryIP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous Delivery
 
Docker and Jenkins Pipeline
Docker and Jenkins PipelineDocker and Jenkins Pipeline
Docker and Jenkins Pipeline
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
Leveraging HP Performance Center
Leveraging HP Performance CenterLeveraging HP Performance Center
Leveraging HP Performance Center
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
Gradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhereGradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhere
 
Gradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypesGradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypes
 
Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins Team
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps Transformation
 
Database CI/CD Pipeline
Database CI/CD PipelineDatabase CI/CD Pipeline
Database CI/CD Pipeline
 

Viewers also liked

Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidNaresh Jain
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageRan Levy
 
Build mobile application that is easy to automate
Build mobile application that is easy to automateBuild mobile application that is easy to automate
Build mobile application that is easy to automateadamcarmi
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentMax Klymyshyn
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing PyramidNaresh Jain
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformLivePerson
 
Wix Automation Infrastructure
Wix Automation InfrastructureWix Automation Infrastructure
Wix Automation Infrastructureilan tal
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework DesignsSauce Labs
 

Viewers also liked (11)

Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
Wix automation
Wix automationWix automation
Wix automation
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritage
 
Build mobile application that is easy to automate
Build mobile application that is easy to automateBuild mobile application that is easy to automate
Build mobile application that is easy to automate
 
Rajasthan State Report February 2017
Rajasthan State Report February 2017Rajasthan State Report February 2017
Rajasthan State Report February 2017
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platform
 
Wix Automation Infrastructure
Wix Automation InfrastructureWix Automation Infrastructure
Wix Automation Infrastructure
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 

Similar to MyHeritage - End 2 End testing Infra

DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro - Database DevOps
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerRightScale
 
MHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark Waite
MHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark WaiteMHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark Waite
MHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark WaiteAgileDenver
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week Indiaexortech
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageDr. Spock
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itFarooq Ali
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release WorkflowTuenti
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementChristian Vos
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CDShanmuga S Muthu
 
#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation FrameworkAgile Testing Alliance
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha
 
Continuous Integration - Mobile Practice
Continuous Integration - Mobile PracticeContinuous Integration - Mobile Practice
Continuous Integration - Mobile PracticeHARMAN Services
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testingBestBrains
 

Similar to MyHeritage - End 2 End testing Infra (20)

DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
 
MHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark Waite
MHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark WaiteMHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark Waite
MHA2018 - Docker and Jenkins Pipeline for Continuous integration - Mark Waite
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific Language
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating it
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release Workflow
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinement
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
33rd degree
33rd degree33rd degree
33rd degree
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
PP_Eric_Gandt
PP_Eric_GandtPP_Eric_Gandt
PP_Eric_Gandt
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha Test
 
Continuous Integration - Mobile Practice
Continuous Integration - Mobile PracticeContinuous Integration - Mobile Practice
Continuous Integration - Mobile Practice
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

MyHeritage - End 2 End testing Infra

  • 1. Matan Goren and Yehuda Miller QA Engineers Test Automation in a Continuous Deployment Environment
  • 2. • More than 80 million registered users • 28 million family trees • Website, mobile apps (iOS and Android), desktop apps (windows and Mac) • 2.5 billion profiles (names in family trees) • 4.5 billion historical documents and records. Including the world’s largest collection of newspapers • 200 million photos • 42 languages • 215 employees Who we are
  • 3. Where we were • All manual QA • Repetitive tasks • Time consuming • Two service packs a week • Holding back development • SPC size limits error handling
  • 4. • Number of tests • Desktop: 538 (469) • Mobile-web 50 (0) • Runtime of full suite: 37 min (51 min) • RND size • Number of testers: 13 (7 automations) • Developers: 50 • Grids: 4 (1) • Tests run on prod and semi staging env. • Continuous Deployment Where we are today:
  • 5. Gray Area for full image “You don't have to be a genius or a visionary or even a college graduate to be successful. You just need a framework and a dream.” - Michael Dell
  • 6. • Ruby • Watir-webdriver • Cucumber.io • Page-Object Gem • Grid Grouper • Selenium Grid/Grid Extras • Jenkins Framework
  • 7. • Easy language for inexperienced developers • Open source community is very active • It ain’t Java! Ruby
  • 8. • Native to Ruby • Cleaner than Selenium • Adds methods not native to Selenium • “Being able to select an element by a explicit identifier” –watirmelon.com Watir-webdriver
  • 10. • Provides a simple interface to the define and interact with elements on a page. • Works with both Watir and Selenium. • Simple way of introducing OOP without a lot of technical knowledge required • Page factory module handles common page classes action. Page-Object gem
  • 11. • BDD tool • Tests are written in plain English • Makes for easy debugging • Easy move from Manual test to automatic test • Helps soften the introduction to programming • “Top down” programming • Write a step • Define the step • Make it work • Pre and post test hooks Cucumber.io
  • 12. Cucumber Feature Directly with Watir-Webdriver Using page-object Tags specify the suites
  • 13. Step Definitions Directly with Watir-Webdriver Using page-object
  • 14. Page-object example Using page-object Defining page-object Verify page loaded with page-object
  • 15. • Homegrown tool • Takes a given suite and distributes the test across several groups • Utilizes open-source code from cucumber and parallel_tests gems • Multiple reports problem is solved by a report merger tool that was developed in house. Grid Grouper
  • 16. • Chuck Norris! • Was already in use by RND • Open source (lot’s of available plugins) • Schedule automated builds • Kick off manual builds with a few clicks • Control build parameters (server, suite, etc). • Can build in any of our environments with any combination of tags • Holds build history for a specified amount of time • Merged report is stored in each build. • HipChat and email notifications Jenkins
  • 20. • Comprised of Selenium Grid and Selenium-Grid-Extras • Selenium-Grid-Extras makes the basic setup streamlined • Gives extra features such as: • Pulling in updated drivers for all browsers • Also for Selenium itself The Grids
  • 21. • We have 4 grids • Each grid has 4 VMs • The VMs include 1 hub-node and 3 other nodes • The hubs are Jenkins slaves • Each node can run 4 parallel tests on Chrome • One grid is dedicated to CD • We can pull a grid “offline” for testing infra upgrades • Ability to have multiple test runs in parallel on different environments and tags • Only runs through Jenkins • Jenkins selects grids automatically based on availability and run history How we use the grids
  • 22. “How long does it take you to get one line of code into production?” - Wisdom of the Internet ;)
  • 23. • We moved to CD in the last 6 months • On average we distribute code to production 20 times per day. • Comes with challenges • Automated test on every code release • Only minimal tests on each release • Dev is responsible to run appropriate tests PRE-RELEASE in staging The CD mindset
  • 24. • Risk reduction to production • Small incremental changes are easier to monitor and revert in necessary • Has lower impact on the system • Increasing R&D velocity • Avoiding wasted time on merges and complex coordination before dist. • Allow R&D and product to experiment and innovate more frequently. RND Goals
  • 25. • Provide a safety net • Avoid the bottleneck of manual sanity testing • Reliability • No flaky tests • No false failures • QA E2E test should not be the new bottleneck QA Goals
  • 26. • QA are responsible for E2E tests only. • Dev write and maintain Unit tests • E2E tests are written during development process • All QA members monitor CD suite results. • CD E2E tests are NOT acceptance tests Responsibilities
  • 27. • CD flow from commit to prod is ~25 minutes • Current QA CD suite takes 1.5 minute in best case scenario. • Runs in parallel to some of the jobs in the CD flow • Limited by time frame of parallel jobs • Still have room for further growth Timing
  • 28. • Minimal suite – No full regression on commit • Occasional false failures due to env/site performance/human error Risks
  • 29. • Reliability • Velocity of tests • Pinpointing the failure • CD halt on failure. • Large scale tests refactoring due to changes. Challenges of CD
  • 30. “A challenge only becomes an obstacle when you bow to it.” - Ray A. Davis
  • 31. • Maintaining production data integrity • Reliance on pre-existing data • Running on local staging env • Fast adaptation to feature flags • Identifying failure reasons • Need a true BDD/TDD mindset Challenges QA faces
  • 32. • Testing on more browsers • IE • Spartan • Firefox • Suites for our native apps • iOS • Android • Upgrading the infra • Gems, grids, Ruby… The road ahead…

Editor's Notes

  1. Number in parenthesis is last year Desktop tests are on Chrome only for now. Mobile-web tests are running in chrome with emulation mode turned on. Full suite runs at least 2x daily Semi staging is production database with offline code.
  2. Anyone can write/read this (even devs/product) Easy translation of a manual test to automated test Multiple scenarios in one feature Feature description Scenario description Highlighted parts are regexps that are used as arguments in the step def Need to balance what is added to a scenario (don’t over-test, but don’t leave it too sparse) Tags on the top determine the test suit
  3. “on” is a method that initializes a page class.
  4. We use Page-object class to represent an actual page Top section is definition of elements in the page. Have the ability to add custom elements and attributes (support for Angular, etc.) Second section is methods performed in the page. Loaded? Method is used for verification that a page loaded. We keep the verification method of the page itself in the class of that page
  5. Because our setup is very unique, we needed to build this tool Working on putting additional effort to publish it as a gem
  6. Running a failed test up to 3 time. Considered failed only if fails three times. Each run has it’s own report.
  7. Failed step is marked. Includes stack trace Screenshot of failure is embedded. Open with the link.
  8. Allows multiple people to run tests at the same time on different environments
  9. We started CD only with unit tests. Added QA tests within two weeks because the site went down several times which only our tests could have caught
  10. During development process, it’s the dev and QA’s responsibility to run automations the new code.
  11. In release cycles this quickly it’s impossible to test everything manually or run a large automation suite E2E test run twice: Pre-dist on a Canary server (production server without traffic), and post-dist on prod after web servers get the code Pre-dist is only one which fails the flow, post dist still requires immediate investigation. (All QA monitor this)
  12. Note: prefer reliability and speed of tests over coverage and safety to enable us to distribute more frequently. Reduce dev time on the actual commit/dist. Adds responsibility to devs to make for damn sure their code works
  13. If one of our tests fail it stops the build Can’t commit test code that is not synched with prod.