SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Orchestrating a big automated testing pipeline in
multiple environments
© Daitan Group – Private & Confidential – v1.1 2
About me
• 9 years experience in Software
Engineering, and 2 in Electronics
• BSc in Computer Science – IC-Unicamp
• Electronics Technician – Cotuca-Unicamp
• Currently working on Data Engineering,
Performance Engineering and Test
Automation at Daitan Group
• I love developing and testing!
kelvsar@gmail.com
https://www.linkedin.com/in/kelvin-ksps/
Kelvin Ronny Marques da Silva
CHALLENGE
© Daitan Group – Private & Confidential – v1.1 4
• Mac OS 10.11
• Mac OS 10.12
• Mac OS 10.13
• 13 Environments
Problem 1: Ensure the product runs well on all
supported operating systems
• Windows 7 x64
• Windows 7 x86
• Windows 8 x64
• Windows 8 x86
• Windows 8.1 x64
• Windows 8.1 x64
• Windows 10 x64
• Windows 10 x86
© Daitan Group – Private & Confidential – v1.1 5
• Mac OS 10.11
• Mac OS 10.12
• Mac OS 10.13
• Chrome
• Firefox
• Internet Explorer
• Safari
13 * 3 = 39 setups!
Problem 2: Ensure the product runs well on all
supported operating systems and browsers
• Windows 7 x64
• Windows 7 x86
• Windows 8 x64
• Windows 8 x86
• Windows 8.1 x64
• Windows 8.1 x86
• Windows 10 x64
• Windows 10 x86
© Daitan Group – Private & Confidential – v1.1 6
Ex.:
• 1 machine is the host and 2 machines are guests of a
video conferencing meeting
• 2 or more machines are playing a Game
• 1 machine is the presenter and 2 are the participants
on a webinar
Problem 3: Product only runs one instance per
machine
Problem 4: Test Suites contain scenarios using more
than one instance of the product
© Daitan Group – Private & Confidential – v1.1 7
• Parallel Plans:
Installation Tests, Memory Tests, and Test Cases using
different sessions.
• Sequential Plans:
Account Limitations, Database restriction, and
Sessions Tested individually
Problem 5: Some complex test suites cannot run in
parallel in different clients
© Daitan Group – Private & Confidential – v1.1 8
• In order to solve all those problems, we need a
mechanism to automate and orchestrate everything
• Due to the high quantity of environment
combinations, the complexity of organizing and
executing tests increases and can lead to an
ineffective pipeline.
Problem 6: Orchestrate
© Daitan Group – Private & Confidential – v1.1 9
Challenge
• How to coordinate and schedule tests in an easy
way?
• How to continue delivering the tests in an agile way,
despite those problems?
• How creating and working with a solution for those
problems could be simple?
Constructing the Solution
© Daitan Group – Private & Confidential – v1.1 11
Jmeter
• The most famous free tool for performance testing
against API
• It could be used for regression testing against API as
well
• We could create test plan, steps from a test and
Threads to collect the result of the API Calls
• We can also integrate Jmeter with external libs, since
we can use Java or Javascript inside JMeter
• It is possible to send requests to more than one
machine or server
© Daitan Group – Private & Confidential – v1.1 12
Instead of using JUnit or TestNG…
... We just need to create a server with the libraries
used for test/task automation (Selenium, Sikuli, White,
etc)
It does not require a specific language (we use Java for
this server, but a server built with the libraries for
automation could be created using Python, C#, etc)
© Daitan Group – Private & Confidential – v1.1 13
We created our QA-Server!
• Java + Maven
• Spring Framework (dependency injection)
• Apache CXF (our base for the server, btw)
• External Libraries
© Daitan Group – Private & Confidential – v1.1 14
How QA-Server works
0. HTTP Client send a HTTP request to QA-
Server;
1. Controller receives the request HTTP to
execute some action or to check
something;
2. Controller send the data to the proper
Service, based on the request received;
3. Service chooses the proper Project to
initiate some action or verification;
4. Project does the action or verification
and returns the result to the Service;
5. Service returns the Result to the
Controller;
6. Controller returns the Result to HTTP
Client
Controllers
QA-SERVER
Services
HTTP
Client
Controller
Service
Project
A
© Daitan Group – Private & Confidential – v1.1 15
Example: JMeter Side
Jmeter Plan HTTP Requests
© Daitan Group – Private & Confidential – v1.1 16
Example: QA-Server
Controller
© Daitan Group – Private & Confidential – v1.1 17
Example: QA-Server
Service
© Daitan Group – Private & Confidential – v1.1 18
Example: Devopsdays Project
© Daitan Group – Private & Confidential – v1.1 19
QA-Server + Jmeter: Demo
© Daitan Group – Private & Confidential – v1.1 20
QA-Server + Jmeter: Another Example
© Daitan Group – Private & Confidential – v1.1 21
Remaining Problems:
Problem 5: Support Sequential Plans
Problem 6: Orchestrate to create an effective pipeline
Problem 3: Several Instances of the Client
Problem 4: One Instance per Machine
JMeter coordinates what QA-Server will do on each machine being
used by the test plan.
Problem 1: Support all OS.
Problem 2: Support all browsers.
QA-Server on each OS, pointing to the project, libraries and frameworks.
Partial Solution
© Daitan Group – Private & Confidential – v1.1 22
Solving the 2 problems left
• We have created an automated orchestration
of our complex test suites that delivers the
effectiveness needed in Devops culture
• Now, we can coordinate and schedule tests in
an easy way, implement changes in
parameters, and cover the maximum number
of machines
© Daitan Group – Private & Confidential – v1.1 23
QA-Planner
We have developed a tool called QA-Planner.
FrontEnd: AngularJS + Javascript
BackEnd: QA-Server / Java
DB: MongoDB
© Daitan Group – Private & Confidential – v1.1 24
What is QA-Planner?
• Coordinate and schedule tests in an easy
way, in different machines, respecting the
dependency of each test set (Sequential
Plans, for instance)
• Verify if the automation tasks are being
done properly on each machine
• Return an automated effective pipeline of
the Test Suite
The idea came from the following concepts:
© Daitan Group – Private & Confidential – v1.1 25
QA-Planner: Scheduler Algorithm
The Algorithm needs to deal with these restrictions:
• Sequential Test Plans must not run in parallel
• We need to be able to choose an order for each Test
Plan
• It must be accessible/runnable by external tools,
such as Jenkins
• Everyone on the Devops team must be able to create
or access the Tool in realtime
© Daitan Group – Private & Confidential – v1.1 26
QA-Planner: JMeter Plans Orchestrator
• QA-Planner controls which plans will run and when
• Once that pipeline starts to run, the orchestrator will
be processing all plans and it will keep monitoring
JMeter processes
• It also changes the variables inserted into JMeter on
execution time
© Daitan Group – Private & Confidential – v1.1 27
How QA-Planner works
0. User selects the plans and machines
1. User requests a pipeline
2. BackEnd uses the Scheduler Algorithm
to create the pipeline
3. User receives a pipeline candidate
4.
• A) User accepts the pipeline and the
tests begin.
• B) User accepts the pipeline and take the
id to put on other tool
• C) User rejects the pipeline. User can
change the plans or machines selected
before to create a new pipeline.
Node
A
Node
B
Node
C
Node
E
Node
D
Planner
Page
QA-Server
Leader
Node
© Daitan Group – Private & Confidential – v1.1 28
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 29
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 30
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 31
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 32
QA-Planner: Roles
Leader: Machine under testing
Aux: One or more machines used to make all
scenarios “testable” by automated tests
Ex.: Leader is the Game running on Windows 8,
others 3 machines (don’t care about OS) will join the
Game as well, but the focus here is testing all features
on Windows 8
© Daitan Group – Private & Confidential – v1.1 33
QA-Planner: Demo – Full Test Suite Pipeline
© Daitan Group – Private & Confidential – v1.1 34
QA-Planner: Demo
If each test plan takes 10 minutes to be done.
5 scenarios * 13 machines =
Traditional pipeline: 650 minutes!
QA-Planner: 650/5 = 130 minutes!
© Daitan Group – Private & Confidential – v1.1 35
QA-Planner: Demo – Demo Test Suite Pipeline
© Daitan Group – Private & Confidential – v1.1 36
Problem 5: Support Sequential Plans
Problem 6: Orchestrate to create an effective pipeline
QA-Planner coordinates and orchestrates everything!
Problem 3: Several Instances of the Client
Problem 4: One Instance per Machine
JMeter coordinates what QA-Server will do on each machine being
used by the test plan.
Problem 1: Support all OS.
Problem 2: Support all browsers.
QA-Server on each OS, pointing to the project, libraries and frameworks.
Solved!
© Daitan Group – Private & Confidential – v1.1 37
Conclusion
• This solution saved a lot of time
• It’s really easy to create new tests and reuse the
steps by using HTTP calls on JMeter
• It’s not just solving problems, it is a new pattern
followed here
Thank You!
kelvsar@gmail.com / ksilva@daitangroup.com

Weitere ähnliche Inhalte

Was ist angesagt?

The Art of Sitecore Upgrades
The Art of Sitecore UpgradesThe Art of Sitecore Upgrades
The Art of Sitecore UpgradesRuud van Falier
 
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014Knowit Oy
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Stresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting StartedStresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting Startedstresstimulus
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 
Deployability
DeployabilityDeployability
DeployabilityLen Bass
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricPatryk Bandurski
 
Prod-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsProd-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsVMware Tanzu
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and SpringVMware Tanzu
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Bartosz Chrabski
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineSlawa Giterman
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...Simplilearn
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns ThoughtWorks Studios
 
How To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarHow To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarVMware Tanzu
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile AgeBlazeMeter
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systemsLen Bass
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool optionsLen Bass
 
Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Akshata Sawant
 

Was ist angesagt? (20)

The Art of Sitecore Upgrades
The Art of Sitecore UpgradesThe Art of Sitecore Upgrades
The Art of Sitecore Upgrades
 
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Stresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting StartedStresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting Started
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Deployability
DeployabilityDeployability
Deployability
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
 
Prod-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsProd-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized Applications
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
 
Jmeter Walkthrough
Jmeter WalkthroughJmeter Walkthrough
Jmeter Walkthrough
 
How To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarHow To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing Superstar
 
LoadRunner walkthrough
LoadRunner walkthroughLoadRunner walkthrough
LoadRunner walkthrough
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile Age
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool options
 
Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13
 

Ähnlich wie Orchestrating Automated Tests in Different Systems - Please Download to watch the embedded videos ;)

Testlink Test Management with Teamforge
Testlink Test Management with TeamforgeTestlink Test Management with Teamforge
Testlink Test Management with TeamforgeCollabNet
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinDiego Garber
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Stephen Ritchie
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsPerfecto by Perforce
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework'Ashmeet Sehgal'
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing ProcessSynerzip
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneciberkleid
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environmentMatanGoren
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...VMware Tanzu
 
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...Marc Fasel
 
Health monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscalerHealth monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscalersolarisyougood
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceGrid Dynamics
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weaveworks
 
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test LabFlintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test LabTechWell
 

Ähnlich wie Orchestrating Automated Tests in Different Systems - Please Download to watch the embedded videos ;) (20)

Testlink Test Management with Teamforge
Testlink Test Management with TeamforgeTestlink Test Management with Teamforge
Testlink Test Management with Teamforge
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
 
Team forge Test Management with TestLink
Team forge Test Management with TestLinkTeam forge Test Management with TestLink
Team forge Test Management with TestLink
 
Health monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscalerHealth monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscaler
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test LabFlintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
 

Kürzlich hochgeladen

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Kürzlich hochgeladen (20)

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Orchestrating Automated Tests in Different Systems - Please Download to watch the embedded videos ;)

  • 1. Orchestrating a big automated testing pipeline in multiple environments
  • 2. © Daitan Group – Private & Confidential – v1.1 2 About me • 9 years experience in Software Engineering, and 2 in Electronics • BSc in Computer Science – IC-Unicamp • Electronics Technician – Cotuca-Unicamp • Currently working on Data Engineering, Performance Engineering and Test Automation at Daitan Group • I love developing and testing! kelvsar@gmail.com https://www.linkedin.com/in/kelvin-ksps/ Kelvin Ronny Marques da Silva
  • 4. © Daitan Group – Private & Confidential – v1.1 4 • Mac OS 10.11 • Mac OS 10.12 • Mac OS 10.13 • 13 Environments Problem 1: Ensure the product runs well on all supported operating systems • Windows 7 x64 • Windows 7 x86 • Windows 8 x64 • Windows 8 x86 • Windows 8.1 x64 • Windows 8.1 x64 • Windows 10 x64 • Windows 10 x86
  • 5. © Daitan Group – Private & Confidential – v1.1 5 • Mac OS 10.11 • Mac OS 10.12 • Mac OS 10.13 • Chrome • Firefox • Internet Explorer • Safari 13 * 3 = 39 setups! Problem 2: Ensure the product runs well on all supported operating systems and browsers • Windows 7 x64 • Windows 7 x86 • Windows 8 x64 • Windows 8 x86 • Windows 8.1 x64 • Windows 8.1 x86 • Windows 10 x64 • Windows 10 x86
  • 6. © Daitan Group – Private & Confidential – v1.1 6 Ex.: • 1 machine is the host and 2 machines are guests of a video conferencing meeting • 2 or more machines are playing a Game • 1 machine is the presenter and 2 are the participants on a webinar Problem 3: Product only runs one instance per machine Problem 4: Test Suites contain scenarios using more than one instance of the product
  • 7. © Daitan Group – Private & Confidential – v1.1 7 • Parallel Plans: Installation Tests, Memory Tests, and Test Cases using different sessions. • Sequential Plans: Account Limitations, Database restriction, and Sessions Tested individually Problem 5: Some complex test suites cannot run in parallel in different clients
  • 8. © Daitan Group – Private & Confidential – v1.1 8 • In order to solve all those problems, we need a mechanism to automate and orchestrate everything • Due to the high quantity of environment combinations, the complexity of organizing and executing tests increases and can lead to an ineffective pipeline. Problem 6: Orchestrate
  • 9. © Daitan Group – Private & Confidential – v1.1 9 Challenge • How to coordinate and schedule tests in an easy way? • How to continue delivering the tests in an agile way, despite those problems? • How creating and working with a solution for those problems could be simple?
  • 11. © Daitan Group – Private & Confidential – v1.1 11 Jmeter • The most famous free tool for performance testing against API • It could be used for regression testing against API as well • We could create test plan, steps from a test and Threads to collect the result of the API Calls • We can also integrate Jmeter with external libs, since we can use Java or Javascript inside JMeter • It is possible to send requests to more than one machine or server
  • 12. © Daitan Group – Private & Confidential – v1.1 12 Instead of using JUnit or TestNG… ... We just need to create a server with the libraries used for test/task automation (Selenium, Sikuli, White, etc) It does not require a specific language (we use Java for this server, but a server built with the libraries for automation could be created using Python, C#, etc)
  • 13. © Daitan Group – Private & Confidential – v1.1 13 We created our QA-Server! • Java + Maven • Spring Framework (dependency injection) • Apache CXF (our base for the server, btw) • External Libraries
  • 14. © Daitan Group – Private & Confidential – v1.1 14 How QA-Server works 0. HTTP Client send a HTTP request to QA- Server; 1. Controller receives the request HTTP to execute some action or to check something; 2. Controller send the data to the proper Service, based on the request received; 3. Service chooses the proper Project to initiate some action or verification; 4. Project does the action or verification and returns the result to the Service; 5. Service returns the Result to the Controller; 6. Controller returns the Result to HTTP Client Controllers QA-SERVER Services HTTP Client Controller Service Project A
  • 15. © Daitan Group – Private & Confidential – v1.1 15 Example: JMeter Side Jmeter Plan HTTP Requests
  • 16. © Daitan Group – Private & Confidential – v1.1 16 Example: QA-Server Controller
  • 17. © Daitan Group – Private & Confidential – v1.1 17 Example: QA-Server Service
  • 18. © Daitan Group – Private & Confidential – v1.1 18 Example: Devopsdays Project
  • 19. © Daitan Group – Private & Confidential – v1.1 19 QA-Server + Jmeter: Demo
  • 20. © Daitan Group – Private & Confidential – v1.1 20 QA-Server + Jmeter: Another Example
  • 21. © Daitan Group – Private & Confidential – v1.1 21 Remaining Problems: Problem 5: Support Sequential Plans Problem 6: Orchestrate to create an effective pipeline Problem 3: Several Instances of the Client Problem 4: One Instance per Machine JMeter coordinates what QA-Server will do on each machine being used by the test plan. Problem 1: Support all OS. Problem 2: Support all browsers. QA-Server on each OS, pointing to the project, libraries and frameworks. Partial Solution
  • 22. © Daitan Group – Private & Confidential – v1.1 22 Solving the 2 problems left • We have created an automated orchestration of our complex test suites that delivers the effectiveness needed in Devops culture • Now, we can coordinate and schedule tests in an easy way, implement changes in parameters, and cover the maximum number of machines
  • 23. © Daitan Group – Private & Confidential – v1.1 23 QA-Planner We have developed a tool called QA-Planner. FrontEnd: AngularJS + Javascript BackEnd: QA-Server / Java DB: MongoDB
  • 24. © Daitan Group – Private & Confidential – v1.1 24 What is QA-Planner? • Coordinate and schedule tests in an easy way, in different machines, respecting the dependency of each test set (Sequential Plans, for instance) • Verify if the automation tasks are being done properly on each machine • Return an automated effective pipeline of the Test Suite The idea came from the following concepts:
  • 25. © Daitan Group – Private & Confidential – v1.1 25 QA-Planner: Scheduler Algorithm The Algorithm needs to deal with these restrictions: • Sequential Test Plans must not run in parallel • We need to be able to choose an order for each Test Plan • It must be accessible/runnable by external tools, such as Jenkins • Everyone on the Devops team must be able to create or access the Tool in realtime
  • 26. © Daitan Group – Private & Confidential – v1.1 26 QA-Planner: JMeter Plans Orchestrator • QA-Planner controls which plans will run and when • Once that pipeline starts to run, the orchestrator will be processing all plans and it will keep monitoring JMeter processes • It also changes the variables inserted into JMeter on execution time
  • 27. © Daitan Group – Private & Confidential – v1.1 27 How QA-Planner works 0. User selects the plans and machines 1. User requests a pipeline 2. BackEnd uses the Scheduler Algorithm to create the pipeline 3. User receives a pipeline candidate 4. • A) User accepts the pipeline and the tests begin. • B) User accepts the pipeline and take the id to put on other tool • C) User rejects the pipeline. User can change the plans or machines selected before to create a new pipeline. Node A Node B Node C Node E Node D Planner Page QA-Server Leader Node
  • 28. © Daitan Group – Private & Confidential – v1.1 28 QA-Planner: Page
  • 29. © Daitan Group – Private & Confidential – v1.1 29 QA-Planner: Page
  • 30. © Daitan Group – Private & Confidential – v1.1 30 QA-Planner: Page
  • 31. © Daitan Group – Private & Confidential – v1.1 31 QA-Planner: Page
  • 32. © Daitan Group – Private & Confidential – v1.1 32 QA-Planner: Roles Leader: Machine under testing Aux: One or more machines used to make all scenarios “testable” by automated tests Ex.: Leader is the Game running on Windows 8, others 3 machines (don’t care about OS) will join the Game as well, but the focus here is testing all features on Windows 8
  • 33. © Daitan Group – Private & Confidential – v1.1 33 QA-Planner: Demo – Full Test Suite Pipeline
  • 34. © Daitan Group – Private & Confidential – v1.1 34 QA-Planner: Demo If each test plan takes 10 minutes to be done. 5 scenarios * 13 machines = Traditional pipeline: 650 minutes! QA-Planner: 650/5 = 130 minutes!
  • 35. © Daitan Group – Private & Confidential – v1.1 35 QA-Planner: Demo – Demo Test Suite Pipeline
  • 36. © Daitan Group – Private & Confidential – v1.1 36 Problem 5: Support Sequential Plans Problem 6: Orchestrate to create an effective pipeline QA-Planner coordinates and orchestrates everything! Problem 3: Several Instances of the Client Problem 4: One Instance per Machine JMeter coordinates what QA-Server will do on each machine being used by the test plan. Problem 1: Support all OS. Problem 2: Support all browsers. QA-Server on each OS, pointing to the project, libraries and frameworks. Solved!
  • 37. © Daitan Group – Private & Confidential – v1.1 37 Conclusion • This solution saved a lot of time • It’s really easy to create new tests and reuse the steps by using HTTP calls on JMeter • It’s not just solving problems, it is a new pattern followed here
  • 38. Thank You! kelvsar@gmail.com / ksilva@daitangroup.com